aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js')
-rw-r--r--src/bun.js/module_loader.zig3
-rw-r--r--src/bun.js/modules/BunObjectModule.cpp24
-rw-r--r--src/bun.js/modules/BunObjectModule.h8
-rw-r--r--src/bun.js/modules/_NativeModule.h1
4 files changed, 36 insertions, 0 deletions
diff --git a/src/bun.js/module_loader.zig b/src/bun.js/module_loader.zig
index 765cf70a6..9e2af7e9f 100644
--- a/src/bun.js/module_loader.zig
+++ b/src/bun.js/module_loader.zig
@@ -2038,6 +2038,7 @@ pub const ModuleLoader = struct {
},
// Native modules
+ .bun => return jsSyntheticModule(.bun, specifier),
.@"node:buffer" => return jsSyntheticModule(.@"node:buffer", specifier),
.@"node:string_decoder" => return jsSyntheticModule(.@"node:string_decoder", specifier),
.@"node:module" => return jsSyntheticModule(.@"node:module", specifier),
@@ -2217,6 +2218,7 @@ pub const FetchFlags = enum {
const SavedSourceMap = JSC.SavedSourceMap;
pub const HardcodedModule = enum {
+ bun,
@"bun:ffi",
@"bun:jsc",
@"bun:main",
@@ -2290,6 +2292,7 @@ pub const HardcodedModule = enum {
HardcodedModule,
.{
.{ "buffer", HardcodedModule.@"node:buffer" },
+ .{ "bun", HardcodedModule.bun },
.{ "bun:ffi", HardcodedModule.@"bun:ffi" },
.{ "bun:jsc", HardcodedModule.@"bun:jsc" },
.{ "bun:main", HardcodedModule.@"bun:main" },
diff --git a/src/bun.js/modules/BunObjectModule.cpp b/src/bun.js/modules/BunObjectModule.cpp
new file mode 100644
index 000000000..55f694fa1
--- /dev/null
+++ b/src/bun.js/modules/BunObjectModule.cpp
@@ -0,0 +1,24 @@
+#include "root.h"
+
+#include "ZigGlobalObject.h"
+
+#include "ObjectModule.h"
+
+namespace Zig {
+void generateNativeModule_BunObject(JSC::JSGlobalObject *lexicalGlobalObject,
+ JSC::Identifier moduleKey,
+ Vector<JSC::Identifier, 4> &exportNames,
+ JSC::MarkedArgumentBuffer &exportValues) {
+ JSC::VM &vm = lexicalGlobalObject->vm();
+ Zig::GlobalObject *globalObject =
+ reinterpret_cast<Zig::GlobalObject *>(lexicalGlobalObject);
+
+ JSObject *object =
+ globalObject->get(globalObject, Identifier::fromString(vm, "Bun"_s))
+ .getObject();
+
+ exportNames.append(vm.propertyNames->defaultKeyword);
+ exportValues.append(object);
+}
+
+} // namespace Zig \ No newline at end of file
diff --git a/src/bun.js/modules/BunObjectModule.h b/src/bun.js/modules/BunObjectModule.h
new file mode 100644
index 000000000..3d7ba1534
--- /dev/null
+++ b/src/bun.js/modules/BunObjectModule.h
@@ -0,0 +1,8 @@
+
+namespace Zig {
+void generateNativeModule_BunObject(JSC::JSGlobalObject *lexicalGlobalObject,
+ JSC::Identifier moduleKey,
+ Vector<JSC::Identifier, 4> &exportNames,
+ JSC::MarkedArgumentBuffer &exportValues);
+
+} // namespace Zig \ No newline at end of file
diff --git a/src/bun.js/modules/_NativeModule.h b/src/bun.js/modules/_NativeModule.h
index 96eb9ad9d..485987e1c 100644
--- a/src/bun.js/modules/_NativeModule.h
+++ b/src/bun.js/modules/_NativeModule.h
@@ -24,6 +24,7 @@
// given is the default export
#define BUN_FOREACH_NATIVE_MODULE(macro) \
+ macro("bun"_s, BunObject) \
macro("bun:jsc"_s, BunJSC) \
macro("node:buffer"_s, NodeBuffer) \
macro("node:constants"_s, NodeConstants) \