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