RangeError: repeat count must be less than infinity

Message

RangeError: argument out of range (Edge)
RangeError: repeat count must be less than infinity and not overflow maximum string size (Firefox)
RangeError: Invalid count value (Chrome)

Type d'erreur

Quel est le problème ?

La méthode String.prototype.repeat(), qui permet de répéter une chaîne de caractères, a été utilisée avec un argument qui n'est pas compris entre 0 et Infinity (exclue) (ce qui correspond à l'intervalle [0, +∞))

La chaîne de caractères crée par cette méthode ne doit pas dépasser la taille maximale d'une chaîne. Cette taille varie selon le moteur JavaScript. Pour Firefox (SpiderMonkey), la taille maximale d'une chaîne de caractères vaut 2^28-1 (0xFFFFFFF).

Exemples

Exemples invalides

js
"abc".repeat(Infinity); // RangeError
"a".repeat(2 ** 28); // RangeError

Exemples valides

js
"abc".repeat(0); // ''
"abc".repeat(1); // 'abc'
"abc".repeat(2); // 'abcabc'
"abc".repeat(3.5); // 'abcabcabc' (count will be converted to integer)

Voir aussi