1function make(value) {
2    var result = {};
3    result[0] = value;
4    return result;
5}
6
7function foo(a, i) {
8    return a[i];
9}
10
11noInline(foo);
12
13function test(value) {
14    var result = foo(make(value), 0);
15    if (result != value)
16        throw "Error: bad result: " + result;
17}
18
19for (var i = 0; i < 100000; ++i)
20    test(42);
21
22var result = foo(make(42), 1);
23if (result !== void 0)
24    throw "Error: bad result: " + result;
25
26result = foo(make(42), 100);
27if (result !== void 0)
28    throw "Error: bad result: " + result;
29
30result = foo(make(42), 10000);
31if (result !== void 0)
32    throw "Error: bad result: " + result;
33
34Object.prototype[10000] = 23;
35result = foo(make(42), 10000);
36if (result !== 23)
37    throw "Error: bad result: " + result;
38