| function shouldBe(actual, expected) { |
| if (actual !== expected) |
| throw new Error('bad value: ' + actual); |
| } |
| |
| function testInt32() |
| { |
| var array = [0, 1, 2, 3]; |
| return array.slice(1); |
| } |
| noInline(testInt32); |
| |
| function testDouble() |
| { |
| var array = [0.1, 1.1, 2.1, 3.1]; |
| return array.slice(1); |
| } |
| noInline(testDouble); |
| |
| function testContiguous() |
| { |
| var array = [true, false, true, false]; |
| return array.slice(1); |
| } |
| noInline(testContiguous); |
| |
| for (var i = 0; i < 1e4; ++i) { |
| shouldBe(JSON.stringify(testInt32()), `[1,2,3]`); |
| shouldBe(JSON.stringify(testDouble()), `[1.1,2.1,3.1]`); |
| shouldBe(JSON.stringify(testContiguous()), `[false,true,false]`); |
| } |