mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:47:44 +00:00
LibJS: Reorganize tests into subfolders
This commit is contained in:
parent
21064a1883
commit
4c48c9d69d
213 changed files with 10 additions and 2 deletions
61
Libraries/LibJS/Tests/operators/assignment-operators.js
Normal file
61
Libraries/LibJS/Tests/operators/assignment-operators.js
Normal file
|
@ -0,0 +1,61 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
var x;
|
||||
|
||||
x = 1;
|
||||
assert((x = 2) === 2);
|
||||
assert(x === 2);
|
||||
|
||||
x = 1;
|
||||
assert((x += 2) === 3);
|
||||
assert(x === 3);
|
||||
|
||||
x = 3;
|
||||
assert((x -= 2) === 1);
|
||||
assert(x === 1);
|
||||
|
||||
x = 3;
|
||||
assert((x *= 2) === 6);
|
||||
assert(x === 6);
|
||||
|
||||
x = 6;
|
||||
assert((x /= 2) === 3);
|
||||
assert(x === 3);
|
||||
|
||||
x = 6;
|
||||
assert((x %= 4) === 2);
|
||||
assert(x === 2);
|
||||
|
||||
x = 2;
|
||||
assert((x **= 3) === 8);
|
||||
assert(x === 8);
|
||||
|
||||
x = 3;
|
||||
assert((x &= 2) === 2);
|
||||
assert(x === 2);
|
||||
|
||||
x = 3;
|
||||
assert((x |= 4) === 7);
|
||||
assert(x === 7);
|
||||
|
||||
x = 6;
|
||||
assert((x ^= 2) === 4);
|
||||
assert(x === 4);
|
||||
|
||||
x = 2;
|
||||
assert((x <<= 2) === 8);
|
||||
assert(x === 8);
|
||||
|
||||
x = 8;
|
||||
assert((x >>= 2) === 2);
|
||||
assert(x === 2);
|
||||
|
||||
x = -(2 ** 32 - 10);
|
||||
assert((x >>>= 2) === 2);
|
||||
assert(x === 2);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
63
Libraries/LibJS/Tests/operators/binary-bitwise-left-shift.js
Normal file
63
Libraries/LibJS/Tests/operators/binary-bitwise-left-shift.js
Normal file
|
@ -0,0 +1,63 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert((0 << 0) === 0);
|
||||
assert((0 << 1) === 0);
|
||||
assert((0 << 2) === 0);
|
||||
assert((0 << 3) === 0);
|
||||
assert((0 << 4) === 0);
|
||||
assert((0 << 5) === 0);
|
||||
|
||||
assert((1 << 0) === 1);
|
||||
assert((1 << 1) === 2);
|
||||
assert((1 << 2) === 4);
|
||||
assert((1 << 3) === 8);
|
||||
assert((1 << 4) === 16);
|
||||
assert((1 << 5) === 32);
|
||||
|
||||
assert((2 << 0) === 2);
|
||||
assert((2 << 1) === 4);
|
||||
assert((2 << 2) === 8);
|
||||
assert((2 << 3) === 16);
|
||||
assert((2 << 4) === 32);
|
||||
assert((2 << 5) === 64);
|
||||
|
||||
assert((3 << 0) === 3);
|
||||
assert((3 << 1) === 6);
|
||||
assert((3 << 2) === 12);
|
||||
assert((3 << 3) === 24);
|
||||
assert((3 << 4) === 48);
|
||||
assert((3 << 5) === 96);
|
||||
|
||||
assert((4 << 0) === 4);
|
||||
assert((4 << 1) === 8);
|
||||
assert((4 << 2) === 16);
|
||||
assert((4 << 3) === 32);
|
||||
assert((4 << 4) === 64);
|
||||
assert((4 << 5) === 128);
|
||||
|
||||
assert((5 << 0) === 5);
|
||||
assert((5 << 1) === 10);
|
||||
assert((5 << 2) === 20);
|
||||
assert((5 << 3) === 40);
|
||||
assert((5 << 4) === 80);
|
||||
assert((5 << 5) === 160);
|
||||
|
||||
var x = 3;
|
||||
var y = 7;
|
||||
assert(("42" << 6) === 2688);
|
||||
assert((x << y) === 384);
|
||||
assert((x << [[[[12]]]]) === 12288);
|
||||
assert((undefined << y) === 0);
|
||||
assert(("a" << "b") === 0);
|
||||
assert((null << null) === 0);
|
||||
assert((undefined << undefined) === 0);
|
||||
assert((NaN << NaN) === 0);
|
||||
assert((NaN << 6) === 0);
|
||||
assert((Infinity << Infinity) === 0);
|
||||
assert((-Infinity << Infinity) === 0);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
63
Libraries/LibJS/Tests/operators/binary-bitwise-or.js
Normal file
63
Libraries/LibJS/Tests/operators/binary-bitwise-or.js
Normal file
|
@ -0,0 +1,63 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert((0 | 0) === 0);
|
||||
assert((0 | 1) === 1);
|
||||
assert((0 | 2) === 2);
|
||||
assert((0 | 3) === 3);
|
||||
assert((0 | 4) === 4);
|
||||
assert((0 | 5) === 5);
|
||||
|
||||
assert((1 | 0) === 1);
|
||||
assert((1 | 1) === 1);
|
||||
assert((1 | 2) === 3);
|
||||
assert((1 | 3) === 3);
|
||||
assert((1 | 4) === 5);
|
||||
assert((1 | 5) === 5);
|
||||
|
||||
assert((2 | 0) === 2);
|
||||
assert((2 | 1) === 3);
|
||||
assert((2 | 2) === 2);
|
||||
assert((2 | 3) === 3);
|
||||
assert((2 | 4) === 6);
|
||||
assert((2 | 5) === 7);
|
||||
|
||||
assert((3 | 0) === 3);
|
||||
assert((3 | 1) === 3);
|
||||
assert((3 | 2) === 3);
|
||||
assert((3 | 3) === 3);
|
||||
assert((3 | 4) === 7);
|
||||
assert((3 | 5) === 7);
|
||||
|
||||
assert((4 | 0) === 4);
|
||||
assert((4 | 1) === 5);
|
||||
assert((4 | 2) === 6);
|
||||
assert((4 | 3) === 7);
|
||||
assert((4 | 4) === 4);
|
||||
assert((4 | 5) === 5);
|
||||
|
||||
assert((5 | 0) === 5);
|
||||
assert((5 | 1) === 5);
|
||||
assert((5 | 2) === 7);
|
||||
assert((5 | 3) === 7);
|
||||
assert((5 | 4) === 5);
|
||||
assert((5 | 5) === 5);
|
||||
|
||||
var x = 3;
|
||||
var y = 7;
|
||||
assert(("42" | 6) === 46);
|
||||
assert((x | y) === 7);
|
||||
assert((x | [[[[12]]]]) === 15);
|
||||
assert((undefined | y) === 7);
|
||||
assert(("a" | "b") === 0);
|
||||
assert((null | null) === 0);
|
||||
assert((undefined | undefined) === 0);
|
||||
assert((NaN | NaN) === 0);
|
||||
assert((NaN | 6) === 6);
|
||||
assert((Infinity | Infinity) === 0);
|
||||
assert((-Infinity | Infinity) === 0);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert((0 >> 0) === 0);
|
||||
assert((0 >> 1) === 0);
|
||||
assert((0 >> 2) === 0);
|
||||
assert((0 >> 3) === 0);
|
||||
assert((0 >> 4) === 0);
|
||||
assert((0 >> 5) === 0);
|
||||
|
||||
assert((1 >> 0) === 1);
|
||||
assert((1 >> 1) === 0);
|
||||
assert((1 >> 2) === 0);
|
||||
assert((1 >> 3) === 0);
|
||||
assert((1 >> 4) === 0);
|
||||
assert((1 >> 5) === 0);
|
||||
|
||||
assert((5 >> 0) === 5);
|
||||
assert((5 >> 1) === 2);
|
||||
assert((5 >> 2) === 1);
|
||||
assert((5 >> 3) === 0);
|
||||
assert((5 >> 4) === 0);
|
||||
assert((5 >> 5) === 0);
|
||||
|
||||
assert((42 >> 0) === 42);
|
||||
assert((42 >> 1) === 21);
|
||||
assert((42 >> 2) === 10);
|
||||
assert((42 >> 3) === 5);
|
||||
assert((42 >> 4) === 2);
|
||||
assert((42 >> 5) === 1);
|
||||
|
||||
assert((-1 >> 0) === -1);
|
||||
assert((-1 >> 1) === -1);
|
||||
assert((-1 >> 2) === -1);
|
||||
assert((-1 >> 3) === -1);
|
||||
assert((-1 >> 4) === -1);
|
||||
assert((-1 >> 5) === -1);
|
||||
|
||||
assert((-5 >> 0) === -5);
|
||||
assert((-5 >> 1) === -3);
|
||||
assert((-5 >> 2) === -2);
|
||||
assert((-5 >> 3) === -1);
|
||||
assert((-5 >> 4) === -1);
|
||||
assert((-5 >> 5) === -1);
|
||||
|
||||
var x = 67;
|
||||
var y = 4;
|
||||
assert(("42" >> 3) === 5);
|
||||
assert((x >> y) === 4);
|
||||
assert((x >> [[[[5]]]]) === 2);
|
||||
assert((undefined >> y) === 0);
|
||||
assert(("a" >> "b") === 0);
|
||||
assert((null >> null) === 0);
|
||||
assert((undefined >> undefined) === 0);
|
||||
assert((NaN >> NaN) === 0);
|
||||
assert((6 >> NaN) === 6);
|
||||
assert((Infinity >> Infinity) === 0);
|
||||
assert((-Infinity >> Infinity) === 0);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert((0 >>> 0) === 0);
|
||||
assert((0 >>> 1) === 0);
|
||||
assert((0 >>> 2) === 0);
|
||||
assert((0 >>> 3) === 0);
|
||||
assert((0 >>> 4) === 0);
|
||||
assert((0 >>> 5) === 0);
|
||||
|
||||
assert((1 >>> 0) === 1);
|
||||
assert((1 >>> 1) === 0);
|
||||
assert((1 >>> 2) === 0);
|
||||
assert((1 >>> 3) === 0);
|
||||
assert((1 >>> 4) === 0);
|
||||
assert((1 >>> 5) === 0);
|
||||
|
||||
assert((5 >>> 0) === 5);
|
||||
assert((5 >>> 1) === 2);
|
||||
assert((5 >>> 2) === 1);
|
||||
assert((5 >>> 3) === 0);
|
||||
assert((5 >>> 4) === 0);
|
||||
assert((5 >>> 5) === 0);
|
||||
|
||||
assert((42 >>> 0) === 42);
|
||||
assert((42 >>> 1) === 21);
|
||||
assert((42 >>> 2) === 10);
|
||||
assert((42 >>> 3) === 5);
|
||||
assert((42 >>> 4) === 2);
|
||||
assert((42 >>> 5) === 1);
|
||||
|
||||
assert((-1 >>> 0) === 4294967295);
|
||||
assert((-1 >>> 1) === 2147483647);
|
||||
assert((-1 >>> 2) === 1073741823);
|
||||
assert((-1 >>> 3) === 536870911);
|
||||
assert((-1 >>> 4) === 268435455);
|
||||
assert((-1 >>> 5) === 134217727);
|
||||
|
||||
assert((-5 >>> 0) === 4294967291);
|
||||
assert((-5 >>> 1) === 2147483645);
|
||||
assert((-5 >>> 2) === 1073741822);
|
||||
assert((-5 >>> 3) === 536870911);
|
||||
assert((-5 >>> 4) === 268435455);
|
||||
assert((-5 >>> 5) === 134217727);
|
||||
|
||||
var x = -67;
|
||||
var y = 4;
|
||||
assert(("-42" >>> 3) === 536870906);
|
||||
assert((x >>> y) === 268435451);
|
||||
assert((x >>> [[[[5]]]]) === 134217725);
|
||||
assert((undefined >>> y) === 0);
|
||||
assert(("a" >>> "b") === 0);
|
||||
assert((null >>> null) === 0);
|
||||
assert((undefined >>> undefined) === 0);
|
||||
assert((NaN >>> NaN) === 0);
|
||||
assert((6 >>> NaN) === 6);
|
||||
assert((Infinity >>> Infinity) === 0);
|
||||
assert((-Infinity >>> Infinity) === 0);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
735
Libraries/LibJS/Tests/operators/binary-relational.js
Normal file
735
Libraries/LibJS/Tests/operators/binary-relational.js
Normal file
|
@ -0,0 +1,735 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
const vals = [
|
||||
1,
|
||||
2,
|
||||
1.23,
|
||||
2.34567,
|
||||
1n,
|
||||
2n,
|
||||
[],
|
||||
[1],
|
||||
[2],
|
||||
[1, 2],
|
||||
"foo",
|
||||
"fooo",
|
||||
"🔥",
|
||||
"❤️",
|
||||
"bar",
|
||||
{},
|
||||
{ a: 1 },
|
||||
{ a: 2 },
|
||||
{ b: 1 },
|
||||
true,
|
||||
false,
|
||||
undefined,
|
||||
null,
|
||||
NaN,
|
||||
+Infinity,
|
||||
-Infinity,
|
||||
];
|
||||
|
||||
// Each row contains: xIndex, yIndex, (x < y), (x > y), (x <= y), (x >= y)
|
||||
// where x = vals[xIndex], y = vals[yIndex]
|
||||
// Table can be generated using a mature engine and the following code:
|
||||
// for (var xIndex = 0; xIndex < vals.length; ++xIndex) {
|
||||
// for (var yIndex = 0; yIndex < vals.length; ++yIndex) {
|
||||
// var x = vals[xIndex];
|
||||
// var y = vals[yIndex];
|
||||
// console.log(`[${xIndex}, ${yIndex}, ${x < y}, ${x > y}, ${x <= y}, ${x >= y}]`);
|
||||
// }
|
||||
// }
|
||||
const table = [
|
||||
[0, 0, false, false, true, true],
|
||||
[0, 1, true, false, true, false],
|
||||
[0, 2, true, false, true, false],
|
||||
[0, 3, true, false, true, false],
|
||||
[0, 4, false, false, true, true],
|
||||
[0, 5, true, false, true, false],
|
||||
[0, 6, false, true, false, true],
|
||||
[0, 7, false, false, true, true],
|
||||
[0, 8, true, false, true, false],
|
||||
[0, 9, false, false, false, false],
|
||||
[0, 10, false, false, false, false],
|
||||
[0, 11, false, false, false, false],
|
||||
[0, 12, false, false, false, false],
|
||||
[0, 13, false, false, false, false],
|
||||
[0, 14, false, false, false, false],
|
||||
[0, 15, false, false, false, false],
|
||||
[0, 16, false, false, false, false],
|
||||
[0, 17, false, false, false, false],
|
||||
[0, 18, false, false, false, false],
|
||||
[0, 19, false, false, true, true],
|
||||
[0, 20, false, true, false, true],
|
||||
[0, 21, false, false, false, false],
|
||||
[0, 22, false, true, false, true],
|
||||
[0, 23, false, false, false, false],
|
||||
[0, 24, true, false, true, false],
|
||||
[0, 25, false, true, false, true],
|
||||
[1, 0, false, true, false, true],
|
||||
[1, 1, false, false, true, true],
|
||||
[1, 2, false, true, false, true],
|
||||
[1, 3, true, false, true, false],
|
||||
[1, 4, false, true, false, true],
|
||||
[1, 5, false, false, true, true],
|
||||
[1, 6, false, true, false, true],
|
||||
[1, 7, false, true, false, true],
|
||||
[1, 8, false, false, true, true],
|
||||
[1, 9, false, false, false, false],
|
||||
[1, 10, false, false, false, false],
|
||||
[1, 11, false, false, false, false],
|
||||
[1, 12, false, false, false, false],
|
||||
[1, 13, false, false, false, false],
|
||||
[1, 14, false, false, false, false],
|
||||
[1, 15, false, false, false, false],
|
||||
[1, 16, false, false, false, false],
|
||||
[1, 17, false, false, false, false],
|
||||
[1, 18, false, false, false, false],
|
||||
[1, 19, false, true, false, true],
|
||||
[1, 20, false, true, false, true],
|
||||
[1, 21, false, false, false, false],
|
||||
[1, 22, false, true, false, true],
|
||||
[1, 23, false, false, false, false],
|
||||
[1, 24, true, false, true, false],
|
||||
[1, 25, false, true, false, true],
|
||||
[2, 0, false, true, false, true],
|
||||
[2, 1, true, false, true, false],
|
||||
[2, 2, false, false, true, true],
|
||||
[2, 3, true, false, true, false],
|
||||
[2, 4, false, true, false, true],
|
||||
[2, 5, true, false, true, false],
|
||||
[2, 6, false, true, false, true],
|
||||
[2, 7, false, true, false, true],
|
||||
[2, 8, true, false, true, false],
|
||||
[2, 9, false, false, false, false],
|
||||
[2, 10, false, false, false, false],
|
||||
[2, 11, false, false, false, false],
|
||||
[2, 12, false, false, false, false],
|
||||
[2, 13, false, false, false, false],
|
||||
[2, 14, false, false, false, false],
|
||||
[2, 15, false, false, false, false],
|
||||
[2, 16, false, false, false, false],
|
||||
[2, 17, false, false, false, false],
|
||||
[2, 18, false, false, false, false],
|
||||
[2, 19, false, true, false, true],
|
||||
[2, 20, false, true, false, true],
|
||||
[2, 21, false, false, false, false],
|
||||
[2, 22, false, true, false, true],
|
||||
[2, 23, false, false, false, false],
|
||||
[2, 24, true, false, true, false],
|
||||
[2, 25, false, true, false, true],
|
||||
[3, 0, false, true, false, true],
|
||||
[3, 1, false, true, false, true],
|
||||
[3, 2, false, true, false, true],
|
||||
[3, 3, false, false, true, true],
|
||||
[3, 4, false, true, false, true],
|
||||
[3, 5, false, true, false, true],
|
||||
[3, 6, false, true, false, true],
|
||||
[3, 7, false, true, false, true],
|
||||
[3, 8, false, true, false, true],
|
||||
[3, 9, false, false, false, false],
|
||||
[3, 10, false, false, false, false],
|
||||
[3, 11, false, false, false, false],
|
||||
[3, 12, false, false, false, false],
|
||||
[3, 13, false, false, false, false],
|
||||
[3, 14, false, false, false, false],
|
||||
[3, 15, false, false, false, false],
|
||||
[3, 16, false, false, false, false],
|
||||
[3, 17, false, false, false, false],
|
||||
[3, 18, false, false, false, false],
|
||||
[3, 19, false, true, false, true],
|
||||
[3, 20, false, true, false, true],
|
||||
[3, 21, false, false, false, false],
|
||||
[3, 22, false, true, false, true],
|
||||
[3, 23, false, false, false, false],
|
||||
[3, 24, true, false, true, false],
|
||||
[3, 25, false, true, false, true],
|
||||
[4, 0, false, false, true, true],
|
||||
[4, 1, true, false, true, false],
|
||||
[4, 2, true, false, true, false],
|
||||
[4, 3, true, false, true, false],
|
||||
[4, 4, false, false, true, true],
|
||||
[4, 5, true, false, true, false],
|
||||
[4, 6, false, true, false, true],
|
||||
[4, 7, false, false, true, true],
|
||||
[4, 8, true, false, true, false],
|
||||
[4, 9, false, false, false, false],
|
||||
[4, 10, false, false, false, false],
|
||||
[4, 11, false, false, false, false],
|
||||
[4, 12, false, false, false, false],
|
||||
[4, 13, false, false, false, false],
|
||||
[4, 14, false, false, false, false],
|
||||
[4, 15, false, false, false, false],
|
||||
[4, 16, false, false, false, false],
|
||||
[4, 17, false, false, false, false],
|
||||
[4, 18, false, false, false, false],
|
||||
[4, 19, false, false, true, true],
|
||||
[4, 20, false, true, false, true],
|
||||
[4, 21, false, false, false, false],
|
||||
[4, 22, false, true, false, true],
|
||||
[4, 23, false, false, false, false],
|
||||
[4, 24, true, false, true, false],
|
||||
[4, 25, false, true, false, true],
|
||||
[5, 0, false, true, false, true],
|
||||
[5, 1, false, false, true, true],
|
||||
[5, 2, false, true, false, true],
|
||||
[5, 3, true, false, true, false],
|
||||
[5, 4, false, true, false, true],
|
||||
[5, 5, false, false, true, true],
|
||||
[5, 6, false, true, false, true],
|
||||
[5, 7, false, true, false, true],
|
||||
[5, 8, false, false, true, true],
|
||||
[5, 9, false, false, false, false],
|
||||
[5, 10, false, false, false, false],
|
||||
[5, 11, false, false, false, false],
|
||||
[5, 12, false, false, false, false],
|
||||
[5, 13, false, false, false, false],
|
||||
[5, 14, false, false, false, false],
|
||||
[5, 15, false, false, false, false],
|
||||
[5, 16, false, false, false, false],
|
||||
[5, 17, false, false, false, false],
|
||||
[5, 18, false, false, false, false],
|
||||
[5, 19, false, true, false, true],
|
||||
[5, 20, false, true, false, true],
|
||||
[5, 21, false, false, false, false],
|
||||
[5, 22, false, true, false, true],
|
||||
[5, 23, false, false, false, false],
|
||||
[5, 24, true, false, true, false],
|
||||
[5, 25, false, true, false, true],
|
||||
[6, 0, true, false, true, false],
|
||||
[6, 1, true, false, true, false],
|
||||
[6, 2, true, false, true, false],
|
||||
[6, 3, true, false, true, false],
|
||||
[6, 4, true, false, true, false],
|
||||
[6, 5, true, false, true, false],
|
||||
[6, 6, false, false, true, true],
|
||||
[6, 7, true, false, true, false],
|
||||
[6, 8, true, false, true, false],
|
||||
[6, 9, true, false, true, false],
|
||||
[6, 10, true, false, true, false],
|
||||
[6, 11, true, false, true, false],
|
||||
[6, 12, true, false, true, false],
|
||||
[6, 13, true, false, true, false],
|
||||
[6, 14, true, false, true, false],
|
||||
[6, 15, true, false, true, false],
|
||||
[6, 16, true, false, true, false],
|
||||
[6, 17, true, false, true, false],
|
||||
[6, 18, true, false, true, false],
|
||||
[6, 19, true, false, true, false],
|
||||
[6, 20, false, false, true, true],
|
||||
[6, 21, false, false, false, false],
|
||||
[6, 22, false, false, true, true],
|
||||
[6, 23, false, false, false, false],
|
||||
[6, 24, true, false, true, false],
|
||||
[6, 25, false, true, false, true],
|
||||
[7, 0, false, false, true, true],
|
||||
[7, 1, true, false, true, false],
|
||||
[7, 2, true, false, true, false],
|
||||
[7, 3, true, false, true, false],
|
||||
[7, 4, false, false, true, true],
|
||||
[7, 5, true, false, true, false],
|
||||
[7, 6, false, true, false, true],
|
||||
[7, 7, false, false, true, true],
|
||||
[7, 8, true, false, true, false],
|
||||
[7, 9, true, false, true, false],
|
||||
[7, 10, true, false, true, false],
|
||||
[7, 11, true, false, true, false],
|
||||
[7, 12, true, false, true, false],
|
||||
[7, 13, true, false, true, false],
|
||||
[7, 14, true, false, true, false],
|
||||
[7, 15, true, false, true, false],
|
||||
[7, 16, true, false, true, false],
|
||||
[7, 17, true, false, true, false],
|
||||
[7, 18, true, false, true, false],
|
||||
[7, 19, false, false, true, true],
|
||||
[7, 20, false, true, false, true],
|
||||
[7, 21, false, false, false, false],
|
||||
[7, 22, false, true, false, true],
|
||||
[7, 23, false, false, false, false],
|
||||
[7, 24, true, false, true, false],
|
||||
[7, 25, false, true, false, true],
|
||||
[8, 0, false, true, false, true],
|
||||
[8, 1, false, false, true, true],
|
||||
[8, 2, false, true, false, true],
|
||||
[8, 3, true, false, true, false],
|
||||
[8, 4, false, true, false, true],
|
||||
[8, 5, false, false, true, true],
|
||||
[8, 6, false, true, false, true],
|
||||
[8, 7, false, true, false, true],
|
||||
[8, 8, false, false, true, true],
|
||||
[8, 9, false, true, false, true],
|
||||
[8, 10, true, false, true, false],
|
||||
[8, 11, true, false, true, false],
|
||||
[8, 12, true, false, true, false],
|
||||
[8, 13, true, false, true, false],
|
||||
[8, 14, true, false, true, false],
|
||||
[8, 15, true, false, true, false],
|
||||
[8, 16, true, false, true, false],
|
||||
[8, 17, true, false, true, false],
|
||||
[8, 18, true, false, true, false],
|
||||
[8, 19, false, true, false, true],
|
||||
[8, 20, false, true, false, true],
|
||||
[8, 21, false, false, false, false],
|
||||
[8, 22, false, true, false, true],
|
||||
[8, 23, false, false, false, false],
|
||||
[8, 24, true, false, true, false],
|
||||
[8, 25, false, true, false, true],
|
||||
[9, 0, false, false, false, false],
|
||||
[9, 1, false, false, false, false],
|
||||
[9, 2, false, false, false, false],
|
||||
[9, 3, false, false, false, false],
|
||||
[9, 4, false, false, false, false],
|
||||
[9, 5, false, false, false, false],
|
||||
[9, 6, false, true, false, true],
|
||||
[9, 7, false, true, false, true],
|
||||
[9, 8, true, false, true, false],
|
||||
[9, 9, false, false, true, true],
|
||||
[9, 10, true, false, true, false],
|
||||
[9, 11, true, false, true, false],
|
||||
[9, 12, true, false, true, false],
|
||||
[9, 13, true, false, true, false],
|
||||
[9, 14, true, false, true, false],
|
||||
[9, 15, true, false, true, false],
|
||||
[9, 16, true, false, true, false],
|
||||
[9, 17, true, false, true, false],
|
||||
[9, 18, true, false, true, false],
|
||||
[9, 19, false, false, false, false],
|
||||
[9, 20, false, false, false, false],
|
||||
[9, 21, false, false, false, false],
|
||||
[9, 22, false, false, false, false],
|
||||
[9, 23, false, false, false, false],
|
||||
[9, 24, false, false, false, false],
|
||||
[9, 25, false, false, false, false],
|
||||
[10, 0, false, false, false, false],
|
||||
[10, 1, false, false, false, false],
|
||||
[10, 2, false, false, false, false],
|
||||
[10, 3, false, false, false, false],
|
||||
[10, 4, false, false, false, false],
|
||||
[10, 5, false, false, false, false],
|
||||
[10, 6, false, true, false, true],
|
||||
[10, 7, false, true, false, true],
|
||||
[10, 8, false, true, false, true],
|
||||
[10, 9, false, true, false, true],
|
||||
[10, 10, false, false, true, true],
|
||||
[10, 11, true, false, true, false],
|
||||
[10, 12, true, false, true, false],
|
||||
[10, 13, true, false, true, false],
|
||||
[10, 14, false, true, false, true],
|
||||
[10, 15, false, true, false, true],
|
||||
[10, 16, false, true, false, true],
|
||||
[10, 17, false, true, false, true],
|
||||
[10, 18, false, true, false, true],
|
||||
[10, 19, false, false, false, false],
|
||||
[10, 20, false, false, false, false],
|
||||
[10, 21, false, false, false, false],
|
||||
[10, 22, false, false, false, false],
|
||||
[10, 23, false, false, false, false],
|
||||
[10, 24, false, false, false, false],
|
||||
[10, 25, false, false, false, false],
|
||||
[11, 0, false, false, false, false],
|
||||
[11, 1, false, false, false, false],
|
||||
[11, 2, false, false, false, false],
|
||||
[11, 3, false, false, false, false],
|
||||
[11, 4, false, false, false, false],
|
||||
[11, 5, false, false, false, false],
|
||||
[11, 6, false, true, false, true],
|
||||
[11, 7, false, true, false, true],
|
||||
[11, 8, false, true, false, true],
|
||||
[11, 9, false, true, false, true],
|
||||
[11, 10, false, true, false, true],
|
||||
[11, 11, false, false, true, true],
|
||||
[11, 12, true, false, true, false],
|
||||
[11, 13, true, false, true, false],
|
||||
[11, 14, false, true, false, true],
|
||||
[11, 15, false, true, false, true],
|
||||
[11, 16, false, true, false, true],
|
||||
[11, 17, false, true, false, true],
|
||||
[11, 18, false, true, false, true],
|
||||
[11, 19, false, false, false, false],
|
||||
[11, 20, false, false, false, false],
|
||||
[11, 21, false, false, false, false],
|
||||
[11, 22, false, false, false, false],
|
||||
[11, 23, false, false, false, false],
|
||||
[11, 24, false, false, false, false],
|
||||
[11, 25, false, false, false, false],
|
||||
[12, 0, false, false, false, false],
|
||||
[12, 1, false, false, false, false],
|
||||
[12, 2, false, false, false, false],
|
||||
[12, 3, false, false, false, false],
|
||||
[12, 4, false, false, false, false],
|
||||
[12, 5, false, false, false, false],
|
||||
[12, 6, false, true, false, true],
|
||||
[12, 7, false, true, false, true],
|
||||
[12, 8, false, true, false, true],
|
||||
[12, 9, false, true, false, true],
|
||||
[12, 10, false, true, false, true],
|
||||
[12, 11, false, true, false, true],
|
||||
[12, 12, false, false, true, true],
|
||||
[12, 13, false, true, false, true],
|
||||
[12, 14, false, true, false, true],
|
||||
[12, 15, false, true, false, true],
|
||||
[12, 16, false, true, false, true],
|
||||
[12, 17, false, true, false, true],
|
||||
[12, 18, false, true, false, true],
|
||||
[12, 19, false, false, false, false],
|
||||
[12, 20, false, false, false, false],
|
||||
[12, 21, false, false, false, false],
|
||||
[12, 22, false, false, false, false],
|
||||
[12, 23, false, false, false, false],
|
||||
[12, 24, false, false, false, false],
|
||||
[12, 25, false, false, false, false],
|
||||
[13, 0, false, false, false, false],
|
||||
[13, 1, false, false, false, false],
|
||||
[13, 2, false, false, false, false],
|
||||
[13, 3, false, false, false, false],
|
||||
[13, 4, false, false, false, false],
|
||||
[13, 5, false, false, false, false],
|
||||
[13, 6, false, true, false, true],
|
||||
[13, 7, false, true, false, true],
|
||||
[13, 8, false, true, false, true],
|
||||
[13, 9, false, true, false, true],
|
||||
[13, 10, false, true, false, true],
|
||||
[13, 11, false, true, false, true],
|
||||
[13, 12, true, false, true, false],
|
||||
[13, 13, false, false, true, true],
|
||||
[13, 14, false, true, false, true],
|
||||
[13, 15, false, true, false, true],
|
||||
[13, 16, false, true, false, true],
|
||||
[13, 17, false, true, false, true],
|
||||
[13, 18, false, true, false, true],
|
||||
[13, 19, false, false, false, false],
|
||||
[13, 20, false, false, false, false],
|
||||
[13, 21, false, false, false, false],
|
||||
[13, 22, false, false, false, false],
|
||||
[13, 23, false, false, false, false],
|
||||
[13, 24, false, false, false, false],
|
||||
[13, 25, false, false, false, false],
|
||||
[14, 0, false, false, false, false],
|
||||
[14, 1, false, false, false, false],
|
||||
[14, 2, false, false, false, false],
|
||||
[14, 3, false, false, false, false],
|
||||
[14, 4, false, false, false, false],
|
||||
[14, 5, false, false, false, false],
|
||||
[14, 6, false, true, false, true],
|
||||
[14, 7, false, true, false, true],
|
||||
[14, 8, false, true, false, true],
|
||||
[14, 9, false, true, false, true],
|
||||
[14, 10, true, false, true, false],
|
||||
[14, 11, true, false, true, false],
|
||||
[14, 12, true, false, true, false],
|
||||
[14, 13, true, false, true, false],
|
||||
[14, 14, false, false, true, true],
|
||||
[14, 15, false, true, false, true],
|
||||
[14, 16, false, true, false, true],
|
||||
[14, 17, false, true, false, true],
|
||||
[14, 18, false, true, false, true],
|
||||
[14, 19, false, false, false, false],
|
||||
[14, 20, false, false, false, false],
|
||||
[14, 21, false, false, false, false],
|
||||
[14, 22, false, false, false, false],
|
||||
[14, 23, false, false, false, false],
|
||||
[14, 24, false, false, false, false],
|
||||
[14, 25, false, false, false, false],
|
||||
[15, 0, false, false, false, false],
|
||||
[15, 1, false, false, false, false],
|
||||
[15, 2, false, false, false, false],
|
||||
[15, 3, false, false, false, false],
|
||||
[15, 4, false, false, false, false],
|
||||
[15, 5, false, false, false, false],
|
||||
[15, 6, false, true, false, true],
|
||||
[15, 7, false, true, false, true],
|
||||
[15, 8, false, true, false, true],
|
||||
[15, 9, false, true, false, true],
|
||||
[15, 10, true, false, true, false],
|
||||
[15, 11, true, false, true, false],
|
||||
[15, 12, true, false, true, false],
|
||||
[15, 13, true, false, true, false],
|
||||
[15, 14, true, false, true, false],
|
||||
[15, 15, false, false, true, true],
|
||||
[15, 16, false, false, true, true],
|
||||
[15, 17, false, false, true, true],
|
||||
[15, 18, false, false, true, true],
|
||||
[15, 19, false, false, false, false],
|
||||
[15, 20, false, false, false, false],
|
||||
[15, 21, false, false, false, false],
|
||||
[15, 22, false, false, false, false],
|
||||
[15, 23, false, false, false, false],
|
||||
[15, 24, false, false, false, false],
|
||||
[15, 25, false, false, false, false],
|
||||
[16, 0, false, false, false, false],
|
||||
[16, 1, false, false, false, false],
|
||||
[16, 2, false, false, false, false],
|
||||
[16, 3, false, false, false, false],
|
||||
[16, 4, false, false, false, false],
|
||||
[16, 5, false, false, false, false],
|
||||
[16, 6, false, true, false, true],
|
||||
[16, 7, false, true, false, true],
|
||||
[16, 8, false, true, false, true],
|
||||
[16, 9, false, true, false, true],
|
||||
[16, 10, true, false, true, false],
|
||||
[16, 11, true, false, true, false],
|
||||
[16, 12, true, false, true, false],
|
||||
[16, 13, true, false, true, false],
|
||||
[16, 14, true, false, true, false],
|
||||
[16, 15, false, false, true, true],
|
||||
[16, 16, false, false, true, true],
|
||||
[16, 17, false, false, true, true],
|
||||
[16, 18, false, false, true, true],
|
||||
[16, 19, false, false, false, false],
|
||||
[16, 20, false, false, false, false],
|
||||
[16, 21, false, false, false, false],
|
||||
[16, 22, false, false, false, false],
|
||||
[16, 23, false, false, false, false],
|
||||
[16, 24, false, false, false, false],
|
||||
[16, 25, false, false, false, false],
|
||||
[17, 0, false, false, false, false],
|
||||
[17, 1, false, false, false, false],
|
||||
[17, 2, false, false, false, false],
|
||||
[17, 3, false, false, false, false],
|
||||
[17, 4, false, false, false, false],
|
||||
[17, 5, false, false, false, false],
|
||||
[17, 6, false, true, false, true],
|
||||
[17, 7, false, true, false, true],
|
||||
[17, 8, false, true, false, true],
|
||||
[17, 9, false, true, false, true],
|
||||
[17, 10, true, false, true, false],
|
||||
[17, 11, true, false, true, false],
|
||||
[17, 12, true, false, true, false],
|
||||
[17, 13, true, false, true, false],
|
||||
[17, 14, true, false, true, false],
|
||||
[17, 15, false, false, true, true],
|
||||
[17, 16, false, false, true, true],
|
||||
[17, 17, false, false, true, true],
|
||||
[17, 18, false, false, true, true],
|
||||
[17, 19, false, false, false, false],
|
||||
[17, 20, false, false, false, false],
|
||||
[17, 21, false, false, false, false],
|
||||
[17, 22, false, false, false, false],
|
||||
[17, 23, false, false, false, false],
|
||||
[17, 24, false, false, false, false],
|
||||
[17, 25, false, false, false, false],
|
||||
[18, 0, false, false, false, false],
|
||||
[18, 1, false, false, false, false],
|
||||
[18, 2, false, false, false, false],
|
||||
[18, 3, false, false, false, false],
|
||||
[18, 4, false, false, false, false],
|
||||
[18, 5, false, false, false, false],
|
||||
[18, 6, false, true, false, true],
|
||||
[18, 7, false, true, false, true],
|
||||
[18, 8, false, true, false, true],
|
||||
[18, 9, false, true, false, true],
|
||||
[18, 10, true, false, true, false],
|
||||
[18, 11, true, false, true, false],
|
||||
[18, 12, true, false, true, false],
|
||||
[18, 13, true, false, true, false],
|
||||
[18, 14, true, false, true, false],
|
||||
[18, 15, false, false, true, true],
|
||||
[18, 16, false, false, true, true],
|
||||
[18, 17, false, false, true, true],
|
||||
[18, 18, false, false, true, true],
|
||||
[18, 19, false, false, false, false],
|
||||
[18, 20, false, false, false, false],
|
||||
[18, 21, false, false, false, false],
|
||||
[18, 22, false, false, false, false],
|
||||
[18, 23, false, false, false, false],
|
||||
[18, 24, false, false, false, false],
|
||||
[18, 25, false, false, false, false],
|
||||
[19, 0, false, false, true, true],
|
||||
[19, 1, true, false, true, false],
|
||||
[19, 2, true, false, true, false],
|
||||
[19, 3, true, false, true, false],
|
||||
[19, 4, false, false, true, true],
|
||||
[19, 5, true, false, true, false],
|
||||
[19, 6, false, true, false, true],
|
||||
[19, 7, false, false, true, true],
|
||||
[19, 8, true, false, true, false],
|
||||
[19, 9, false, false, false, false],
|
||||
[19, 10, false, false, false, false],
|
||||
[19, 11, false, false, false, false],
|
||||
[19, 12, false, false, false, false],
|
||||
[19, 13, false, false, false, false],
|
||||
[19, 14, false, false, false, false],
|
||||
[19, 15, false, false, false, false],
|
||||
[19, 16, false, false, false, false],
|
||||
[19, 17, false, false, false, false],
|
||||
[19, 18, false, false, false, false],
|
||||
[19, 19, false, false, true, true],
|
||||
[19, 20, false, true, false, true],
|
||||
[19, 21, false, false, false, false],
|
||||
[19, 22, false, true, false, true],
|
||||
[19, 23, false, false, false, false],
|
||||
[19, 24, true, false, true, false],
|
||||
[19, 25, false, true, false, true],
|
||||
[20, 0, true, false, true, false],
|
||||
[20, 1, true, false, true, false],
|
||||
[20, 2, true, false, true, false],
|
||||
[20, 3, true, false, true, false],
|
||||
[20, 4, true, false, true, false],
|
||||
[20, 5, true, false, true, false],
|
||||
[20, 6, false, false, true, true],
|
||||
[20, 7, true, false, true, false],
|
||||
[20, 8, true, false, true, false],
|
||||
[20, 9, false, false, false, false],
|
||||
[20, 10, false, false, false, false],
|
||||
[20, 11, false, false, false, false],
|
||||
[20, 12, false, false, false, false],
|
||||
[20, 13, false, false, false, false],
|
||||
[20, 14, false, false, false, false],
|
||||
[20, 15, false, false, false, false],
|
||||
[20, 16, false, false, false, false],
|
||||
[20, 17, false, false, false, false],
|
||||
[20, 18, false, false, false, false],
|
||||
[20, 19, true, false, true, false],
|
||||
[20, 20, false, false, true, true],
|
||||
[20, 21, false, false, false, false],
|
||||
[20, 22, false, false, true, true],
|
||||
[20, 23, false, false, false, false],
|
||||
[20, 24, true, false, true, false],
|
||||
[20, 25, false, true, false, true],
|
||||
[21, 0, false, false, false, false],
|
||||
[21, 1, false, false, false, false],
|
||||
[21, 2, false, false, false, false],
|
||||
[21, 3, false, false, false, false],
|
||||
[21, 4, false, false, false, false],
|
||||
[21, 5, false, false, false, false],
|
||||
[21, 6, false, false, false, false],
|
||||
[21, 7, false, false, false, false],
|
||||
[21, 8, false, false, false, false],
|
||||
[21, 9, false, false, false, false],
|
||||
[21, 10, false, false, false, false],
|
||||
[21, 11, false, false, false, false],
|
||||
[21, 12, false, false, false, false],
|
||||
[21, 13, false, false, false, false],
|
||||
[21, 14, false, false, false, false],
|
||||
[21, 15, false, false, false, false],
|
||||
[21, 16, false, false, false, false],
|
||||
[21, 17, false, false, false, false],
|
||||
[21, 18, false, false, false, false],
|
||||
[21, 19, false, false, false, false],
|
||||
[21, 20, false, false, false, false],
|
||||
[21, 21, false, false, false, false],
|
||||
[21, 22, false, false, false, false],
|
||||
[21, 23, false, false, false, false],
|
||||
[21, 24, false, false, false, false],
|
||||
[21, 25, false, false, false, false],
|
||||
[22, 0, true, false, true, false],
|
||||
[22, 1, true, false, true, false],
|
||||
[22, 2, true, false, true, false],
|
||||
[22, 3, true, false, true, false],
|
||||
[22, 4, true, false, true, false],
|
||||
[22, 5, true, false, true, false],
|
||||
[22, 6, false, false, true, true],
|
||||
[22, 7, true, false, true, false],
|
||||
[22, 8, true, false, true, false],
|
||||
[22, 9, false, false, false, false],
|
||||
[22, 10, false, false, false, false],
|
||||
[22, 11, false, false, false, false],
|
||||
[22, 12, false, false, false, false],
|
||||
[22, 13, false, false, false, false],
|
||||
[22, 14, false, false, false, false],
|
||||
[22, 15, false, false, false, false],
|
||||
[22, 16, false, false, false, false],
|
||||
[22, 17, false, false, false, false],
|
||||
[22, 18, false, false, false, false],
|
||||
[22, 19, true, false, true, false],
|
||||
[22, 20, false, false, true, true],
|
||||
[22, 21, false, false, false, false],
|
||||
[22, 22, false, false, true, true],
|
||||
[22, 23, false, false, false, false],
|
||||
[22, 24, true, false, true, false],
|
||||
[22, 25, false, true, false, true],
|
||||
[23, 0, false, false, false, false],
|
||||
[23, 1, false, false, false, false],
|
||||
[23, 2, false, false, false, false],
|
||||
[23, 3, false, false, false, false],
|
||||
[23, 4, false, false, false, false],
|
||||
[23, 5, false, false, false, false],
|
||||
[23, 6, false, false, false, false],
|
||||
[23, 7, false, false, false, false],
|
||||
[23, 8, false, false, false, false],
|
||||
[23, 9, false, false, false, false],
|
||||
[23, 10, false, false, false, false],
|
||||
[23, 11, false, false, false, false],
|
||||
[23, 12, false, false, false, false],
|
||||
[23, 13, false, false, false, false],
|
||||
[23, 14, false, false, false, false],
|
||||
[23, 15, false, false, false, false],
|
||||
[23, 16, false, false, false, false],
|
||||
[23, 17, false, false, false, false],
|
||||
[23, 18, false, false, false, false],
|
||||
[23, 19, false, false, false, false],
|
||||
[23, 20, false, false, false, false],
|
||||
[23, 21, false, false, false, false],
|
||||
[23, 22, false, false, false, false],
|
||||
[23, 23, false, false, false, false],
|
||||
[23, 24, false, false, false, false],
|
||||
[23, 25, false, false, false, false],
|
||||
[24, 0, false, true, false, true],
|
||||
[24, 1, false, true, false, true],
|
||||
[24, 2, false, true, false, true],
|
||||
[24, 3, false, true, false, true],
|
||||
[24, 4, false, true, false, true],
|
||||
[24, 5, false, true, false, true],
|
||||
[24, 6, false, true, false, true],
|
||||
[24, 7, false, true, false, true],
|
||||
[24, 8, false, true, false, true],
|
||||
[24, 9, false, false, false, false],
|
||||
[24, 10, false, false, false, false],
|
||||
[24, 11, false, false, false, false],
|
||||
[24, 12, false, false, false, false],
|
||||
[24, 13, false, false, false, false],
|
||||
[24, 14, false, false, false, false],
|
||||
[24, 15, false, false, false, false],
|
||||
[24, 16, false, false, false, false],
|
||||
[24, 17, false, false, false, false],
|
||||
[24, 18, false, false, false, false],
|
||||
[24, 19, false, true, false, true],
|
||||
[24, 20, false, true, false, true],
|
||||
[24, 21, false, false, false, false],
|
||||
[24, 22, false, true, false, true],
|
||||
[24, 23, false, false, false, false],
|
||||
[24, 24, false, false, true, true],
|
||||
[24, 25, false, true, false, true],
|
||||
[25, 0, true, false, true, false],
|
||||
[25, 1, true, false, true, false],
|
||||
[25, 2, true, false, true, false],
|
||||
[25, 3, true, false, true, false],
|
||||
[25, 4, true, false, true, false],
|
||||
[25, 5, true, false, true, false],
|
||||
[25, 6, true, false, true, false],
|
||||
[25, 7, true, false, true, false],
|
||||
[25, 8, true, false, true, false],
|
||||
[25, 9, false, false, false, false],
|
||||
[25, 10, false, false, false, false],
|
||||
[25, 11, false, false, false, false],
|
||||
[25, 12, false, false, false, false],
|
||||
[25, 13, false, false, false, false],
|
||||
[25, 14, false, false, false, false],
|
||||
[25, 15, false, false, false, false],
|
||||
[25, 16, false, false, false, false],
|
||||
[25, 17, false, false, false, false],
|
||||
[25, 18, false, false, false, false],
|
||||
[25, 19, true, false, true, false],
|
||||
[25, 20, true, false, true, false],
|
||||
[25, 21, false, false, false, false],
|
||||
[25, 22, true, false, true, false],
|
||||
[25, 23, false, false, false, false],
|
||||
[25, 24, true, false, true, false],
|
||||
[25, 25, false, false, true, true],
|
||||
];
|
||||
|
||||
for (let test of table) {
|
||||
let x = vals[test[0]];
|
||||
let y = vals[test[1]];
|
||||
|
||||
assert(x < y === test[2]);
|
||||
assert(x > y === test[3]);
|
||||
assert(x <= y === test[4]);
|
||||
assert(x >= y === test[5]);
|
||||
}
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
26
Libraries/LibJS/Tests/operators/comma-operator.js
Normal file
26
Libraries/LibJS/Tests/operators/comma-operator.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert((1, 2, 3) === 3);
|
||||
assert((1, 2 + 3, 4) === 4);
|
||||
|
||||
var foo = 0;
|
||||
foo = (foo++, foo);
|
||||
assert(foo === 1);
|
||||
|
||||
var a, b, c;
|
||||
assert((a = b = 3, c = 4) === 4);
|
||||
assert(a === 3);
|
||||
assert(b === 3);
|
||||
assert(c === 4);
|
||||
|
||||
var x, y, z;
|
||||
assert((x = (y = 5, z = 6)) === 6);
|
||||
assert(x === 6)
|
||||
assert(y === 5)
|
||||
assert(z === 6)
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
60
Libraries/LibJS/Tests/operators/delete-basic.js
Normal file
60
Libraries/LibJS/Tests/operators/delete-basic.js
Normal file
|
@ -0,0 +1,60 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
o = {};
|
||||
o.x = 1;
|
||||
o.y = 2;
|
||||
o.z = 3;
|
||||
assert(Object.getOwnPropertyNames(o).length === 3);
|
||||
|
||||
assert(delete o.x === true);
|
||||
assert(o.hasOwnProperty('x') === false);
|
||||
assert(o.hasOwnProperty('y') === true);
|
||||
assert(o.hasOwnProperty('z') === true);
|
||||
assert(Object.getOwnPropertyNames(o).length === 2);
|
||||
|
||||
assert(delete o.y === true);
|
||||
assert(o.hasOwnProperty('x') === false);
|
||||
assert(o.hasOwnProperty('y') === false);
|
||||
assert(o.hasOwnProperty('z') === true);
|
||||
assert(Object.getOwnPropertyNames(o).length === 1);
|
||||
|
||||
assert(delete o.z === true);
|
||||
assert(o.hasOwnProperty('x') === false);
|
||||
assert(o.hasOwnProperty('y') === false);
|
||||
assert(o.hasOwnProperty('z') === false);
|
||||
assert(Object.getOwnPropertyNames(o).length === 0);
|
||||
|
||||
a = [ 3, 5, 7 ];
|
||||
|
||||
assert(Object.getOwnPropertyNames(a).length === 4);
|
||||
|
||||
assert(delete a[0] === true);
|
||||
assert(a.hasOwnProperty(0) === false);
|
||||
assert(a.hasOwnProperty(1) === true);
|
||||
assert(a.hasOwnProperty(2) === true);
|
||||
assert(Object.getOwnPropertyNames(a).length === 3);
|
||||
|
||||
assert(delete a[1] === true);
|
||||
assert(a.hasOwnProperty(0) === false);
|
||||
assert(a.hasOwnProperty(1) === false);
|
||||
assert(a.hasOwnProperty(2) === true);
|
||||
assert(Object.getOwnPropertyNames(a).length === 2);
|
||||
|
||||
assert(delete a[2] === true);
|
||||
assert(a.hasOwnProperty(0) === false);
|
||||
assert(a.hasOwnProperty(1) === false);
|
||||
assert(a.hasOwnProperty(2) === false);
|
||||
assert(Object.getOwnPropertyNames(a).length === 1);
|
||||
|
||||
q = {};
|
||||
Object.defineProperty(q, "foo", { value: 1, writable: false, enumerable: false });
|
||||
assert(q.foo === 1);
|
||||
|
||||
assert(delete q.foo === false);
|
||||
assert(q.hasOwnProperty('foo') === true);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
16
Libraries/LibJS/Tests/operators/delete-global-variable.js
Normal file
16
Libraries/LibJS/Tests/operators/delete-global-variable.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
a = 1;
|
||||
assert(delete a === true);
|
||||
|
||||
assertThrowsError(() => {
|
||||
a;
|
||||
}, {
|
||||
error: ReferenceError
|
||||
});
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
a = 1;
|
||||
assert(delete globalThis.a === true);
|
||||
a = 2;
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
35
Libraries/LibJS/Tests/operators/in-operator-basic.js
Normal file
35
Libraries/LibJS/Tests/operators/in-operator-basic.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
["foo", 123, null, undefined].forEach(value => {
|
||||
assertThrowsError(() => {
|
||||
"prop" in value;
|
||||
}, {
|
||||
error: TypeError,
|
||||
message: "'in' operator must be used on an object"
|
||||
});
|
||||
});
|
||||
|
||||
var o = {foo: "bar", bar: undefined};
|
||||
assert("" in o === false);
|
||||
assert("foo" in o === true);
|
||||
assert("bar" in o === true);
|
||||
assert("baz" in o === false);
|
||||
assert("toString" in o === true);
|
||||
|
||||
var a = ["hello", "friends"];
|
||||
assert(0 in a === true);
|
||||
assert(1 in a === true);
|
||||
assert(2 in a === false);
|
||||
assert("0" in a === true);
|
||||
assert("hello" in a === false);
|
||||
assert("friends" in a === false);
|
||||
assert("length" in a === true);
|
||||
|
||||
var s = new String("foo");
|
||||
assert("length" in s);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
28
Libraries/LibJS/Tests/operators/instanceof-basic.js
Normal file
28
Libraries/LibJS/Tests/operators/instanceof-basic.js
Normal file
|
@ -0,0 +1,28 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
function Foo() {
|
||||
this.x = 123;
|
||||
}
|
||||
|
||||
var foo = new Foo();
|
||||
assert(foo instanceof Foo);
|
||||
|
||||
function Base() {
|
||||
this.is_base = true;
|
||||
}
|
||||
|
||||
function Derived() {
|
||||
this.is_derived = true;
|
||||
}
|
||||
|
||||
Object.setPrototypeOf(Derived.prototype, Base.prototype);
|
||||
|
||||
var d = new Derived();
|
||||
assert(d instanceof Derived);
|
||||
assert(d instanceof Base);
|
||||
|
||||
console.log("PASS");
|
||||
} catch(e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
118
Libraries/LibJS/Tests/operators/logical-expressions-basic.js
Normal file
118
Libraries/LibJS/Tests/operators/logical-expressions-basic.js
Normal file
|
@ -0,0 +1,118 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert((true && true) === true);
|
||||
assert((false && false) === false);
|
||||
assert((true && false) === false);
|
||||
assert((false && true) === false);
|
||||
assert((false && (1 === 2)) === false);
|
||||
assert((true && (1 === 2)) === false);
|
||||
assert(("" && "") === "");
|
||||
assert(("" && false) === "");
|
||||
assert(("" && true) === "");
|
||||
assert((false && "") === false);
|
||||
assert((true && "") === "");
|
||||
assert(("foo" && "bar") === "bar");
|
||||
assert(("foo" && false) === false);
|
||||
assert(("foo" && true) === true);
|
||||
assert((false && "bar") === false);
|
||||
assert((true && "bar") === "bar");
|
||||
assert((0 && false) === 0);
|
||||
assert((0 && true) === 0);
|
||||
assert((42 && false) === false);
|
||||
assert((42 && true) === true);
|
||||
assert((false && 0) === false);
|
||||
assert((true && 0) === 0);
|
||||
assert((false && 42) === false);
|
||||
assert((true && 42) === 42);
|
||||
assert(([] && false) === false);
|
||||
assert(([] && true) === true);
|
||||
assert((false && []) === false);
|
||||
assert((true && []).length === 0);
|
||||
assert((null && false) === null);
|
||||
assert((null && true) === null);
|
||||
assert((false && null) === false);
|
||||
assert((true && null) === null);
|
||||
assert((undefined && false) === undefined);
|
||||
assert((undefined && true) === undefined);
|
||||
assert((false && undefined) === false);
|
||||
assert((true && undefined) === undefined);
|
||||
|
||||
assert((true || true) === true);
|
||||
assert((false || false) === false);
|
||||
assert((true || false) === true);
|
||||
assert((false || true) === true);
|
||||
assert((false || (1 === 2)) === false);
|
||||
assert((true || (1 === 2)) === true);
|
||||
assert(("" || "") === "");
|
||||
assert(("" || false) === false);
|
||||
assert(("" || true) === true);
|
||||
assert((false || "") === "");
|
||||
assert((true || "") === true);
|
||||
assert(("foo" || "bar") === "foo");
|
||||
assert(("foo" || false) === "foo");
|
||||
assert(("foo" || true) === "foo");
|
||||
assert((false || "bar") === "bar");
|
||||
assert((true || "bar") === true);
|
||||
assert((0 || false) === false);
|
||||
assert((0 || true) === true);
|
||||
assert((42 || false) === 42);
|
||||
assert((42 || true) === 42);
|
||||
assert((false || 0) === 0);
|
||||
assert((true || 0) === true);
|
||||
assert((false || 42) === 42);
|
||||
assert((true || 42) === true);
|
||||
assert(([] || false).length === 0);
|
||||
assert(([] || true).length === 0);
|
||||
assert((false || []).length === 0);
|
||||
assert((true || []) === true);
|
||||
assert((null || false) === false);
|
||||
assert((null || true) === true);
|
||||
assert((false || null) === null);
|
||||
assert((true || null) === true);
|
||||
assert((undefined || false) === false);
|
||||
assert((undefined || true) === true);
|
||||
assert((false || undefined) === undefined);
|
||||
assert((true || undefined) === true);
|
||||
|
||||
assert((true ?? true) === true);
|
||||
assert((false ?? false) === false);
|
||||
assert((true ?? false) === true);
|
||||
assert((false ?? true) === false);
|
||||
assert((false ?? (1 === 2)) === false);
|
||||
assert((true ?? (1 === 2)) === true);
|
||||
assert(("" ?? "") === "");
|
||||
assert(("" ?? false) === "");
|
||||
assert(("" ?? true) === "");
|
||||
assert((false ?? "") === false);
|
||||
assert((true ?? "") === true);
|
||||
assert(("foo" ?? "bar") === "foo");
|
||||
assert(("foo" ?? false) === "foo");
|
||||
assert(("foo" ?? true) === "foo");
|
||||
assert((false ?? "bar") === false);
|
||||
assert((true ?? "bar") === true);
|
||||
assert((0 ?? false) === 0);
|
||||
assert((0 ?? true) === 0);
|
||||
assert((42 ?? false) === 42);
|
||||
assert((42 ?? true) === 42);
|
||||
assert((false ?? 0) === false);
|
||||
assert((true ?? 0) === true);
|
||||
assert((false ?? 42) === false);
|
||||
assert((true ?? 42) === true);
|
||||
assert(([] ?? false).length === 0);
|
||||
assert(([] ?? true).length === 0);
|
||||
assert((false ?? []) === false);
|
||||
assert((true ?? []) === true);
|
||||
assert((null ?? false) === false);
|
||||
assert((null ?? true) === true);
|
||||
assert((false ?? null) === false);
|
||||
assert((true ?? null) === true);
|
||||
assert((undefined ?? false) === false);
|
||||
assert((undefined ?? true) === true);
|
||||
assert((false ?? undefined) === false);
|
||||
assert((true ?? undefined) === true);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
let foo = 1;
|
||||
false && (foo = 2);
|
||||
assert(foo === 1);
|
||||
|
||||
foo = 1;
|
||||
true || (foo = 2);
|
||||
assert(foo === 1);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
22
Libraries/LibJS/Tests/operators/modulo-basic.js
Normal file
22
Libraries/LibJS/Tests/operators/modulo-basic.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert(10 % 3 === 1);
|
||||
assert(10.5 % 2.5 === 0.5);
|
||||
assert(-0.99 % 0.99 === -0);
|
||||
|
||||
// Examples from MDN:
|
||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators
|
||||
assert(12 % 5 === 2);
|
||||
assert(-1 % 2 === -1);
|
||||
assert(1 % -2 === 1);
|
||||
assert(isNaN(NaN % 2));
|
||||
assert(1 % 2 === 1);
|
||||
assert(2 % 3 === 2);
|
||||
assert(-4 % 2 === -0);
|
||||
assert(5.5 % 2 === 1.5);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
21
Libraries/LibJS/Tests/operators/ternary-basic.js
Normal file
21
Libraries/LibJS/Tests/operators/ternary-basic.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
var x = 1;
|
||||
|
||||
assert(x === 1 ? true : false);
|
||||
assert((x ? x : 0) === x);
|
||||
assert(1 < 2 ? (true) : (false));
|
||||
assert((0 ? 1 : 1 ? 10 : 20) === 10);
|
||||
assert((0 ? 1 ? 1 : 10 : 20) === 20);
|
||||
|
||||
var o = {};
|
||||
o.f = true;
|
||||
assert(o.f ? true : false);
|
||||
|
||||
assert(1 ? o.f : null);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
27
Libraries/LibJS/Tests/operators/typeof-basic.js
Normal file
27
Libraries/LibJS/Tests/operators/typeof-basic.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert(typeof "foo" === "string");
|
||||
assert(!(typeof "foo" !== "string"));
|
||||
assert(typeof (1 + 2) === "number");
|
||||
assert(typeof {} === "object");
|
||||
assert(typeof null === "object");
|
||||
assert(typeof undefined === "undefined");
|
||||
|
||||
var iExist = 1;
|
||||
assert(typeof iExist === "number");
|
||||
assert(typeof iDontExist === "undefined");
|
||||
|
||||
var calls = 0;
|
||||
Object.defineProperty(globalThis, "foo", {
|
||||
get() {
|
||||
calls++;
|
||||
},
|
||||
});
|
||||
assert(typeof foo === "undefined");
|
||||
assert(calls === 1);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
20
Libraries/LibJS/Tests/operators/void-basic.js
Normal file
20
Libraries/LibJS/Tests/operators/void-basic.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert(void "" === undefined);
|
||||
assert(void "foo" === undefined);
|
||||
assert(void 1 === undefined);
|
||||
assert(void 42 === undefined);
|
||||
assert(void true === undefined);
|
||||
assert(void false === undefined);
|
||||
assert(void null === undefined);
|
||||
assert(void undefined === undefined);
|
||||
assert(void function () {} === undefined);
|
||||
assert(void (() => {}) === undefined);
|
||||
assert(void (() => "hello friends")() === undefined);
|
||||
assert((() => void "hello friends")() === undefined);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue