aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-19 23:37:26 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-19 23:37:26 -0700
commit37d191bc02dd5255ce0d6675017d5c491327e768 (patch)
tree52d53c7fbb3228e308c25eba2cb166deb1465777 /src
parentda7b648971ef0f3077d4b8230d4cf2fcc1bb7719 (diff)
downloadbun-37d191bc02dd5255ce0d6675017d5c491327e768.tar.gz
bun-37d191bc02dd5255ce0d6675017d5c491327e768.tar.zst
bun-37d191bc02dd5255ce0d6675017d5c491327e768.zip
Update `process.argv` to more closely match node
Diffstat (limited to '')
-rw-r--r--src/bun.js/node/types.zig29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig
index 313dad703..1576568c5 100644
--- a/src/bun.js/node/types.zig
+++ b/src/bun.js/node/types.zig
@@ -1801,22 +1801,25 @@ pub const Process = struct {
);
var allocator = stack_fallback_allocator.get();
- // If it was launched with bun run or bun test, skip it
- const skip: usize = @as(usize, @boolToInt(
- vm.argv.len > 1 and (strings.eqlComptime(vm.argv[0], "run") or strings.eqlComptime(vm.argv[0], "wiptest")),
- ));
-
var args = allocator.alloc(
JSC.ZigString,
- vm.argv.len + 1,
+ // argv omits "bun" because it could be "bun run" or "bun" and it's kind of ambiguous
+ // argv also omits the script name
+ vm.argv.len + 2,
) catch unreachable;
var args_list = std.ArrayListUnmanaged(JSC.ZigString){ .items = args, .capacity = args.len };
args_list.items.len = 0;
+ args_list.appendAssumeCapacity(
+ JSC.ZigString.init(
+ // cheap way to get the first argument
+ bun.span(std.process.args().next().?),
+ ),
+ );
+ args_list.appendAssumeCapacity(JSC.ZigString.init(vm.main).withEncoding());
+
defer allocator.free(args);
{
- var args_iterator = std.process.args();
-
- if (args_iterator.next()) |arg0| {
+ for (vm.argv) |arg0| {
var argv0 = JSC.ZigString.init(std.mem.span(arg0));
argv0.setOutputEncoding();
// https://github.com/yargs/yargs/blob/adb0d11e02c613af3d9427b3028cc192703a3869/lib/utils/process-argv.ts#L1
@@ -1824,14 +1827,6 @@ pub const Process = struct {
}
}
- if (vm.argv.len > skip) {
- for (vm.argv[skip..]) |arg| {
- var str = JSC.ZigString.init(arg);
- str.setOutputEncoding();
- args_list.appendAssumeCapacity(str);
- }
- }
-
return JSC.JSValue.createStringArray(globalObject, args_list.items.ptr, args_list.items.len, true);
}