From 777ee4ececebe912a08c1ffe69546aacb6a497c7 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Tue, 18 Jul 2023 04:34:27 -0700 Subject: Fixes #3669 --- src/bun.js/bindings/ZigGlobalObject.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp') 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(thisObject, visitor); visitor.append(thisObject->m_BunCommonJSModuleValue); - + thisObject->visitAdditionalChildren(visitor); ScriptExecutionContext* context = thisObject->scriptExecutionContext(); visitor.addOpaqueRoot(context); } @@ -4540,6 +4541,29 @@ void GlobalObject::handleRejectedPromises() DEFINE_VISIT_CHILDREN(GlobalObject); +template +void GlobalObject::visitAdditionalChildren(Visitor& visitor) +{ + GlobalObject* thisObject = this; + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + + thisObject->globalEventScope->visitJSEventListeners(visitor); +} + +DEFINE_VISIT_ADDITIONAL_CHILDREN(GlobalObject); + +template +void GlobalObject::visitOutputConstraints(JSCell* cell, Visitor& visitor) +{ + auto* thisObject = jsCast(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(cell)->Zig::GlobalObject::~Zig::GlobalObject(); -- cgit v1.2.3