1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 20:57:35 +00:00

LibJS: Let Shape store a Realm instead of a GlobalObject

This is a cautious first step towards being able to create JS objects
before a global object has been instantiated.
This commit is contained in:
Andreas Kling 2022-08-01 20:27:20 +02:00
parent 7a6935a2ff
commit 50d951aea2
22 changed files with 104 additions and 55 deletions

View file

@ -57,7 +57,8 @@ JS_DEFINE_NATIVE_FUNCTION($262Object::clear_kept_objects)
JS_DEFINE_NATIVE_FUNCTION($262Object::create_realm)
{
auto realm = vm.heap().allocate_without_global_object<GlobalObject>();
// FIXME: This doesn't look right.
auto realm = vm.heap().allocate_without_global_object<GlobalObject>(*global_object.associated_realm());
realm->initialize_global_object();
return Value(realm->$262());
}

View file

@ -15,7 +15,10 @@ class GlobalObject final : public JS::GlobalObject {
JS_OBJECT(GlobalObject, JS::GlobalObject);
public:
GlobalObject() = default;
GlobalObject(JS::Realm& realm)
: JS::GlobalObject(realm)
{
}
virtual void initialize_global_object() override;
virtual ~GlobalObject() override = default;