ladybird/Libraries/LibJS/Tests/array-length-setter.js
2020-04-23 09:47:23 +02:00

48 lines
955 B
JavaScript

load("test-common.js");
try {
var a = [1, 2, 3];
assert(a.length === 3);
assert(a[0] === 1);
assert(a[1] === 2);
assert(a[2] === 3);
a.length = 5;
assert(a.length === 5);
assert(a[0] === 1);
assert(a[1] === 2);
assert(a[2] === 3);
assert(a[3] === undefined);
assert(a[4] === undefined);
a.length = 1;
assert(a.length === 1);
assert(a[0] === 1);
a.length = 0;
assert(a.length === 0);
a.length = "42";
assert(a.length === 42);
a.length = [];
assert(a.length === 0);
a.length = true;
assert(a.length === 1);
[undefined, "foo", -1, Infinity, -Infinity, NaN].forEach(value => {
assertThrowsError(() => {
a.length = value;
}, {
error: RangeError,
message: "Invalid array length"
});
assert(a.length === 1);
});
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}