From e2ae286132ba7b9938201f17c41599dc8aca252c Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 5 Aug 2022 12:21:02 +0200 Subject: [PATCH] LibJS: Actually create a new Realm in $262.createRealm() --- .../Libraries/LibJS/Contrib/Test262/$262Object.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp b/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp index e9a38e2cbc..a07c245a98 100644 --- a/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp +++ b/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp @@ -57,10 +57,14 @@ JS_DEFINE_NATIVE_FUNCTION($262Object::clear_kept_objects) JS_DEFINE_NATIVE_FUNCTION($262Object::create_realm) { - // FIXME: This doesn't look right. - auto realm = vm.heap().allocate_without_global_object(*global_object.associated_realm()); - realm->initialize_global_object(); - return Value(realm->$262()); + auto* realm = Realm::create(vm); + VERIFY(realm); + auto* realm_global_object = vm.heap().allocate_without_global_object(*realm); + VERIFY(realm_global_object); + realm->set_global_object(realm_global_object, js_undefined()); + realm_global_object->set_associated_realm(*realm); + realm_global_object->initialize_global_object(); + return Value(realm_global_object->$262()); } JS_DEFINE_NATIVE_FUNCTION($262Object::detach_array_buffer)