mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:37:35 +00:00
LibJS: Implement the NewClass opcode
This commit is contained in:
parent
8b27917603
commit
d7c207beb9
4 changed files with 23 additions and 4 deletions
|
@ -13,6 +13,7 @@
|
|||
#include <LibJS/Forward.h>
|
||||
#include <LibJS/Heap/Cell.h>
|
||||
#include <LibJS/Heap/Handle.h>
|
||||
#include <LibJS/Runtime/VM.h>
|
||||
#include <LibJS/Runtime/Value.h>
|
||||
|
||||
namespace JS::Bytecode {
|
||||
|
@ -34,7 +35,7 @@ public:
|
|||
ThrowCompletionOr<Value> run(Bytecode::Executable const& executable, Bytecode::BasicBlock const* entry_point = nullptr)
|
||||
{
|
||||
auto value_and_frame = run_and_return_frame(executable, entry_point);
|
||||
return value_and_frame.value;
|
||||
return move(value_and_frame.value);
|
||||
}
|
||||
|
||||
struct ValueAndFrame {
|
||||
|
@ -78,6 +79,8 @@ public:
|
|||
};
|
||||
static Bytecode::PassManager& optimization_pipeline(OptimizationLevel = OptimizationLevel::Default);
|
||||
|
||||
VM::InterpreterExecutionScope ast_interpreter_scope();
|
||||
|
||||
private:
|
||||
RegisterWindow& registers() { return m_register_windows.last(); }
|
||||
|
||||
|
@ -93,6 +96,7 @@ private:
|
|||
Executable const* m_current_executable { nullptr };
|
||||
Vector<UnwindInfo> m_unwind_contexts;
|
||||
Handle<Value> m_saved_exception;
|
||||
OwnPtr<JS::Interpreter> m_ast_interpreter;
|
||||
};
|
||||
|
||||
extern bool g_dump_bytecode;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue