From bd5b90fbf143756f5de8ba5eb560cb6449177300 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Tue, 17 Jan 2023 23:41:01 -0800 Subject: Fix lifetime issue in require.resolve --- src/bun.js/bindings/ZigGlobalObject.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (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 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::Initializer& init) { + init.set(Zig::ImportMetaObject::createResolveFunctionStructure(init.vm, jsCast(init.owner))); + }); + + m_resolveFunctionPrototype.initLater( + [](const JSC::LazyProperty::Initializer& init) { + init.set(Zig::ImportMetaObject::createResolveFunctionPrototype(init.vm, jsCast(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); } -- cgit v1.2.3