| function shouldBe(actual, expected) |
| { |
| if (actual !== expected) |
| throw new Error('bad value: ' + actual); |
| } |
| noInline(shouldBe); |
| |
| function test1(array) |
| { |
| for (var i = 0; i < 5; ++i) { |
| array[0] = array[0] + 1; |
| } |
| return array; |
| } |
| noInline(test1); |
| |
| function test2(array) |
| { |
| for (var i = 0; i < 5; ++i) { |
| array[0] = array[0] + 1; |
| } |
| return array; |
| } |
| noInline(test2); |
| |
| function test3(array) |
| { |
| for (var i = 0; i < 5; ++i) { |
| array[0] = array[0] + 1; |
| } |
| return array; |
| } |
| noInline(test3); |
| |
| for (var i = 0; i < 1e5; ++i) { |
| shouldBe(String(test1([0, 1, 2, 3, 4])), `5,1,2,3,4`); |
| shouldBe(String(test2([0.1, 1.1, 2.1, 3.1, 4.1])), `5.1,1.1,2.1,3.1,4.1`); |
| shouldBe(String(test3(['C', 'o', 'c', 'o', 'a'])), `C11111,o,c,o,a`); |
| } |