diff options
Diffstat (limited to 'js/src/jit-test/tests/latin1/indexing.js')
-rw-r--r-- | js/src/jit-test/tests/latin1/indexing.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/latin1/indexing.js b/js/src/jit-test/tests/latin1/indexing.js new file mode 100644 index 000000000..c37ed52be --- /dev/null +++ b/js/src/jit-test/tests/latin1/indexing.js @@ -0,0 +1,47 @@ +function testCharCodeAt() { + var s = "abcdefghijklm1234567891000"; + for (var i=0; i<10; i++) + assertEq(s.charCodeAt(i), 97 + i); + + var rope = s + "blah"; + assertEq(rope.charCodeAt(s.length + 3), 104); + + rope = s + "Foo987"; + assertEq(rope.charCodeAt(s.length + 4), 56); + + rope = "twoByte\u0580" + s; + assertEq(rope.charCodeAt(7), 0x580); + assertEq(rope.charCodeAt(14), 103); +} +testCharCodeAt(); + +function testCharAt() { + var s = "abcdefghijklm100000002345"; + assertEq(s.charAt(0), "a"); + assertEq(s.charAt(s.length-1), "5"); + assertEq(s.charAt(s.length), ""); + + var rope = s + "abcZYX"; + assertEq(rope.charAt(s.length + 3), "Z"); + + rope = s + "Foo987"; + assertEq(rope.charAt(s.length + 4), "8"); + + rope = "twoByte\u0580" + s; + assertEq(rope.charAt(7), "\u0580"); + assertEq(rope.charAt(14), "g"); +} +testCharAt(); + +function testIndex(s) { + assertEq(s[0], "a"); + assertEq(s[s.length-1], "6"); + + rope = "twoByte\u0512" + s + assertEq(rope[7], "\u0512"); +} + +var s = "abcdefghijklm123456"; +testIndex(s); +testIndex(s); +testIndex(s); |