| function shouldBe(actual, expected) { | |
| if (actual !== expected) | |
| throw new Error('bad value: ' + actual); | |
| } | |
| var array = [1, 2, 3, 4, 5]; | |
| function checking(i) | |
| { | |
| if (i === (1e6 - 1)) { | |
| // array[0] = 42; | |
| array.ok = 4000; | |
| } else if (i === (2e6 - 4000)) { | |
| array.hey = 4000; | |
| } else if (i === (1e6 * 2)) { | |
| array[0] = 42; | |
| } | |
| } | |
| noInline(checking); | |
| function test(i) | |
| { | |
| checking(i); | |
| return array[0] + array[1]; | |
| } | |
| noInline(test); | |
| for (var i = 0; i < 2e6; ++i) | |
| shouldBe(test(i), 3); | |
| shouldBe(test(2e6), 44); |