summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibJS/Contrib
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2022-08-16 00:20:49 +0100
committerLinus Groh <mail@linusgroh.de>2022-08-23 13:58:30 +0100
commitecd163bdf1cbf8c9bca9e209a385a41ff5ca4f81 (patch)
tree3124e71500f8685c6bceff4c56b309f8f89ca58d /Userland/Libraries/LibJS/Contrib
parent4c300cc5e864098f37239acec3c603a8c9079307 (diff)
downloadserenity-ecd163bdf1cbf8c9bca9e209a385a41ff5ca4f81.zip
LibJS+LibWeb: Replace GlobalObject with Realm in object constructors
No functional changes - we can still very easily get to the global object via `Realm::global_object()`. This is in preparation of moving the intrinsics to the realm and no longer having to pass a global object when allocating any object. In a few (now, and many more in subsequent commits) places we get a realm using `GlobalObject::associated_realm()`, this is intended to be temporary. For example, create() functions will later receive the same treatment and are passed a realm instead of a global object.
Diffstat (limited to 'Userland/Libraries/LibJS/Contrib')
-rw-r--r--Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp9
-rw-r--r--Userland/Libraries/LibJS/Contrib/Test262/$262Object.h2
-rw-r--r--Userland/Libraries/LibJS/Contrib/Test262/AgentObject.cpp4
-rw-r--r--Userland/Libraries/LibJS/Contrib/Test262/AgentObject.h2
-rw-r--r--Userland/Libraries/LibJS/Contrib/Test262/GlobalObject.cpp3
-rw-r--r--Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.cpp4
-rw-r--r--Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.h2
7 files changed, 14 insertions, 12 deletions
diff --git a/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp b/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp
index 23b2e206a3..ef3fdc30e0 100644
--- a/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp
+++ b/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp
@@ -18,8 +18,8 @@
namespace JS::Test262 {
-$262Object::$262Object(JS::GlobalObject& global_object)
- : Object(Object::ConstructWithoutPrototypeTag::Tag, global_object)
+$262Object::$262Object(Realm& realm)
+ : Object(Object::ConstructWithoutPrototypeTag::Tag, realm)
{
}
@@ -27,8 +27,9 @@ void $262Object::initialize(JS::GlobalObject& global_object)
{
Base::initialize(global_object);
- m_agent = vm().heap().allocate<AgentObject>(global_object, global_object);
- m_is_htmldda = vm().heap().allocate<IsHTMLDDA>(global_object, global_object);
+ auto& realm = *global_object.associated_realm();
+ m_agent = vm().heap().allocate<AgentObject>(global_object, realm);
+ m_is_htmldda = vm().heap().allocate<IsHTMLDDA>(global_object, realm);
u8 attr = Attribute::Writable | Attribute::Configurable;
define_native_function("clearKeptObjects", clear_kept_objects, 0, attr);
diff --git a/Userland/Libraries/LibJS/Contrib/Test262/$262Object.h b/Userland/Libraries/LibJS/Contrib/Test262/$262Object.h
index 08caddd6bb..79445dee1c 100644
--- a/Userland/Libraries/LibJS/Contrib/Test262/$262Object.h
+++ b/Userland/Libraries/LibJS/Contrib/Test262/$262Object.h
@@ -17,7 +17,7 @@ class $262Object final : public Object {
JS_OBJECT($262Object, Object);
public:
- $262Object(JS::GlobalObject&);
+ explicit $262Object(Realm&);
virtual void initialize(JS::GlobalObject&) override;
virtual ~$262Object() override = default;
diff --git a/Userland/Libraries/LibJS/Contrib/Test262/AgentObject.cpp b/Userland/Libraries/LibJS/Contrib/Test262/AgentObject.cpp
index c801485b5b..fbc8ef4b14 100644
--- a/Userland/Libraries/LibJS/Contrib/Test262/AgentObject.cpp
+++ b/Userland/Libraries/LibJS/Contrib/Test262/AgentObject.cpp
@@ -12,8 +12,8 @@
namespace JS::Test262 {
-AgentObject::AgentObject(JS::GlobalObject& global_object)
- : Object(Object::ConstructWithoutPrototypeTag::Tag, global_object)
+AgentObject::AgentObject(Realm& realm)
+ : Object(Object::ConstructWithoutPrototypeTag::Tag, realm)
{
}
diff --git a/Userland/Libraries/LibJS/Contrib/Test262/AgentObject.h b/Userland/Libraries/LibJS/Contrib/Test262/AgentObject.h
index 2a961305d8..eeed225a89 100644
--- a/Userland/Libraries/LibJS/Contrib/Test262/AgentObject.h
+++ b/Userland/Libraries/LibJS/Contrib/Test262/AgentObject.h
@@ -15,7 +15,7 @@ class AgentObject final : public Object {
JS_OBJECT(AgentObject, Object);
public:
- AgentObject(JS::GlobalObject&);
+ explicit AgentObject(Realm&);
virtual void initialize(JS::GlobalObject&) override;
virtual ~AgentObject() override = default;
diff --git a/Userland/Libraries/LibJS/Contrib/Test262/GlobalObject.cpp b/Userland/Libraries/LibJS/Contrib/Test262/GlobalObject.cpp
index 1a7bf5e212..fe6d29f7d4 100644
--- a/Userland/Libraries/LibJS/Contrib/Test262/GlobalObject.cpp
+++ b/Userland/Libraries/LibJS/Contrib/Test262/GlobalObject.cpp
@@ -18,7 +18,8 @@ void GlobalObject::initialize_global_object()
{
Base::initialize_global_object();
- m_$262 = vm().heap().allocate<$262Object>(*this, *this);
+ auto& realm = *associated_realm();
+ m_$262 = vm().heap().allocate<$262Object>(*this, realm);
// https://github.com/tc39/test262/blob/master/INTERPRETING.md#host-defined-functions
u8 attr = Attribute::Writable | Attribute::Configurable;
diff --git a/Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.cpp b/Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.cpp
index 8c60c99b2b..68b6a37398 100644
--- a/Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.cpp
+++ b/Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.cpp
@@ -9,9 +9,9 @@
namespace JS::Test262 {
-IsHTMLDDA::IsHTMLDDA(JS::GlobalObject& global_object)
+IsHTMLDDA::IsHTMLDDA(Realm& realm)
// NativeFunction without prototype is currently not possible (only due to the lack of a ctor that supports it)
- : NativeFunction("IsHTMLDDA", *global_object.function_prototype())
+ : NativeFunction("IsHTMLDDA", *realm.global_object().function_prototype())
{
}
diff --git a/Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.h b/Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.h
index a08d09a2b8..f34322e4ea 100644
--- a/Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.h
+++ b/Userland/Libraries/LibJS/Contrib/Test262/IsHTMLDDA.h
@@ -14,7 +14,7 @@ class IsHTMLDDA final : public NativeFunction {
JS_OBJECT(IsHTMLDDA, NativeFunction);
public:
- explicit IsHTMLDDA(JS::GlobalObject&);
+ explicit IsHTMLDDA(Realm&);
virtual ~IsHTMLDDA() override = default;
virtual ThrowCompletionOr<Value> call() override;