diff --git a/Libraries/LibJS/Runtime/Intrinsics.cpp b/Libraries/LibJS/Runtime/Intrinsics.cpp index f3edc27623f..35a7bb06870 100644 --- a/Libraries/LibJS/Runtime/Intrinsics.cpp +++ b/Libraries/LibJS/Runtime/Intrinsics.cpp @@ -143,7 +143,7 @@ static void initialize_constructor(VM& vm, PropertyKey const& property_key, Obje } // 9.3.2 CreateIntrinsics ( realmRec ), https://tc39.es/ecma262/#sec-createintrinsics -ThrowCompletionOr> Intrinsics::create(Realm& realm) +GC::Ref Intrinsics::create(Realm& realm) { auto& vm = realm.vm(); @@ -165,7 +165,7 @@ ThrowCompletionOr> Intrinsics::create(Realm& realm) // is the specified value of the function's [[Prototype]] internal slot. The // creation of the intrinsics and their properties must be ordered to avoid // any dependencies upon objects that have not yet been created. - MUST_OR_THROW_OOM(intrinsics->initialize_intrinsics(realm)); + intrinsics->initialize_intrinsics(realm); // 3. Perform AddRestrictedFunctionProperties(realmRec.[[Intrinsics]].[[%Function.prototype%]], realmRec). add_restricted_function_properties(static_cast(*realm.intrinsics().function_prototype()), realm); @@ -174,7 +174,7 @@ ThrowCompletionOr> Intrinsics::create(Realm& realm) return *intrinsics; } -ThrowCompletionOr Intrinsics::initialize_intrinsics(Realm& realm) +void Intrinsics::initialize_intrinsics(Realm& realm) { auto& vm = this->vm(); @@ -271,8 +271,6 @@ ThrowCompletionOr Intrinsics::initialize_intrinsics(Realm& realm) m_json_parse_function = &json_object()->get_without_side_effects(vm.names.parse).as_function(); m_json_stringify_function = &json_object()->get_without_side_effects(vm.names.stringify).as_function(); m_object_prototype_to_string_function = &object_prototype()->get_without_side_effects(vm.names.toString).as_function(); - - return {}; } template diff --git a/Libraries/LibJS/Runtime/Intrinsics.h b/Libraries/LibJS/Runtime/Intrinsics.h index aa5c2cd3725..724c0ed97ea 100644 --- a/Libraries/LibJS/Runtime/Intrinsics.h +++ b/Libraries/LibJS/Runtime/Intrinsics.h @@ -18,7 +18,7 @@ class Intrinsics final : public Cell { GC_DECLARE_ALLOCATOR(Intrinsics); public: - static ThrowCompletionOr> create(Realm&); + static GC::Ref create(Realm&); GC::Ref empty_object_shape() { return *m_empty_object_shape; } @@ -107,7 +107,7 @@ private: virtual void visit_edges(Visitor&) override; - ThrowCompletionOr initialize_intrinsics(Realm&); + void initialize_intrinsics(Realm&); #define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName, ArrayType) \ void initialize_##snake_name(); diff --git a/Libraries/LibJS/Runtime/Realm.cpp b/Libraries/LibJS/Runtime/Realm.cpp index 52e32aa2929..283dba344c9 100644 --- a/Libraries/LibJS/Runtime/Realm.cpp +++ b/Libraries/LibJS/Runtime/Realm.cpp @@ -25,7 +25,7 @@ ThrowCompletionOr> Realm::initialize_host_define auto realm = vm.heap().allocate(); // 2. Perform CreateIntrinsics(realm). - MUST(Intrinsics::create(*realm)); + Intrinsics::create(*realm); // FIXME: 3. Set realm.[[AgentSignifier]] to AgentSignifier().