diff options
Diffstat (limited to 'src/bun.js')
-rw-r--r-- | src/bun.js/module_loader.zig | 3 | ||||
-rw-r--r-- | src/bun.js/modules/BunObjectModule.cpp | 24 | ||||
-rw-r--r-- | src/bun.js/modules/BunObjectModule.h | 8 | ||||
-rw-r--r-- | src/bun.js/modules/_NativeModule.h | 1 |
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) \ |