From b74351e55fcb54451e793879302754de440e3da0 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 28 Sep 2022 14:37:35 -0700 Subject: Support a `default` object in CommonJS wrapper Fixes https://github.com/oven-sh/bun/issues/1284 Related to https://github.com/oven-sh/bun/issues/1285 --- src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp') diff --git a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp index 0afe19141..360168176 100644 --- a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp @@ -168,7 +168,7 @@ const char* const s_importMetaObjectLoadCJS2ESMCode = const JSC::ConstructAbility s_importMetaObjectRequireESMCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_importMetaObjectRequireESMCodeLength = 561; +const int s_importMetaObjectRequireESMCodeLength = 626; static const JSC::Intrinsic s_importMetaObjectRequireESMCodeIntrinsic = JSC::NoIntrinsic; const char* const s_importMetaObjectRequireESMCode = "(function (resolved) {\n" \ @@ -184,9 +184,13 @@ const char* const s_importMetaObjectRequireESMCode = " }\n" \ " var exports = @Loader.getModuleNamespaceObject(entry.module);\n" \ " var commonJS = exports.default;\n" \ - " if (commonJS && @isCallable(commonJS) && @commonJSSymbol in commonJS) {\n" \ + " var cjs = commonJS && commonJS[@commonJSSymbol];\n" \ + " if (cjs === 0) {\n" \ + " return commonJS;\n" \ + " } else if (cjs && @isCallable(commonJS)) {\n" \ " return commonJS();\n" \ " }\n" \ + " \n" \ " return exports;\n" \ "})\n" \ ; -- cgit v1.2.3