| function makeString(char) { |
| var result = ""; |
| for (var i = 0; i < 10; ++i) |
| result += char; |
| return result; |
| } |
| |
| var array = [ "a", "b", "c", "d" ]; |
| |
| for (var i = 0; i < array.length; ++i) |
| array[i] = makeString(array[i]); |
| |
| function foo(array, s) { |
| for (var i = 0; i < array.length; ++i) { |
| if (array[i] === s) |
| return i; |
| } |
| return null; |
| } |
| |
| noInline(foo); |
| |
| var array2 = [ "a", "b", "c", "d", "e" ]; |
| |
| for (var i = 0; i < array2.length; ++i) |
| array2[i] = makeString(array2[i]); |
| |
| for (var i = 0; i < 100000; ++i) { |
| var index = i % array2.length; |
| var result = foo(array, array2[index]); |
| var expected = index >= array.length ? null : index |
| if (result !== expected) |
| throw "Error: bad result: " + result; |
| } |
| |