| function createBuffer() { |
| return [1, 2]; |
| } |
| noInline(createBuffer); |
| |
| function shouldBe(a, b) { |
| if (a !== b) |
| throw new Error(a + " should be === to " + b); |
| } |
| |
| function test() { |
| let array = createBuffer(); |
| array[-1] = 7.43; |
| shouldBe(createBuffer()[-1], undefined); |
| array = createBuffer(); |
| array[1] = 6.9023; |
| shouldBe(createBuffer()[1], 2); |
| array = createBuffer(); |
| let o = Object.create(array); |
| o[1] = 5.43; |
| shouldBe(array[1], 2); |
| shouldBe(createBuffer()[1], 2); |
| shouldBe(Object.create(createBuffer())[1], 2); |
| } |
| noInline(test); |
| |
| for (let i = 0; i < 10000; i++) |
| test(); |