From 77a1ef06a489ba66f9d9171a0d18d1262767f70b Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 7 Feb 2022 16:55:35 +0100 Subject: [PATCH] LibJS: Add [[HostDefined]] internal slot to Realm objects In C++, this is an OwnPtr. --- Userland/Libraries/LibJS/Runtime/Realm.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Userland/Libraries/LibJS/Runtime/Realm.h b/Userland/Libraries/LibJS/Runtime/Realm.h index 3c3820433a..1972eee32b 100644 --- a/Userland/Libraries/LibJS/Runtime/Realm.h +++ b/Userland/Libraries/LibJS/Runtime/Realm.h @@ -18,6 +18,10 @@ class Realm final : public Cell , public Weakable { public: + struct HostDefined { + virtual ~HostDefined() = default; + }; + Realm() = default; // 9.3.1 CreateRealm ( ), https://tc39.es/ecma262/#sec-createrealm @@ -31,12 +35,16 @@ public: [[nodiscard]] GlobalObject& global_object() const { return *m_global_object; } [[nodiscard]] GlobalEnvironment& global_environment() const { return *m_global_environment; } + HostDefined* host_defined() { return m_host_defined; } + void set_host_defined(OwnPtr host_defined) { m_host_defined = move(host_defined); } + private: virtual char const* class_name() const override { return "Realm"; } virtual void visit_edges(Visitor&) override; GlobalObject* m_global_object { nullptr }; // [[GlobalObject]] GlobalEnvironment* m_global_environment { nullptr }; // [[GlobalEnv]] + OwnPtr m_host_defined; // [[HostDefined]] }; }