aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ZigGlobalObject.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-07-18 04:34:27 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-07-18 04:35:04 -0700
commit777ee4ececebe912a08c1ffe69546aacb6a497c7 (patch)
tree53a15abae027e3bf5cfdedc70744ce543d7f21f6 /src/bun.js/bindings/ZigGlobalObject.cpp
parent661355546a4658ea927bfd70698577c1db301243 (diff)
downloadbun-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.cpp26
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();