/* 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), ""); |