mirror of
https://github.com/RGBCube/serenity
synced 2025-06-30 05:42:06 +00:00
LibJS: Stop iterating lexically declared names once 'arguments' is found
In ECMAScriptFunctionObject::function_declaration_instantiation() we iterate over all lexically declared names of the function scope body to determine whether any of them is named 'arguments', because we don't need to create an arguments object in that case. We can also stop at that point, because the decision won't change anymore.
This commit is contained in:
parent
3ab22c8012
commit
b2bded390a
1 changed files with 3 additions and 1 deletions
|
@ -179,8 +179,10 @@ ThrowCompletionOr<void> ECMAScriptFunctionObject::function_declaration_instantia
|
|||
|
||||
if (!has_parameter_expressions && arguments_object_needed) {
|
||||
scope_body->for_each_lexically_declared_name([&](auto const& name) {
|
||||
if (name == arguments_name)
|
||||
if (name == arguments_name) {
|
||||
arguments_object_needed = false;
|
||||
return IterationDecision::Break;
|
||||
}
|
||||
return IterationDecision::Continue;
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue