mirror of
https://github.com/RGBCube/serenity
synced 2025-05-15 02:24:58 +00:00

Switch the LibJS test suite to use the native assert implementation surfaced inside the js repl when it's launched in test mode.
27 lines
1.4 KiB
JavaScript
27 lines
1.4 KiB
JavaScript
try {
|
|
assert(Function.length === 1);
|
|
assert(Function.prototype.length === 0);
|
|
assert(typeof Function() === "function");
|
|
assert(typeof new Function() === "function");
|
|
assert(Function()() === undefined);
|
|
assert(new Function()() === undefined);
|
|
assert(Function("return 42")() === 42);
|
|
assert(new Function("return 42")() === 42);
|
|
assert(new Function("foo", "return foo")(42) === 42);
|
|
assert(new Function("foo,bar", "return foo + bar")(1, 2) === 3);
|
|
assert(new Function("foo", "bar", "return foo + bar")(1, 2) === 3);
|
|
assert(new Function("foo", "bar,baz", "return foo + bar + baz")(1, 2, 3) === 6);
|
|
assert(new Function("foo", "bar", "baz", "return foo + bar + baz")(1, 2, 3) === 6);
|
|
assert(new Function("foo", "if (foo) { return 42; } else { return 'bar'; }")(true) === 42);
|
|
assert(new Function("foo", "if (foo) { return 42; } else { return 'bar'; }")(false) === "bar");
|
|
assert(new Function("return typeof Function()")() === "function");
|
|
// FIXME: This is equivalent to
|
|
// (function (x) { return function (y) { return x + y;} })(1)(2)
|
|
// and should totally work, but both currently fail with
|
|
// Uncaught exception: [ReferenceError]: 'x' not known
|
|
// assert(new Function("x", "return function (y) { return x + y };")(1)(2) === 3);
|
|
|
|
console.log("PASS");
|
|
} catch (e) {
|
|
console.log("FAIL: " + e.message);
|
|
}
|