Index: test/mjsunit/string-charcodeat.js |
=================================================================== |
--- test/mjsunit/string-charcodeat.js (revision 3319) |
+++ test/mjsunit/string-charcodeat.js (working copy) |
@@ -30,7 +30,7 @@ |
*/ |
function Cons() { |
- return "Te" + "st"; |
+ return "Te" + "st testing 123"; |
} |
@@ -38,22 +38,22 @@ |
var a = "T"; |
a += "e"; |
a += "s"; |
- a += "t"; |
+ a += "ting testing 123"; |
return a; |
} |
function Slice() { |
- return "testing Testing".substring(8, 12); |
+ return "testing Testing testing 123456789012345".substring(8, 22); |
} |
function Flat() { |
- return "Test"; |
+ return "Testing testing 123"; |
} |
function Cons16() { |
- return "Te" + "\u1234t"; |
+ return "Te" + "\u1234t testing 123"; |
} |
@@ -61,18 +61,18 @@ |
var a = "T"; |
a += "e"; |
a += "\u1234"; |
- a += "t"; |
+ a += "ting testing 123"; |
return a; |
} |
function Slice16Beginning() { |
- return "Te\u1234t test".substring(0, 4); |
+ return "Te\u1234t testing testing 123".substring(0, 14); |
} |
function Slice16Middle() { |
- return "test Te\u1234t test".substring(5, 9); |
+ return "test Te\u1234t testing testing 123".substring(5, 19); |
} |
@@ -82,7 +82,7 @@ |
function Flat16() { |
- return "Te\u1234t"; |
+ return "Te\u1234ting testing 123"; |
} |
@@ -108,32 +108,35 @@ |
function TestStringType(generator, sixteen) { |
var g = generator; |
- assertTrue(isNaN(g().charCodeAt(-1e19))); |
- assertTrue(isNaN(g().charCodeAt(-0x80000001))); |
- assertTrue(isNaN(g().charCodeAt(-0x80000000))); |
- assertTrue(isNaN(g().charCodeAt(-0x40000000))); |
- assertTrue(isNaN(g().charCodeAt(-1))); |
- assertTrue(isNaN(g().charCodeAt(4))); |
- assertTrue(isNaN(g().charCodeAt(5))); |
- assertTrue(isNaN(g().charCodeAt(0x3fffffff))); |
- assertTrue(isNaN(g().charCodeAt(0x7fffffff))); |
- assertTrue(isNaN(g().charCodeAt(0x80000000))); |
- assertTrue(isNaN(g().charCodeAt(1e9))); |
- assertEquals(84, g().charCodeAt(0)); |
- assertEquals(84, g().charCodeAt("test")); |
- assertEquals(84, g().charCodeAt("")); |
- assertEquals(84, g().charCodeAt(null)); |
- assertEquals(84, g().charCodeAt(undefined)); |
- assertEquals(84, g().charCodeAt()); |
- assertEquals(84, g().charCodeAt(void 0)); |
- assertEquals(84, g().charCodeAt(false)); |
- assertEquals(101, g().charCodeAt(true)); |
- assertEquals(101, g().charCodeAt(1)); |
- assertEquals(sixteen ? 0x1234 : 115, g().charCodeAt(2)); |
- assertEquals(116, g().charCodeAt(3)); |
- assertEquals(101, g().charCodeAt(1.1)); |
- assertEquals(sixteen ? 0x1234 : 115, g().charCodeAt(2.1718)); |
- assertEquals(116, g().charCodeAt(3.14159)); |
+ var len = g().toString().length; |
+ var t = sixteen ? "t" : "f" |
+ t += generator.name; |
+ assertTrue(isNaN(g().charCodeAt(-1e19)), 1 + t); |
+ assertTrue(isNaN(g().charCodeAt(-0x80000001)), 2 + t); |
+ assertTrue(isNaN(g().charCodeAt(-0x80000000)), 3 + t); |
+ assertTrue(isNaN(g().charCodeAt(-0x40000000)), 4 + t); |
+ assertTrue(isNaN(g().charCodeAt(-1)), 5 + t); |
+ assertTrue(isNaN(g().charCodeAt(len)), 6 + t); |
+ assertTrue(isNaN(g().charCodeAt(len + 1)), 7 + t); |
+ assertTrue(isNaN(g().charCodeAt(0x3fffffff)), 8 + t); |
+ assertTrue(isNaN(g().charCodeAt(0x7fffffff)), 9 + t); |
+ assertTrue(isNaN(g().charCodeAt(0x80000000)), 10 + t); |
+ assertTrue(isNaN(g().charCodeAt(1e9)), 11 + t); |
+ assertEquals(84, g().charCodeAt(0), 12 + t); |
+ assertEquals(84, g().charCodeAt("test"), 13 + t); |
+ assertEquals(84, g().charCodeAt(""), 14 + t); |
+ assertEquals(84, g().charCodeAt(null), 15 + t); |
+ assertEquals(84, g().charCodeAt(undefined), 16 + t); |
+ assertEquals(84, g().charCodeAt(), 17 + t); |
+ assertEquals(84, g().charCodeAt(void 0), 18 + t); |
+ assertEquals(84, g().charCodeAt(false), 19 + t); |
+ assertEquals(101, g().charCodeAt(true), 20 + t); |
+ assertEquals(101, g().charCodeAt(1), 21 + t); |
+ assertEquals(sixteen ? 0x1234 : 115, g().charCodeAt(2), 22 + t); |
+ assertEquals(116, g().charCodeAt(3), 23 + t); |
+ assertEquals(101, g().charCodeAt(1.1), 24 + t); |
+ assertEquals(sixteen ? 0x1234 : 115, g().charCodeAt(2.1718), 25 + t); |
+ assertEquals(116, g().charCodeAt(3.14159), 26 + t); |
} |
@@ -157,10 +160,10 @@ |
this.charCodeAt = String.prototype.charCodeAt; |
} |
-assertEquals(52, new StupidThing().charCodeAt(0)); |
-assertEquals(50, new StupidThing().charCodeAt(1)); |
-assertTrue(isNaN(new StupidThing().charCodeAt(2))); |
-assertTrue(isNaN(new StupidThing().charCodeAt(-1))); |
+assertEquals(52, new StupidThing().charCodeAt(0), 27); |
+assertEquals(50, new StupidThing().charCodeAt(1), 28); |
+assertTrue(isNaN(new StupidThing().charCodeAt(2)), 29); |
+assertTrue(isNaN(new StupidThing().charCodeAt(-1)), 30); |
// Medium (>255) and long (>65535) strings. |
@@ -178,12 +181,12 @@ |
long += long + long + long; // 16384. |
long += long + long + long; // 65536. |
-assertTrue(isNaN(medium.charCodeAt(-1))); |
-assertEquals(49, medium.charCodeAt(0)); |
-assertEquals(56, medium.charCodeAt(255)); |
-assertTrue(isNaN(medium.charCodeAt(256))); |
+assertTrue(isNaN(medium.charCodeAt(-1)), 31); |
+assertEquals(49, medium.charCodeAt(0), 32); |
+assertEquals(56, medium.charCodeAt(255), 33); |
+assertTrue(isNaN(medium.charCodeAt(256)), 34); |
-assertTrue(isNaN(long.charCodeAt(-1))); |
-assertEquals(49, long.charCodeAt(0)); |
-assertEquals(56, long.charCodeAt(65535)); |
-assertTrue(isNaN(long.charCodeAt(65536))); |
+assertTrue(isNaN(long.charCodeAt(-1)), 35); |
+assertEquals(49, long.charCodeAt(0), 36); |
+assertEquals(56, long.charCodeAt(65535), 37); |
+assertTrue(isNaN(long.charCodeAt(65536)), 38); |