| function shouldBe(actual, expected) { |
| if (actual !== expected) |
| throw new Error('bad value: ' + actual); |
| } |
| noInline(shouldBe); |
| |
| var array1 = $vm.createRuntimeArray(0, 1, 2, 3, 4, 5); |
| Object.freeze(array1); |
| |
| function test1() |
| { |
| return array1[0] + array1[1] + array1[2] + array1[3] + array1[4] + array1[5]; |
| } |
| noInline(test1); |
| |
| function test2() |
| { |
| return array1[0] + array1[1] + array1[2] + array1[3] + array1[4] + array1[5] + (array1[6] | 0); |
| } |
| noInline(test2); |
| |
| var array4 = $vm.createRuntimeArray(0, 1, 2, 3, 4, 5); |
| Object.seal(array4); |
| |
| function test5() |
| { |
| return array4[0] + array4[1] + array4[2] + array4[3] + array4[4] + array4[5]; |
| } |
| noInline(test5); |
| |
| for (var i = 0; i < 1e5; ++i) { |
| shouldBe(test1(), 15); |
| shouldBe(test2(), 15); |
| shouldBe(test5(), 15); |
| } |