| var s = "aaaaaaaaaaaaaaaaaa111aaaa"; |
| var latin1Rope1 = "foo" + s; |
| var latin1Rope2 = "bar" + latin1Rope1; |
| var twoByteRope = "\u1200--" + latin1Rope1; |
| |
| // Flatten twoByteRope. |
| assertEq(twoByteRope.lastIndexOf("11"), 25); |
| |
| // latin1Rope1 is now a TwoByte dependent string. |
| assertEq(isLatin1(latin1Rope1), false); |
| assertEq(latin1Rope1, "fooaaaaaaaaaaaaaaaaaa111aaaa"); |
| |
| // latin1Rope2 should still be Latin1, but now has a |
| // TwoByte descendent (latin1Rope1). |
| if (isLatin1(s)) |
| assertEq(isLatin1(latin1Rope2), true); |
| |
| // Flatten latin1Rope2. |
| assertEq(latin1Rope2.lastIndexOf("11"), 25); |
| assertEq(latin1Rope2, "barfooaaaaaaaaaaaaaaaaaa111aaaa"); |