| Index: test/mjsunit/string-indexof-1.js | 
| diff --git a/test/mjsunit/string-indexof-1.js b/test/mjsunit/string-indexof-1.js | 
| index c7dcdb8352a935720d51e611cd8d917c2161e9a6..c5ae4b898a8a9342fd5c163ac938f924b0dd210c 100644 | 
| --- a/test/mjsunit/string-indexof-1.js | 
| +++ b/test/mjsunit/string-indexof-1.js | 
| @@ -97,3 +97,29 @@ assertEquals(1534, long.indexOf("AJABACA", 511), "Long AJABACA, Second J"); | 
| pattern = "JABACABADABACABA"; | 
| assertEquals(511, long.indexOf(pattern), "Long JABACABA..., First J"); | 
| assertEquals(1535, long.indexOf(pattern, 512), "Long JABACABA..., Second J"); | 
| + | 
| + | 
| +// Search for a non-ASCII string in a pure ASCII string. | 
| +var asciiString = "arglebargleglopglyfarglebargleglopglyfarglebargleglopglyf"; | 
| +assertEquals(-1, asciiString.indexOf("\x2061")); | 
| + | 
| + | 
| +// Search in string containing many non-ASCII chars. | 
| +var allCodePoints = []; | 
| +for (var i = 0; i < 65536; i++) allCodePoints[i] = i; | 
| +var allCharsString = String.fromCharCode.apply(String, allCodePoints); | 
| +// Search for string long enough to trigger complex search with ASCII pattern | 
| +// and UC16 subject. | 
| +assertEquals(-1, allCharsString.indexOf("notfound")); | 
| + | 
| +// Find substrings. | 
| +var lengths = [1, 4, 15];  // Single char, simple and complex. | 
| +var indices = [0x5, 0x65, 0x85, 0x105, 0x205, 0x285, 0x2005, 0x2085, 0xfff0]; | 
| +for (var lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { | 
| +  var length = lengths[lengthIndex]; | 
| +  for (var i = 0; i < indices.length; i++) { | 
| +    var index = indices[i]; | 
| +    var pattern = allCharsString.substring(index, index + length); | 
| +    assertEquals(index, allCharsString.indexOf(pattern)); | 
| +  } | 
| +} | 
|  |