Przeglądaj źródła

LibJS/Bytecode: Remove the PushDeclarativeEnvironment instruction

Simon Wanner 1 rok temu
rodzic
commit
dd466ec83a

+ 0 - 1
Userland/Libraries/LibJS/Bytecode/Instruction.h

@@ -89,7 +89,6 @@
     O(NewString)                       \
     O(NewTypeError)                    \
     O(Not)                             \
-    O(PushDeclarativeEnvironment)      \
     O(PutById)                         \
     O(PutByIdWithThis)                 \
     O(PutByValue)                      \

+ 0 - 23
Userland/Libraries/LibJS/Bytecode/Interpreter.cpp

@@ -1038,14 +1038,6 @@ ThrowCompletionOr<void> ContinuePendingUnwind::execute_impl(Bytecode::Interprete
     __builtin_unreachable();
 }
 
-ThrowCompletionOr<void> PushDeclarativeEnvironment::execute_impl(Bytecode::Interpreter& interpreter) const
-{
-    auto environment = interpreter.vm().heap().allocate_without_realm<DeclarativeEnvironment>(interpreter.vm().lexical_environment());
-    interpreter.vm().running_execution_context().lexical_environment = environment;
-    interpreter.vm().running_execution_context().variable_environment = environment;
-    return {};
-}
-
 ThrowCompletionOr<void> Yield::execute_impl(Bytecode::Interpreter& interpreter) const
 {
     auto yielded_value = interpreter.accumulator().value_or(js_undefined());
@@ -1592,21 +1584,6 @@ DeprecatedString ContinuePendingUnwind::to_deprecated_string_impl(Bytecode::Exec
     return DeprecatedString::formatted("ContinuePendingUnwind resume:{}", m_resume_target);
 }
 
-DeprecatedString PushDeclarativeEnvironment::to_deprecated_string_impl(Bytecode::Executable const& executable) const
-{
-    StringBuilder builder;
-    builder.append("PushDeclarativeEnvironment"sv);
-    if (!m_variables.is_empty()) {
-        builder.append(" {"sv);
-        Vector<DeprecatedString> names;
-        for (auto& it : m_variables)
-            names.append(executable.get_string(it.key));
-        builder.append('}');
-        builder.join(", "sv, names);
-    }
-    return builder.to_deprecated_string();
-}
-
 DeprecatedString Yield::to_deprecated_string_impl(Bytecode::Executable const&) const
 {
     if (m_continuation_label.has_value())

+ 0 - 15
Userland/Libraries/LibJS/Bytecode/Op.h

@@ -1319,21 +1319,6 @@ private:
     Label m_continuation_label;
 };
 
-class PushDeclarativeEnvironment final : public Instruction {
-public:
-    explicit PushDeclarativeEnvironment(HashMap<u32, Variable> variables)
-        : Instruction(Type::PushDeclarativeEnvironment, sizeof(*this))
-        , m_variables(move(variables))
-    {
-    }
-
-    ThrowCompletionOr<void> execute_impl(Bytecode::Interpreter&) const;
-    DeprecatedString to_deprecated_string_impl(Bytecode::Executable const&) const;
-
-private:
-    HashMap<u32, Variable> m_variables;
-};
-
 class GetIterator final : public Instruction {
 public:
     GetIterator(IteratorHint hint = IteratorHint::Sync)