mirror of
https://github.com/tc39/test262.git
synced 2025-05-25 01:00:29 +02:00
67 lines
1.2 KiB
JavaScript
67 lines
1.2 KiB
JavaScript
function shouldBe(actual, expected) {
|
|
if (actual !== expected)
|
|
throw new Error('bad value: ' + actual);
|
|
}
|
|
|
|
var array0 = [1, 2, 3, 4, 5];
|
|
var array1 = [1.2, 2.3, 3.4, 4.5, 5.6];
|
|
var array2 = ["Hello", "New", "World", "Cappuccino", "Cocoa"];
|
|
var array3 = [null, null, null, null, null];
|
|
var array4 = [undefined, undefined, undefined, undefined, undefined];
|
|
var array5 = [false, true, false, true, false];
|
|
|
|
function test0()
|
|
{
|
|
return array0[5];
|
|
}
|
|
noInline(test0);
|
|
|
|
function test1()
|
|
{
|
|
return array1[5];
|
|
}
|
|
noInline(test1);
|
|
|
|
function test2()
|
|
{
|
|
return array2[5];
|
|
}
|
|
noInline(test2);
|
|
|
|
function test3()
|
|
{
|
|
return array3[5];
|
|
}
|
|
noInline(test3);
|
|
|
|
function test4()
|
|
{
|
|
return array4[5];
|
|
}
|
|
noInline(test4);
|
|
|
|
function test5()
|
|
{
|
|
return array5[5];
|
|
}
|
|
noInline(test5);
|
|
|
|
for (var i = 0; i < 1e5; ++i) {
|
|
shouldBe(test0(), undefined);
|
|
shouldBe(test1(), undefined);
|
|
shouldBe(test2(), undefined);
|
|
shouldBe(test3(), undefined);
|
|
shouldBe(test4(), undefined);
|
|
shouldBe(test5(), undefined);
|
|
}
|
|
// Breaking sane chains.
|
|
Array.prototype[5] = 42;
|
|
for (var i = 0; i < 1e5; ++i) {
|
|
shouldBe(test0(), 42);
|
|
shouldBe(test1(), 42);
|
|
shouldBe(test2(), 42);
|
|
shouldBe(test3(), 42);
|
|
shouldBe(test4(), 42);
|
|
shouldBe(test5(), 42);
|
|
}
|