Source code

Revision control

Copy as Markdown

Other Tools

/* Test String.prototype.repeat */
load(libdir + 'asserts.js');↩
assertEq("abc".repeat(1), "abc");↩
assertEq("abc".repeat(2), "abcabc");↩
assertEq("abc".repeat(3), "abcabcabc");↩
assertEq("a".repeat(10), "aaaaaaaaaa");↩
assertEq("abc".repeat(0), "");↩
assertEq("abc".repeat(2.9), "abcabc");↩
var myobj = {toString : () => "abc", repeat : String.prototype.repeat};↩
assertEq(myobj.repeat(1), "abc");↩
assertEq(myobj.repeat(2), "abcabc");↩
assertThrowsInstanceOf(function() {↩
"abc".repeat(-1);↩
}, RangeError,↩
"String.prototype.repeat should raise RangeError on negative arguments");↩
assertThrowsInstanceOf(function() {↩
"abc".repeat(Number.POSITIVE_INFINITY);↩
}, RangeError,↩
"String.prototype.repeat should raise RangeError on excedding maximum string length");↩
assertThrowsInstanceOf(function() {↩
"abc".repeat(1 << 29);↩
}, RangeError,↩
"String.prototype.repeat should raise RangeError on excedding maximum string length");↩
assertEq("".repeat(5), "");↩
assertEq("".repeat(1 << 29), "");↩