diff -r 000000000000 -r 6474c204b198 js/src/jit-test/tests/basic/string-repeat.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/src/jit-test/tests/basic/string-repeat.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,30 @@ +/* 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 : (function () "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), "");