|
@@ -537,6 +537,11 @@ void Interpreter::catch_exception(Operand dst)
|
|
|
vm().running_execution_context().lexical_environment = context.lexical_environment;
|
|
|
}
|
|
|
|
|
|
+void Interpreter::restore_scheduled_jump()
|
|
|
+{
|
|
|
+ m_scheduled_jump = call_frame().previously_scheduled_jumps.take_last();
|
|
|
+}
|
|
|
+
|
|
|
void Interpreter::enter_object_environment(Object& object)
|
|
|
{
|
|
|
auto& running_execution_context = vm().running_execution_context();
|
|
@@ -1020,6 +1025,12 @@ ThrowCompletionOr<void> Catch::execute_impl(Bytecode::Interpreter& interpreter)
|
|
|
return {};
|
|
|
}
|
|
|
|
|
|
+ThrowCompletionOr<void> RestoreScheduledJump::execute_impl(Bytecode::Interpreter& interpreter) const
|
|
|
+{
|
|
|
+ interpreter.restore_scheduled_jump();
|
|
|
+ return {};
|
|
|
+}
|
|
|
+
|
|
|
ThrowCompletionOr<void> CreateVariable::execute_impl(Bytecode::Interpreter& interpreter) const
|
|
|
{
|
|
|
auto const& name = interpreter.current_executable().get_identifier(m_identifier);
|
|
@@ -2231,6 +2242,11 @@ ByteString Catch::to_byte_string_impl(Bytecode::Executable const& executable) co
|
|
|
format_operand("dst"sv, m_dst, executable));
|
|
|
}
|
|
|
|
|
|
+ByteString RestoreScheduledJump::to_byte_string_impl(Bytecode::Executable const&) const
|
|
|
+{
|
|
|
+ return ByteString::formatted("RestoreScheduledJump");
|
|
|
+}
|
|
|
+
|
|
|
ByteString GetObjectFromIteratorRecord::to_byte_string_impl(Bytecode::Executable const& executable) const
|
|
|
{
|
|
|
return ByteString::formatted("GetObjectFromIteratorRecord {}, {}",
|