diff options
author | 2022-10-17 22:44:42 -0700 | |
---|---|---|
committer | 2022-10-17 22:44:42 -0700 | |
commit | 61a8490c66fdce512ed020b3b5167770e87f9f30 (patch) | |
tree | 18540f6326235a80589d9365065e0cddcb2d339e /src | |
parent | abd6e496aba35a78c1fd88cb8a04990ec9f810c8 (diff) | |
download | bun-61a8490c66fdce512ed020b3b5167770e87f9f30.tar.gz bun-61a8490c66fdce512ed020b3b5167770e87f9f30.tar.zst bun-61a8490c66fdce512ed020b3b5167770e87f9f30.zip |
Fix empty process.argv
Diffstat (limited to 'src')
-rw-r--r-- | src/bun.js/node/types.zig | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index 27a9cee3c..693e4e19e 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -1826,12 +1826,10 @@ pub const Path = struct { pub const Process = struct { pub fn getArgv(globalObject: *JSC.JSGlobalObject) callconv(.C) JSC.JSValue { var vm = globalObject.bunVM(); - if (vm.argv.len == 0) - return JSC.JSValue.createStringArray(globalObject, null, 0, false); // Allocate up to 32 strings in stack var stack_fallback_allocator = std.heap.stackFallback( - 32 * @sizeOf(JSC.ZigString), + 32 * @sizeOf(JSC.ZigString) + (bun.MAX_PATH_BYTES + 1) + 32, heap_allocator, ); var allocator = stack_fallback_allocator.get(); @@ -1843,19 +1841,14 @@ pub const Process = struct { vm.argv.len + 2, ) catch unreachable; var args_list = std.ArrayListUnmanaged(JSC.ZigString){ .items = args, .capacity = args.len }; - args_list.items.len = 0; // get the bun executable // without paying the cost of a syscall to resolve the full path - if (std.process.args().next()) |arg0| { - std.debug.assert(arg0.len > 0); - - args_list.appendAssumeCapacity( - JSC.ZigString.init( - bun.span(arg0), - ).withEncoding(), - ); - } + args_list.appendAssumeCapacity( + JSC.ZigString.init( + std.fs.selfExePathAlloc(allocator) catch "bun", + ).withEncoding(), + ); if (vm.main.len > 0) args_list.appendAssumeCapacity(JSC.ZigString.init(vm.main).withEncoding()); |