1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 04:58:13 +00:00
serenity/Userland/Libraries/LibJS
Aliaksandr Kalenik 2f85faef0f LibJS: Fix scope detection for ids in default function params
This change fixes an issue where identifiers used in default function
parameters were being "registered" in the function's parent scope
instead of its own scope. This bug resulted in incorrectly detected
local variables. (Variables used in the default function parameter
expression should be considered 'captured by nested function'.)

To resolve this issue, the function scope is now created before parsing
function parameters. Since function parameters can no longer be passed
in the constructor, a setter function has been introduced to set them
later, when they are ready.
2023-07-08 14:03:12 +02:00
..
Bytecode Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
Contrib/Test262 LibJS: Make $262.evalScript() work in bytecode mode 2023-06-25 13:13:19 +02:00
Heap Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
Runtime LibJS: Fix scope detection for ids in default function params 2023-07-08 14:03:12 +02:00
Tests LibJS: Fix scope detection for ids in default function params 2023-07-08 14:03:12 +02:00
AST.cpp LibJS: Use Identifier to represent FunctionParameter name 2023-07-07 19:35:08 +02:00
AST.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
CMakeLists.txt LibJS: Add initial implementation for SharedArrayBuffer 2023-07-01 16:55:17 +01:00
Console.cpp LibJS: Begin implementing console.dir 2023-06-22 06:46:27 +02:00
Console.h LibJS: Begin implementing console.dir 2023-06-22 06:46:27 +02:00
CyclicModule.cpp LibJS+LibWeb: Add missing visit calls in visit_edges implementations 2023-04-30 06:04:33 +02:00
CyclicModule.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
Forward.h LibJS: Forward declare the MemberExpression AST node 2023-07-07 18:11:51 +02:00
Interpreter.cpp LibJS/Bytecode: Leave GlobalDeclarationInstantiation in C++ 2023-06-16 08:40:45 +02:00
Interpreter.h Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
Lexer.cpp LibJS: Parse slashes after reserved identifiers correctly 2023-06-10 07:20:33 +02:00
Lexer.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
MarkupGenerator.cpp LibJS: Fix redundancy-detection when printing raw values 2023-06-15 08:09:16 +02:00
MarkupGenerator.h LibJS: Fix redundancy-detection when printing raw values 2023-06-15 08:09:16 +02:00
Module.cpp LibJS+Everywhere: Propagate Cell::initialize errors from Heap::allocate 2023-01-29 00:02:45 +00:00
Module.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
Parser.cpp LibJS: Fix scope detection for ids in default function params 2023-07-08 14:03:12 +02:00
Parser.h LibJS: Fix scope detection for ids in default function params 2023-07-08 14:03:12 +02:00
ParserError.cpp LibJS: Add to_string definitions to CodeGenerationError and ParserError 2023-02-17 09:14:23 -05:00
ParserError.h LibJS: Add to_string definitions to CodeGenerationError and ParserError 2023-02-17 09:14:23 -05:00
Print.cpp LibJS: Show when an ArrayBuffer is detached when printing 2023-06-30 23:23:15 +02:00
Print.h Everywhere: Remove the AK:: qualifier from Stream usages 2023-02-13 00:50:07 +00:00
SafeFunction.h LibJS: Fix compilation of operator= for JS::SafeFunction 2023-03-07 11:51:12 +00:00
Script.cpp LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Script.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
SourceCode.cpp LibJS: Make RefPtr and NonnullRefPtr usage const-correct 2023-02-21 00:54:04 +01:00
SourceCode.h LibJS: Make RefPtr and NonnullRefPtr usage const-correct 2023-02-21 00:54:04 +01:00
SourceRange.h LibJS+LibWeb: Add a bunch of missing includes 2023-03-06 13:05:43 +00:00
SourceTextModule.cpp LibJS+LibWeb: Plumb local variables names to ECMAScriptFunctionObject 2023-07-05 21:03:01 +02:00
SourceTextModule.h LibJS: Make RefPtr and NonnullRefPtr usage const-correct 2023-02-21 00:54:04 +01:00
SyntaxHighlighter.cpp LibSyntax+Libraries: Replace TextStyle with Gfx::TextAttributes 2023-03-15 14:55:49 +01:00
SyntaxHighlighter.h LibSyntax: Teach each highlighter about it's comment syntax 2022-11-27 18:28:43 -07:00
SyntheticModule.cpp LibJS: Make intrinsics getters return NonnullGCPtr 2023-04-13 14:29:42 +02:00
SyntheticModule.h AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
Token.cpp AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
Token.h LibJS: Remove DeprecatedString usage from Token 2023-01-26 20:25:25 +00:00