diff options
author | 2023-07-18 04:34:27 -0700 | |
---|---|---|
committer | 2023-07-18 04:35:04 -0700 | |
commit | 777ee4ececebe912a08c1ffe69546aacb6a497c7 (patch) | |
tree | 53a15abae027e3bf5cfdedc70744ce543d7f21f6 /src/bun.js/bindings/ZigGlobalObject.cpp | |
parent | 661355546a4658ea927bfd70698577c1db301243 (diff) | |
download | bun-777ee4ececebe912a08c1ffe69546aacb6a497c7.tar.gz bun-777ee4ececebe912a08c1ffe69546aacb6a497c7.tar.zst bun-777ee4ececebe912a08c1ffe69546aacb6a497c7.zip |
Fixes #3669
Diffstat (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp')
-rw-r--r-- | src/bun.js/bindings/ZigGlobalObject.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index a5c96ee08..a8d14e533 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -719,6 +719,7 @@ GlobalObject::GlobalObject(JSC::VM& vm, JSC::Structure* structure, WebCore::Scri mockModule = Bun::JSMockModule::create(this); m_scriptExecutionContext = context; context->setGlobalObject(this); + context->addToContextsMap(); } GlobalObject::~GlobalObject() @@ -4472,7 +4473,7 @@ void GlobalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) thisObject->visitGeneratedLazyClasses<Visitor>(thisObject, visitor); visitor.append(thisObject->m_BunCommonJSModuleValue); - + thisObject->visitAdditionalChildren<Visitor>(visitor); ScriptExecutionContext* context = thisObject->scriptExecutionContext(); visitor.addOpaqueRoot(context); } @@ -4540,6 +4541,29 @@ void GlobalObject::handleRejectedPromises() DEFINE_VISIT_CHILDREN(GlobalObject); +template<typename Visitor> +void GlobalObject::visitAdditionalChildren(Visitor& visitor) +{ + GlobalObject* thisObject = this; + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + + thisObject->globalEventScope->visitJSEventListeners(visitor); +} + +DEFINE_VISIT_ADDITIONAL_CHILDREN(GlobalObject); + +template<typename Visitor> +void GlobalObject::visitOutputConstraints(JSCell* cell, Visitor& visitor) +{ + auto* thisObject = jsCast<GlobalObject*>(cell); + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + Base::visitOutputConstraints(thisObject, visitor); + thisObject->visitAdditionalChildren(visitor); +} + +template void GlobalObject::visitOutputConstraints(JSCell*, AbstractSlotVisitor&); +template void GlobalObject::visitOutputConstraints(JSCell*, SlotVisitor&); + // void GlobalObject::destroy(JSCell* cell) // { // static_cast<Zig::GlobalObject*>(cell)->Zig::GlobalObject::~Zig::GlobalObject(); |