Skip to content

Commit 401d97c

Browse files
kalenikaliaksandrawesomekling
authored andcommitted
LibJS: Add ScopeNode::for_each_var_declared_identifier()
The same as for_each_var_declared_name but for identifiers.
1 parent 7f0074a commit 401d97c

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

Userland/Libraries/LibJS/AST.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4488,6 +4488,16 @@ ThrowCompletionOr<void> ScopeNode::for_each_var_declared_name(ThrowCompletionOrV
44884488
return {};
44894489
}
44904490

4491+
ThrowCompletionOr<void> ScopeNode::for_each_var_declared_identifier(ThrowCompletionOrVoidCallback<Identifier const&>&& callback) const
4492+
{
4493+
for (auto& declaration : m_var_declarations) {
4494+
TRY(declaration->for_each_bound_identifier([&](auto const& id) {
4495+
return callback(id);
4496+
}));
4497+
}
4498+
return {};
4499+
}
4500+
44914501
ThrowCompletionOr<void> ScopeNode::for_each_var_function_declaration_in_reverse_order(ThrowCompletionOrVoidCallback<FunctionDeclaration const&>&& callback) const
44924502
{
44934503
for (ssize_t i = m_var_declarations.size() - 1; i >= 0; i--) {

Userland/Libraries/LibJS/AST.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ class ScopeNode : public Statement {
310310
ThrowCompletionOr<void> for_each_lexically_declared_name(ThrowCompletionOrVoidCallback<DeprecatedFlyString const&>&& callback) const;
311311

312312
ThrowCompletionOr<void> for_each_var_declared_name(ThrowCompletionOrVoidCallback<DeprecatedFlyString const&>&& callback) const;
313+
ThrowCompletionOr<void> for_each_var_declared_identifier(ThrowCompletionOrVoidCallback<Identifier const&>&& callback) const;
313314

314315
ThrowCompletionOr<void> for_each_var_function_declaration_in_reverse_order(ThrowCompletionOrVoidCallback<FunctionDeclaration const&>&& callback) const;
315316
ThrowCompletionOr<void> for_each_lexical_function_declaration_in_reverse_order(ThrowCompletionOrVoidCallback<FunctionDeclaration const&>&& callback) const;

0 commit comments

Comments
 (0)