blob: 2d06ff58d6baf894024eb1bb606bf7a705e6ce95 [file] [log] [blame]
function shouldBe(actual, expected) {
if (actual !== expected)
throw new Error('bad value: ' + actual);
}
{
let array = [];
Object.defineProperty(array, 2, {
get() {
this.called = true;
return 42;
}
});
array.length = 42;
shouldBe(array.indexOf(42), 2);
shouldBe(array.called, true);
}
{
let array = [20, 20];
Object.defineProperty(array, 2, {
get() {
this.called = true;
return 42;
}
});
array.length = 42;
shouldBe(array.indexOf(42), 2);
shouldBe(array.called, true);
}
{
let array = ["Hello"];
Object.defineProperty(array, 2, {
get() {
this.called = true;
return 42;
}
});
array.length = 42;
shouldBe(array.indexOf(42), 2);
shouldBe(array.called, true);
}
{
let array = [42.195];
Object.defineProperty(array, 2, {
get() {
this.called = true;
return 42;
}
});
array.length = 42;
shouldBe(array.indexOf(42), 2);
shouldBe(array.called, true);
}
{
let array = ["Hello"];
Object.defineProperty(array, 2, {
get() {
this.called = true;
return 42;
}
});
array.length = 42;
ensureArrayStorage(array);
shouldBe(array.indexOf(42), 2);
shouldBe(array.called, true);
}