LibJS: Remove unreachable code in Interpreter::enter_scope()

Functions are handled and short-circuited at the head of enter_scope().
This commit is contained in:
Andreas Kling 2020-04-16 10:24:45 +02:00
parent 9b9086dcf0
commit 13865c7c3d
Notes: sideshowbarker 2024-07-19 07:33:39 +09:00

View file

@ -125,17 +125,10 @@ void Interpreter::enter_scope(const ScopeNode& scope_node, ArgumentVector argume
bool pushed_lexical_environment = false;
if (scope_type != ScopeType::Function) {
// only a block, but maybe it has block-scoped variables!
if (!scope_variables_with_declaration_kind.is_empty()) {
auto* block_lexical_environment = heap().allocate<LexicalEnvironment>(move(scope_variables_with_declaration_kind), current_environment());
m_call_stack.last().environment = block_lexical_environment;
pushed_lexical_environment = true;
}
} else if (scope_type == ScopeType::Function) {
for (auto& it : scope_variables_with_declaration_kind) {
current_environment()->set(it.key, it.value);
}
if (!scope_variables_with_declaration_kind.is_empty()) {
auto* block_lexical_environment = heap().allocate<LexicalEnvironment>(move(scope_variables_with_declaration_kind), current_environment());
m_call_stack.last().environment = block_lexical_environment;
pushed_lexical_environment = true;
}
m_scope_stack.append({ scope_type, scope_node, pushed_lexical_environment });