function shouldBe(actual, expected) { if (actual !== expected) throw new Error('bad value: ' + actual); } (function () { function indexOfInt32(array, value) { return array.indexOf(value); } noInline(indexOfInt32); var int32Array = [0, 1, 2, 3, 4, , 6, 7, 8, 9, 10, 11, 12]; var value = -1; for (var i = 0; i < 1e5; ++i) { shouldBe(indexOfInt32(int32Array, 5), value); shouldBe(indexOfInt32(int32Array, 6), 6); if (i === 1e4) { int32Array.hello = 42; } } }()); (function () { function indexOfInt32(array, value) { return array.indexOf(value); } noInline(indexOfInt32); var int32Array = [0, 1, 2, 3, 4, , 6, 7, 8, 9, 10, 11, 12]; var value = -1; for (var i = 0; i < 1e5; ++i) { shouldBe(indexOfInt32(int32Array, 5), value); shouldBe(indexOfInt32(int32Array, 6), 6); if (i === 1e4) { value = 5; int32Array.__proto__ = { __proto__: int32Array.__proto__, 5: 5 }; } } }());