diff --git a/Userland/Libraries/LibJS/AST.cpp b/Userland/Libraries/LibJS/AST.cpp index d94f81ed519..814d35ac670 100644 --- a/Userland/Libraries/LibJS/AST.cpp +++ b/Userland/Libraries/LibJS/AST.cpp @@ -4367,16 +4367,6 @@ ThrowCompletionOr ScopeNode::for_each_lexically_scoped_declaration(ThrowCo return {}; } -ThrowCompletionOr ScopeNode::for_each_lexically_declared_name(ThrowCompletionOrVoidCallback&& callback) const -{ - for (auto const& declaration : m_lexical_declarations) { - TRY(declaration->for_each_bound_identifier([&](auto const& identifier) { - return callback(identifier.string()); - })); - } - return {}; -} - ThrowCompletionOr ScopeNode::for_each_lexically_declared_identifier(ThrowCompletionOrVoidCallback&& callback) const { for (auto const& declaration : m_lexical_declarations) { diff --git a/Userland/Libraries/LibJS/AST.h b/Userland/Libraries/LibJS/AST.h index 61e32129cb1..4a41a649d8c 100644 --- a/Userland/Libraries/LibJS/AST.h +++ b/Userland/Libraries/LibJS/AST.h @@ -307,7 +307,6 @@ public: [[nodiscard]] size_t lexical_declaration_count() const { return m_lexical_declarations.size(); } ThrowCompletionOr for_each_lexically_scoped_declaration(ThrowCompletionOrVoidCallback&& callback) const; - ThrowCompletionOr for_each_lexically_declared_name(ThrowCompletionOrVoidCallback&& callback) const; ThrowCompletionOr for_each_lexically_declared_identifier(ThrowCompletionOrVoidCallback&& callback) const; ThrowCompletionOr for_each_var_declared_name(ThrowCompletionOrVoidCallback&& callback) const; diff --git a/Userland/Libraries/LibJS/Parser.cpp b/Userland/Libraries/LibJS/Parser.cpp index d026d5596c5..9e0bd1d5740 100644 --- a/Userland/Libraries/LibJS/Parser.cpp +++ b/Userland/Libraries/LibJS/Parser.cpp @@ -762,8 +762,8 @@ void Parser::parse_module(Program& program) auto const& exported_name = entry.local_or_import_name; bool found = false; // NOTE: Nothing in the callback throws an exception. - MUST(program.for_each_lexically_declared_name([&](auto const& name) { - if (name == exported_name) + MUST(program.for_each_lexically_declared_identifier([&](auto const& identifier) { + if (identifier.string() == exported_name) found = true; })); if (found) @@ -3706,9 +3706,9 @@ NonnullRefPtr Parser::parse_catch_clause() auto body = parse_block_statement(); // NOTE: Nothing in the callback throws an exception. - MUST(body->for_each_lexically_declared_name([&](auto const& name) { - if (bound_names.contains(name)) - syntax_error(DeprecatedString::formatted("Identifier '{}' already declared as catch parameter", name)); + MUST(body->for_each_lexically_declared_identifier([&](auto const& identifier) { + if (bound_names.contains(identifier.string())) + syntax_error(DeprecatedString::formatted("Identifier '{}' already declared as catch parameter", identifier.string())); })); if (pattern_parameter) { diff --git a/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp b/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp index 02f7b01a6f9..0e071fa9b51 100644 --- a/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp +++ b/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp @@ -441,8 +441,8 @@ ThrowCompletionOr ECMAScriptFunctionObject::function_declaration_instantia if (!has_parameter_expressions && arguments_object_needed) { // NOTE: Nothing in the callback throws an exception. - MUST(scope_body->for_each_lexically_declared_name([&](auto const& name) { - if (name == arguments_name) + MUST(scope_body->for_each_lexically_declared_identifier([&](auto const& identifier) { + if (identifier.string() == arguments_name) arguments_object_needed = false; })); }