function shouldBe(actual, expected) { if (actual !== expected) throw new Error('bad value: ' + actual); } function indexOf(array, value) { return array.indexOf(value); } noInline(indexOf); (function () { var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; var array2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; var array3 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; array3[9] = 8; array3[8] = 10.2; for (var i = 0; i < 1e6; ++i) shouldBe(indexOf(array, 8), 8); array[9] = 8; array[8] = 10.2; for (var i = 0; i < 1e6; ++i) shouldBe(indexOf(array, 8), 9); for (var i = 0; i < 1e6; ++i) shouldBe(indexOf(array2, 8), 8); }());