diff options
author | 2023-01-17 23:41:01 -0800 | |
---|---|---|
committer | 2023-01-17 23:41:17 -0800 | |
commit | bd5b90fbf143756f5de8ba5eb560cb6449177300 (patch) | |
tree | 59bcbf7c2cbe91dba887ea1b788410d90ba1e07a /src/bun.js/bindings/ZigGlobalObject.cpp | |
parent | bba4054da3a5cbc2f234b9cf4b3ebdb7bb19e69d (diff) | |
download | bun-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.cpp | 13 |
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); } |