diff --git a/Userland/Libraries/LibJS/Interpreter.cpp b/Userland/Libraries/LibJS/Interpreter.cpp index 06cdadabc3..bbf5282323 100644 --- a/Userland/Libraries/LibJS/Interpreter.cpp +++ b/Userland/Libraries/LibJS/Interpreter.cpp @@ -18,11 +18,13 @@ namespace JS { -NonnullOwnPtr Interpreter::create_with_existing_global_object(GlobalObject& global_object) +NonnullOwnPtr Interpreter::create_with_existing_realm(Realm& realm) { + auto& global_object = realm.global_object(); DeferGC defer_gc(global_object.heap()); auto interpreter = adopt_own(*new Interpreter(global_object.vm())); interpreter->m_global_object = make_handle(&global_object); + interpreter->m_realm = make_handle(&realm); return interpreter; } diff --git a/Userland/Libraries/LibJS/Interpreter.h b/Userland/Libraries/LibJS/Interpreter.h index cb75ab14ce..aaea4fc382 100644 --- a/Userland/Libraries/LibJS/Interpreter.h +++ b/Userland/Libraries/LibJS/Interpreter.h @@ -48,7 +48,7 @@ public: return interpreter; } - static NonnullOwnPtr create_with_existing_global_object(GlobalObject&); + static NonnullOwnPtr create_with_existing_realm(Realm&); ~Interpreter(); diff --git a/Userland/Libraries/LibJS/Runtime/FunctionConstructor.cpp b/Userland/Libraries/LibJS/Runtime/FunctionConstructor.cpp index 39fe9e2637..b916a2e13c 100644 --- a/Userland/Libraries/LibJS/Runtime/FunctionConstructor.cpp +++ b/Userland/Libraries/LibJS/Runtime/FunctionConstructor.cpp @@ -90,7 +90,7 @@ Value FunctionConstructor::construct(FunctionObject& new_target) Interpreter* interpreter = vm().interpreter_if_exists(); if (!interpreter) { - local_interpreter = Interpreter::create_with_existing_global_object(global_object()); + local_interpreter = Interpreter::create_with_existing_realm(*realm()); interpreter = local_interpreter.ptr(); } diff --git a/Userland/Libraries/LibJS/Runtime/OrdinaryFunctionObject.cpp b/Userland/Libraries/LibJS/Runtime/OrdinaryFunctionObject.cpp index ad6ca49c72..b558040532 100644 --- a/Userland/Libraries/LibJS/Runtime/OrdinaryFunctionObject.cpp +++ b/Userland/Libraries/LibJS/Runtime/OrdinaryFunctionObject.cpp @@ -203,7 +203,7 @@ Value OrdinaryFunctionObject::execute_function_body() ast_interpreter = vm.interpreter_if_exists(); if (!ast_interpreter) { - local_interpreter = Interpreter::create_with_existing_global_object(global_object()); + local_interpreter = Interpreter::create_with_existing_realm(*realm()); ast_interpreter = local_interpreter.ptr(); } diff --git a/Userland/Libraries/LibWeb/HTML/Scripting/ClassicScript.cpp b/Userland/Libraries/LibWeb/HTML/Scripting/ClassicScript.cpp index 8f30022367..dcfe0b870b 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/ClassicScript.cpp +++ b/Userland/Libraries/LibWeb/HTML/Scripting/ClassicScript.cpp @@ -53,7 +53,7 @@ JS::Value ClassicScript::run(RethrowErrors rethrow_errors) { (void)rethrow_errors; - auto interpreter = JS::Interpreter::create_with_existing_global_object(m_script_record->realm().global_object()); + auto interpreter = JS::Interpreter::create_with_existing_realm(m_script_record->realm()); interpreter->run(interpreter->global_object(), m_script_record->parse_node()); auto& vm = interpreter->vm(); if (vm.exception())