| 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); |