summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/latin1/indexing.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/latin1/indexing.js')
-rw-r--r--js/src/jit-test/tests/latin1/indexing.js47
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);