function foo(a, i) { return a[i]; } noInline(foo); function test(value) { var result = foo([value], 0); if (result != value) throw "Error: bad result: " + result; } for (var i = 0; i < 100000; ++i) test(42); var result = foo([42], 1); if (result !== void 0) throw "Error: bad result: " + result; result = foo([42], 100); if (result !== void 0) throw "Error: bad result: " + result; result = foo([42], 10000); if (result !== void 0) throw "Error: bad result: " + result; Array.prototype[10000] = 23; result = foo([42], 10000); if (result !== 23) throw "Error: bad result: " + result;