1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 20:07:34 +00:00

LibJS/Bytecode: Remove BlockBoundaryType::LeaveVariableEnvironment

We never need to manually exit a var environment from bytecode anymore.
This commit is contained in:
Andreas Kling 2023-06-16 16:38:25 +02:00
parent ac246d764d
commit 12ce0789da
2 changed files with 0 additions and 14 deletions

View file

@ -315,9 +315,6 @@ void Generator::generate_break()
case LeaveLexicalEnvironment: case LeaveLexicalEnvironment:
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical); emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical);
break; break;
case LeaveVariableEnvironment:
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Var);
break;
case Continue: case Continue:
break; break;
case ReturnToFinally: { case ReturnToFinally: {
@ -345,8 +342,6 @@ void Generator::generate_break(DeprecatedFlyString const& break_label)
last_was_finally = false; last_was_finally = false;
} else if (boundary == BlockBoundaryType::LeaveLexicalEnvironment) { } else if (boundary == BlockBoundaryType::LeaveLexicalEnvironment) {
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical); emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical);
} else if (boundary == BlockBoundaryType::LeaveVariableEnvironment) {
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Var);
} else if (boundary == BlockBoundaryType::ReturnToFinally) { } else if (boundary == BlockBoundaryType::ReturnToFinally) {
auto& block = make_block(DeprecatedString::formatted("{}.break", current_block().name())); auto& block = make_block(DeprecatedString::formatted("{}.break", current_block().name()));
emit<Op::ScheduleJump>(Label { block }); emit<Op::ScheduleJump>(Label { block });
@ -388,9 +383,6 @@ void Generator::generate_continue()
case LeaveLexicalEnvironment: case LeaveLexicalEnvironment:
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical); emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical);
break; break;
case LeaveVariableEnvironment:
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Var);
break;
case Break: case Break:
break; break;
case ReturnToFinally: { case ReturnToFinally: {
@ -418,8 +410,6 @@ void Generator::generate_continue(DeprecatedFlyString const& continue_label)
last_was_finally = false; last_was_finally = false;
} else if (boundary == BlockBoundaryType::LeaveLexicalEnvironment) { } else if (boundary == BlockBoundaryType::LeaveLexicalEnvironment) {
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical); emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical);
} else if (boundary == BlockBoundaryType::LeaveVariableEnvironment) {
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Var);
} else if (boundary == BlockBoundaryType::ReturnToFinally) { } else if (boundary == BlockBoundaryType::ReturnToFinally) {
auto& block = make_block(DeprecatedString::formatted("{}.continue", current_block().name())); auto& block = make_block(DeprecatedString::formatted("{}.continue", current_block().name()));
emit<Op::ScheduleJump>(Label { block }); emit<Op::ScheduleJump>(Label { block });

View file

@ -149,7 +149,6 @@ public:
Unwind, Unwind,
ReturnToFinally, ReturnToFinally,
LeaveLexicalEnvironment, LeaveLexicalEnvironment,
LeaveVariableEnvironment,
}; };
template<typename OpType> template<typename OpType>
void perform_needed_unwinds() void perform_needed_unwinds()
@ -167,9 +166,6 @@ public:
case LeaveLexicalEnvironment: case LeaveLexicalEnvironment:
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical); emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Lexical);
break; break;
case LeaveVariableEnvironment:
emit<Bytecode::Op::LeaveEnvironment>(Bytecode::Op::EnvironmentMode::Var);
break;
case Break: case Break:
case Continue: case Continue:
break; break;