From 76f89bf50de2a70bb4410831edd1bbfcfea15a8f Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Mon, 9 Jan 2023 23:36:41 +0000 Subject: [PATCH] LibJS: Use intrinsic namespace objects in set_default_global_bindings() We were accidentally allocating a new instance for each of the namespace objects. Use the existing ones from the realm's intrinsics instead. --- Userland/Libraries/LibJS/Runtime/GlobalObject.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Userland/Libraries/LibJS/Runtime/GlobalObject.cpp b/Userland/Libraries/LibJS/Runtime/GlobalObject.cpp index 7115826205..6016118c40 100644 --- a/Userland/Libraries/LibJS/Runtime/GlobalObject.cpp +++ b/Userland/Libraries/LibJS/Runtime/GlobalObject.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2020, Andreas Kling - * Copyright (c) 2020-2022, Linus Groh + * Copyright (c) 2020-2023, Linus Groh * * SPDX-License-Identifier: BSD-2-Clause */ @@ -167,12 +167,12 @@ Object& set_default_global_bindings(Realm& realm) global.define_intrinsic_accessor(vm.names.WeakSet, attr, [](auto& realm) -> Value { return realm.intrinsics().weak_set_constructor(); }); // 19.4 Other Properties of the Global Object, https://tc39.es/ecma262/#sec-other-properties-of-the-global-object - global.define_direct_property(vm.names.Atomics, vm.heap().allocate(realm, realm), attr); - global.define_direct_property(vm.names.Intl, vm.heap().allocate(realm, realm), attr); - global.define_direct_property(vm.names.JSON, vm.heap().allocate(realm, realm), attr); - global.define_direct_property(vm.names.Math, vm.heap().allocate(realm, realm), attr); - global.define_direct_property(vm.names.Reflect, vm.heap().allocate(realm, realm), attr); - global.define_direct_property(vm.names.Temporal, vm.heap().allocate(realm, realm), attr); + global.define_intrinsic_accessor(vm.names.Atomics, attr, [](auto& realm) -> Value { return realm.intrinsics().atomics_object(); }); + global.define_intrinsic_accessor(vm.names.Intl, attr, [](auto& realm) -> Value { return realm.intrinsics().intl_object(); }); + global.define_intrinsic_accessor(vm.names.JSON, attr, [](auto& realm) -> Value { return realm.intrinsics().json_object(); }); + global.define_intrinsic_accessor(vm.names.Math, attr, [](auto& realm) -> Value { return realm.intrinsics().math_object(); }); + global.define_intrinsic_accessor(vm.names.Reflect, attr, [](auto& realm) -> Value { return realm.intrinsics().reflect_object(); }); + global.define_intrinsic_accessor(vm.names.Temporal, attr, [](auto& realm) -> Value { return realm.intrinsics().temporal_object(); }); // B.2.1 Additional Properties of the Global Object, https://tc39.es/ecma262/#sec-additional-properties-of-the-global-object global.define_direct_property(vm.names.escape, realm.intrinsics().escape_function(), attr);