| function testInLoopTests(array, index) |
| { |
| let arrayLength = array.length; |
| let sum = 0; |
| for (let i = 0; i < 10; ++i) { |
| if (index >= 0 && index < arrayLength) { |
| sum += array[index]; |
| } |
| } |
| return sum; |
| } |
| noInline(testInLoopTests); |
| |
| |
| let testArray = [1, 2, 3]; |
| |
| // Warmup "in-bounds" up to FTL. |
| for (let i = 0; i < 1e5; ++i) { |
| if (testInLoopTests(testArray, 1) !== 20) |
| throw "Failed testInLoopTests(testArray, 1)" |
| if (testInLoopTests(testArray, 2) !== 30) |
| throw "Failed testInLoopTests(testArray, 2)" |
| } |
| |
| let largeIntResult = testInLoopTests(testArray, 2147483647); |
| if (largeIntResult !== 0) |
| throw "Failed testInLoopTests(testArray, 2147483647)"; |
| let smallIntResult = testInLoopTests(testArray, -2147483647); |
| if (smallIntResult !== 0) |
| throw "Failed testInLoopTests(testArray, -2147483647)"; |