string-repeat.js (1220B)
1 /* Test String.prototype.repeat */ 2 3 load(libdir + 'asserts.js'); 4 5 assertEq("abc".repeat(1), "abc"); 6 assertEq("abc".repeat(2), "abcabc"); 7 assertEq("abc".repeat(3), "abcabcabc"); 8 assertEq("a".repeat(10), "aaaaaaaaaa"); 9 assertEq("abc".repeat(0), ""); 10 assertEq("abc".repeat(2.9), "abcabc"); 11 12 var myobj = {toString : () => "abc", repeat : String.prototype.repeat}; 13 assertEq(myobj.repeat(1), "abc"); 14 assertEq(myobj.repeat(2), "abcabc"); 15 16 assertThrowsInstanceOf(function() { 17 "abc".repeat(-1); 18 }, RangeError, 19 "String.prototype.repeat should raise RangeError on negative arguments"); 20 assertThrowsInstanceOf(function() { 21 "abc".repeat(Number.POSITIVE_INFINITY); 22 }, RangeError, 23 "String.prototype.repeat should raise RangeError on excedding maximum string length"); 24 assertThrowsInstanceOf(function() { 25 "abc".repeat(1 << 29); 26 }, RangeError, 27 "String.prototype.repeat should raise RangeError on excedding maximum string length"); 28 29 assertEq("".repeat(5), ""); 30 assertEq("".repeat(1 << 29), "");