From e2de1f5c133ed3aac6fcea7e8e7c5fcd771d65f9 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Mon, 29 May 2023 11:23:10 -0700 Subject: Natively support CommonJS at runtime (#3104) * Natively support CommonJS at runtime * cleanup how getters are handled, add fast path * more consistent with node * use * As * Remove thrown modules on exception * Handle exception better --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/bindings/ModuleLoader.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/bun.js/bindings/ModuleLoader.cpp') diff --git a/src/bun.js/bindings/ModuleLoader.cpp b/src/bun.js/bindings/ModuleLoader.cpp index 75981f5b3..f4e96130b 100644 --- a/src/bun.js/bindings/ModuleLoader.cpp +++ b/src/bun.js/bindings/ModuleLoader.cpp @@ -35,6 +35,7 @@ #include "../modules/NodeModuleModule.h" #include "../modules/TTYModule.h" #include "node_util_types.h" +#include "CommonJSModuleRecord.h" namespace Bun { using namespace Zig; @@ -475,6 +476,11 @@ static JSValue fetchSourceCode( Bun__transpileFile(bunVM, globalObject, specifier, referrer, res, false); } + if (res->success && res->result.value.commonJSExportsLen) { + auto source = Bun::createCommonJSModule(globalObject, res->result.value); + return rejectOrResolve(JSSourceCode::create(vm, WTFMove(source))); + } + if (!res->success) { throwException(scope, res->result.err, globalObject); auto* exception = scope.exception(); -- cgit v1.2.3