1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 18:44:59 +00:00
serenity/Libraries/LibJS/Tests/builtins/Array/array-length-setter.js
2020-07-06 23:40:35 +02:00

51 lines
1,010 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);
}