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-01-17 23:41:01 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-17 23:41:17 -0800
commitbd5b90fbf143756f5de8ba5eb560cb6449177300 (patch)
tree59bcbf7c2cbe91dba887ea1b788410d90ba1e07a /src/bun.js/bindings/ZigGlobalObject.cpp
parentbba4054da3a5cbc2f234b9cf4b3ebdb7bb19e69d (diff)
downloadbun-bd5b90fbf143756f5de8ba5eb560cb6449177300.tar.gz
bun-bd5b90fbf143756f5de8ba5eb560cb6449177300.tar.zst
bun-bd5b90fbf143756f5de8ba5eb560cb6449177300.zip
Fix lifetime issue in require.resolve
Diffstat (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp')
-rw-r--r--src/bun.js/bindings/ZigGlobalObject.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp
index 10f76c15b..0d88ceac6 100644
--- a/src/bun.js/bindings/ZigGlobalObject.cpp
+++ b/src/bun.js/bindings/ZigGlobalObject.cpp
@@ -2582,6 +2582,16 @@ void GlobalObject::finishCreation(VM& vm)
init.set(structure);
});
+ m_requireResolveFunctionStructure.initLater(
+ [](const JSC::LazyProperty<JSC::JSGlobalObject, JSC::Structure>::Initializer& init) {
+ init.set(Zig::ImportMetaObject::createResolveFunctionStructure(init.vm, jsCast<Zig::GlobalObject*>(init.owner)));
+ });
+
+ m_resolveFunctionPrototype.initLater(
+ [](const JSC::LazyProperty<JSC::JSGlobalObject, JSC::JSObject>::Initializer& init) {
+ init.set(Zig::ImportMetaObject::createResolveFunctionPrototype(init.vm, jsCast<Zig::GlobalObject*>(init.owner)).getObject());
+ });
+
m_JSFileSinkClassStructure.initLater(
[](LazyClassStructure::Initializer& init) {
auto* prototype = createJSSinkPrototype(init.vm, init.global, WebCore::SinkID::FileSink);
@@ -3463,6 +3473,9 @@ void GlobalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor)
thisObject->m_emitReadableNextTickFunction.visit(visitor);
thisObject->m_JSBufferSubclassStructure.visit(visitor);
+ thisObject->m_requireResolveFunctionStructure.visit(visitor);
+ thisObject->m_resolveFunctionPrototype.visit(visitor);
+
for (auto& barrier : thisObject->m_thenables) {
visitor.append(barrier);
}