From 29b22175bf6fc726d0b028c7bf5619ab89fca09a Mon Sep 17 00:00:00 2001 From: dave caruso Date: Fri, 15 Sep 2023 11:22:06 -0400 Subject: feat(runtime): add `process.binding` `uv`/`natives`/`config` + make global object properties lazy (#5355) * binding uv * we did that * some more bindings * fix doc * fix uv * yo * static hash table nonsense <3 * huge refactor to the global object i am not ready for merge conflicts * it works part 3 * lose --------- Co-authored-by: Jarred Sumner --- src/bun.js/bindings/CommonJSModuleRecord.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/bun.js/bindings/CommonJSModuleRecord.cpp') diff --git a/src/bun.js/bindings/CommonJSModuleRecord.cpp b/src/bun.js/bindings/CommonJSModuleRecord.cpp index dad8294d9..8fbb780a8 100644 --- a/src/bun.js/bindings/CommonJSModuleRecord.cpp +++ b/src/bun.js/bindings/CommonJSModuleRecord.cpp @@ -118,6 +118,8 @@ static bool evaluateCommonJSModuleOnce(JSC::VM& vm, Zig::GlobalObject* globalObj globalObject->m_BunCommonJSModuleValue.set(vm, globalObject, thisObject); JSValue empty = JSC::evaluate(globalObject, moduleObject->sourceCode.get()->sourceCode(), thisObject, exception); + + globalObject->m_BunCommonJSModuleValue.clear(); moduleObject->sourceCode.clear(); return exception.get() == nullptr; @@ -740,7 +742,7 @@ JSC_DEFINE_HOST_FUNCTION(jsFunctionRequireCommonJS, (JSGlobalObject * lexicalGlo // Special-case for "process" to just return the process object directly. if (UNLIKELY(specifier == "process"_s || specifier == "node:process"_s)) { - jsDynamicCast(callframe->argument(1))->putDirect(vm, builtinNames(vm).exportsPublicName(), globalObject->processObject(), 0); + jsCast(callframe->argument(1))->putDirect(vm, builtinNames(vm).exportsPublicName(), globalObject->processObject(), 0); return JSValue::encode(globalObject->processObject()); } @@ -752,7 +754,7 @@ JSC_DEFINE_HOST_FUNCTION(jsFunctionRequireCommonJS, (JSGlobalObject * lexicalGlo JSValue fetchResult = Bun::fetchCommonJSModule( globalObject, - jsDynamicCast(callframe->argument(1)), + jsCast(callframe->argument(1)), specifierValue, &specifierStr, &referrerStr); -- cgit v1.2.3