28 lines
638 B
JavaScript
28 lines
638 B
JavaScript
description("Tests for correct behavior of splice with array storage with holes.");
|
|
|
|
// Array storage splice holes.
|
|
var holeIndex = 7;
|
|
|
|
var a = new Array(10);
|
|
for (var i = 0; i < a.length; ++i) {
|
|
if (i === holeIndex)
|
|
continue;
|
|
a[i] = i;
|
|
}
|
|
|
|
a.shift(); // Converts to array storage mode.
|
|
|
|
var startIndex = 4;
|
|
a.splice(startIndex, 1);
|
|
|
|
for (var i = 0; i < startIndex; ++i)
|
|
shouldBe("a[" + i + "]", "" + (i + 1));
|
|
|
|
for (var i = startIndex; i < a.length; ++i) {
|
|
if (i === holeIndex - 2) {
|
|
shouldBe("a.hasOwnProperty('" + i + "')", "false");
|
|
continue;
|
|
}
|
|
shouldBe("a[" + i + "]", "" + (i + 2));
|
|
}
|