aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/modules/NodeModuleModule.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-06-26 20:37:09 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-06-26 20:39:15 -0700
commitc96f3b303b07312d320f3f07299aac0f93d4640f (patch)
tree83a3f0597fec2430bbdbee126dae8fda0ac79640 /src/bun.js/modules/NodeModuleModule.cpp
parentecb0bd39b6f7a0a69f0b92ddedc0af5d0e88e945 (diff)
downloadbun-c96f3b303b07312d320f3f07299aac0f93d4640f.tar.gz
bun-c96f3b303b07312d320f3f07299aac0f93d4640f.tar.zst
bun-c96f3b303b07312d320f3f07299aac0f93d4640f.zip
Fix default export of `"module"` modulebun-v0.6.10
Diffstat (limited to 'src/bun.js/modules/NodeModuleModule.cpp')
-rw-r--r--src/bun.js/modules/NodeModuleModule.cpp102
1 files changed, 56 insertions, 46 deletions
diff --git a/src/bun.js/modules/NodeModuleModule.cpp b/src/bun.js/modules/NodeModuleModule.cpp
index 88e08a3ac..10853ae32 100644
--- a/src/bun.js/modules/NodeModuleModule.cpp
+++ b/src/bun.js/modules/NodeModuleModule.cpp
@@ -103,49 +103,53 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject,
JSC::MarkedArgumentBuffer &exportValues) {
JSC::VM &vm = globalObject->vm();
- exportValues.append(JSFunction::create(
- vm, globalObject, 1, String("createRequire"_s),
- jsFunctionNodeModuleCreateRequire, ImplementationVisibility::Public));
- exportValues.append(JSFunction::create(vm, globalObject, 1, String("paths"_s),
- Resolver__nodeModulePathsForJS,
- ImplementationVisibility::Public));
- exportValues.append(JSFunction::create(
- vm, globalObject, 1, String("findSourceMap"_s), jsFunctionFindSourceMap,
- ImplementationVisibility::Public));
- exportValues.append(JSFunction::create(
- vm, globalObject, 0, String("syncBuiltinExports"_s),
- jsFunctionSyncBuiltinExports, ImplementationVisibility::Public));
- exportValues.append(
- JSFunction::create(vm, globalObject, 1, String("SourceMap"_s),
- jsFunctionSourceMap, ImplementationVisibility::Public,
- NoIntrinsic, jsFunctionSourceMap, nullptr));
-
- exportNames.append(JSC::Identifier::fromString(vm, "createRequire"_s));
- exportNames.append(JSC::Identifier::fromString(vm, "paths"_s));
- exportNames.append(JSC::Identifier::fromString(vm, "findSourceMap"_s));
- exportNames.append(JSC::Identifier::fromString(vm, "syncBuiltinExports"_s));
- exportNames.append(JSC::Identifier::fromString(vm, "SourceMap"_s));
-
- // note: this is not technically correct
- // it doesn't set process.mainModule
- exportNames.append(JSC::Identifier::fromString(vm, "_resolveFileName"_s));
- exportValues.append(JSFunction::create(
- vm, globalObject, 3, String("_resolveFileName"_s),
- jsFunctionResolveFileName, ImplementationVisibility::Public));
-
- exportNames.append(JSC::Identifier::fromString(vm, "_nodeModulePaths"_s));
- exportValues.append(JSFunction::create(
- vm, globalObject, 0, String("_nodeModulePaths"_s),
- Resolver__nodeModulePathsForJS, ImplementationVisibility::Public));
-
- exportNames.append(JSC::Identifier::fromString(vm, "_cache"_s));
- exportValues.append(
- jsCast<Zig::GlobalObject *>(globalObject)->lazyRequireCacheObject());
-
- exportNames.append(JSC::Identifier::fromString(vm, "prototype"_s));
- exportValues.append(constructEmptyObject(globalObject));
-
- exportNames.append(JSC::Identifier::fromString(vm, "builtinModules"_s));
+ JSObject *defaultObject = JSC::constructEmptyObject(
+ vm, globalObject->nullPrototypeObjectStructure());
+ auto append = [&](Identifier name, JSValue value) {
+ defaultObject->putDirect(vm, name, value);
+ exportNames.append(name);
+ exportValues.append(value);
+ };
+
+ append(Identifier::fromString(vm, "createRequire"_s),
+ JSFunction::create(vm, globalObject, 1, String("createRequire"_s),
+ jsFunctionNodeModuleCreateRequire,
+ ImplementationVisibility::Public));
+
+ append(Identifier::fromString(vm, "paths"_s),
+ JSFunction::create(vm, globalObject, 1, String("paths"_s),
+ Resolver__nodeModulePathsForJS,
+ ImplementationVisibility::Public));
+
+ append(Identifier::fromString(vm, "findSourceMap"_s),
+ JSFunction::create(vm, globalObject, 1, String("findSourceMap"_s),
+ jsFunctionFindSourceMap,
+ ImplementationVisibility::Public));
+ append(Identifier::fromString(vm, "syncBuiltinExports"_s),
+ JSFunction::create(vm, globalObject, 0, String("syncBuiltinExports"_s),
+ jsFunctionSyncBuiltinExports,
+ ImplementationVisibility::Public));
+ append(Identifier::fromString(vm, "SourceMap"_s),
+ JSFunction::create(vm, globalObject, 1, String("SourceMap"_s),
+ jsFunctionSourceMap,
+ ImplementationVisibility::Public, NoIntrinsic,
+ jsFunctionSourceMap, nullptr));
+
+ append(JSC::Identifier::fromString(vm, "_resolveFileName"_s),
+ JSFunction::create(vm, globalObject, 3, String("_resolveFileName"_s),
+ jsFunctionResolveFileName,
+ ImplementationVisibility::Public));
+
+ append(JSC::Identifier::fromString(vm, "_nodeModulePaths"_s),
+ JSFunction::create(vm, globalObject, 0, String("_nodeModulePaths"_s),
+ Resolver__nodeModulePathsForJS,
+ ImplementationVisibility::Public));
+
+ append(JSC::Identifier::fromString(vm, "_cache"_s),
+ jsCast<Zig::GlobalObject *>(globalObject)->lazyRequireCacheObject());
+
+ append(JSC::Identifier::fromString(vm, "globalPaths"_s),
+ JSC::constructEmptyArray(globalObject, nullptr, 0));
JSC::JSArray *builtinModules = JSC::JSArray::create(
vm,
@@ -166,9 +170,15 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject,
JSC::jsString(vm, String("bun:ffi"_s)));
builtinModules->putDirectIndex(globalObject, 6,
JSC::jsString(vm, String("bun:sqlite"_s)));
- exportValues.append(builtinModules);
- exportNames.append(JSC::Identifier::fromString(vm, "globalPaths"_s));
- exportValues.append(JSC::constructEmptyArray(globalObject, 0));
+ append(JSC::Identifier::fromString(vm, "builtinModules"_s), builtinModules);
+
+ defaultObject->putDirect(vm,
+ JSC::PropertyName(Identifier::fromUid(
+ vm.symbolRegistry().symbolForKey("CommonJS"_s))),
+ jsNumber(0), 0);
+
+ exportNames.append(vm.propertyNames->defaultKeyword);
+ exportValues.append(defaultObject);
}
} // namespace Zig