ladybird/Libraries/LibJS/Tests/builtins/Array/array-length-setter.js

52 lines
1,010 B
JavaScript
Raw Normal View History

2020-04-23 00:33:13 +01:00
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;
2020-04-23 00:33:13 +01:00
assert(a.length === 1);
assert(a[0] === 1);
2020-04-23 00:33:13 +01:00
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");
2020-04-23 00:33:13 +01:00
} catch (e) {
console.log("FAIL: " + e);
2020-04-23 00:33:13 +01:00
}