mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-22 12:35:14 +00:00
LibJS: Name functions created by "Function" "anonymous"
...as it is supposed to be.
This commit is contained in:
parent
e347d6bdb8
commit
ae05dc8abc
Notes:
sideshowbarker
2024-07-19 07:02:24 +09:00
Author: https://github.com/linusg Commit: https://github.com/SerenityOS/serenity/commit/ae05dc8abcb Pull-request: https://github.com/SerenityOS/serenity/pull/2068
2 changed files with 5 additions and 1 deletions
|
@ -66,7 +66,7 @@ Value FunctionConstructor::construct(Interpreter& interpreter)
|
|||
parameters_source = parameters_builder.build();
|
||||
body_source = interpreter.argument(interpreter.argument_count() - 1).to_string();
|
||||
}
|
||||
auto source = String::format("function (%s) { %s }", parameters_source.characters(), body_source.characters());
|
||||
auto source = String::format("function anonymous(%s) { %s }", parameters_source.characters(), body_source.characters());
|
||||
auto parser = Parser(Lexer(source));
|
||||
auto function_expression = parser.parse_function_node<FunctionExpression>();
|
||||
if (parser.has_errors()) {
|
||||
|
|
|
@ -3,8 +3,10 @@ load("test-common.js");
|
|||
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);
|
||||
|
@ -19,6 +21,8 @@ try {
|
|||
assert(new Function("return typeof Function()")() === "function");
|
||||
assert(new Function("x", "return function (y) { return x + y };")(1)(2) === 3);
|
||||
|
||||
assert(new Function().toString() === "function anonymous() {\n ???\n}");
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e.message);
|
||||
|
|
Loading…
Add table
Reference in a new issue