diff --git a/src/bun.js/api/BunObject.zig b/src/bun.js/api/BunObject.zig index 9a18427af1..ff9fad31b2 100644 --- a/src/bun.js/api/BunObject.zig +++ b/src/bun.js/api/BunObject.zig @@ -286,7 +286,7 @@ pub fn braces(global: *jsc.JSGlobalObject, brace_str: bun.String, opts: gen.Brac pub fn which(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { const path_buf = bun.path_buffer_pool.get(); defer bun.path_buffer_pool.put(path_buf); - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const path_arg = arguments.nextEat() orelse { return globalThis.throw("which: expected 1 argument, got 0", .{}); }; diff --git a/src/bun.js/api/glob.zig b/src/bun.js/api/glob.zig index 5d6ef04340..048f9bd388 100644 --- a/src/bun.js/api/glob.zig +++ b/src/bun.js/api/glob.zig @@ -261,7 +261,7 @@ fn makeGlobWalker( pub fn constructor(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!*Glob { const alloc = bun.default_allocator; - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const pat_arg: JSValue = arguments.nextEat() orelse { return globalThis.throw("Glob.constructor: expected 1 arguments, got 0", .{}); }; @@ -304,7 +304,7 @@ fn decrPendingActivityFlag(has_pending_activity: *std.atomic.Value(usize)) void pub fn __scan(this: *Glob, globalThis: *JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { const alloc = bun.default_allocator; - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); var arena = std.heap.ArenaAllocator.init(alloc); const globWalker = try this.makeGlobWalker(globalThis, &arguments, "scan", alloc, &arena) orelse { @@ -325,7 +325,7 @@ pub fn __scan(this: *Glob, globalThis: *JSGlobalObject, callframe: *jsc.CallFram pub fn __scanSync(this: *Glob, globalThis: *JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { const alloc = bun.default_allocator; - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); var arena = std.heap.ArenaAllocator.init(alloc); var globWalker = try this.makeGlobWalker(globalThis, &arguments, "scanSync", alloc, &arena) orelse { @@ -351,7 +351,7 @@ pub fn match(this: *Glob, globalThis: *JSGlobalObject, callframe: *jsc.CallFrame var arena = Arena.init(alloc); defer arena.deinit(); - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const str_arg = arguments.nextEat() orelse { return globalThis.throw("Glob.matchString: expected 1 arguments, got 0", .{}); }; diff --git a/src/bun.js/bindings/CallFrame.zig b/src/bun.js/bindings/CallFrame.zig index be615c3016..388c1e2a95 100644 --- a/src/bun.js/bindings/CallFrame.zig +++ b/src/bun.js/bindings/CallFrame.zig @@ -175,7 +175,7 @@ pub const CallFrame = opaque { return std.mem.span(Bun__CallFrame__describeFrame(self)); } - pub fn iterate(self: *const CallFrame) ArgumentsSlice { + pub fn iterateArguments(self: *const CallFrame) ArgumentsSlice { const args = self.arguments(); return .{ .remaining = args, .all = args }; } @@ -189,14 +189,8 @@ pub const CallFrame = opaque { remaining: []const jsc.JSValue, all: []const jsc.JSValue, - pub fn from(vm: *jsc.VirtualMachine, slice: []const jsc.JSValueRef) ArgumentsSlice { - return init(vm, @as([*]const jsc.JSValue, @ptrCast(slice.ptr))[0..slice.len]); - } - pub fn init(_: *jsc.VirtualMachine, slice: []const jsc.JSValue) ArgumentsSlice { - return ArgumentsSlice{ - .remaining = slice, - .all = slice, - }; + pub fn from(_: *jsc.VirtualMachine, slice: []const jsc.JSValueRef) ArgumentsSlice { + return init2(@as([*]const jsc.JSValue, @ptrCast(slice.ptr))[0..slice.len]); } pub fn init2(slice: []const jsc.JSValue) ArgumentsSlice { return ArgumentsSlice{ diff --git a/src/bun.js/webcore/Response.zig b/src/bun.js/webcore/Response.zig index bd5a81695e..92ad27f556 100644 --- a/src/bun.js/webcore/Response.zig +++ b/src/bun.js/webcore/Response.zig @@ -361,7 +361,7 @@ pub fn constructJSON( callframe: *jsc.CallFrame, ) bun.JSError!JSValue { // https://github.com/remix-run/remix/blob/db2c31f64affb2095e4286b91306b96435967969/packages/remix-server-runtime/responses.ts#L4 - var args = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var args = callframe.iterateArguments(); var response = Response{ .body = Body{ @@ -428,7 +428,7 @@ pub fn constructRedirect( callframe: *jsc.CallFrame, ) bun.JSError!JSValue { // https://github.com/remix-run/remix/blob/db2c31f64affb2095e4286b91306b96435967969/packages/remix-server-runtime/responses.ts#L4 - var args = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var args = callframe.iterateArguments(); var url_string_slice = ZigString.Slice.empty; defer url_string_slice.deinit(); diff --git a/src/css/css_internals.zig b/src/css/css_internals.zig index bae172640c..618413fdd8 100644 --- a/src/css/css_internals.zig +++ b/src/css/css_internals.zig @@ -44,7 +44,7 @@ pub fn testingImpl(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame, c defer arena.deinit(); const alloc = arena.allocator(); - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const source_arg: jsc.JSValue = arguments.nextEat() orelse { return globalThis.throw("minifyTestWithOptions: expected 2 arguments, got 0", .{}); }; @@ -254,7 +254,7 @@ pub fn attrTest(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun. defer arena.deinit(); const alloc = arena.allocator(); - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const source_arg: jsc.JSValue = arguments.nextEat() orelse { return globalThis.throw("attrTest: expected 3 arguments, got 0", .{}); }; diff --git a/src/deps/c_ares.zig b/src/deps/c_ares.zig index 4a1d0e4dfc..629458cae5 100644 --- a/src/deps/c_ares.zig +++ b/src/deps/c_ares.zig @@ -1990,7 +1990,7 @@ pub fn Bun__canonicalizeIP_(globalThis: *jsc.JSGlobalObject, callframe: *jsc.Cal // windows uses 65 bytes for ipv6 addresses and linux/macos uses 46 const INET6_ADDRSTRLEN = if (comptime bun.Environment.isWindows) 65 else 46; - var args = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var args = callframe.iterateArguments(); if (args.all.len == 0) { return globalThis.throwInvalidArguments("canonicalizeIP() expects a string but received no arguments.", .{}); diff --git a/src/patch.zig b/src/patch.zig index 2ff0bc5b22..5b9a47a283 100644 --- a/src/patch.zig +++ b/src/patch.zig @@ -1069,7 +1069,7 @@ const PatchLinesParser = struct { pub const TestingAPIs = struct { pub fn makeDiff(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const old_folder_jsval = arguments.nextEat() orelse { return globalThis.throw("expected 2 strings", .{}); @@ -1131,7 +1131,7 @@ pub const TestingAPIs = struct { } /// Used in JS tests, see `internal-for-testing.ts` and patch tests. pub fn parse(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const patchfile_src_js = arguments.nextEat() orelse { return globalThis.throw("TestingAPIs.parse: expected at least 1 argument, got 0", .{}); @@ -1154,7 +1154,7 @@ pub const TestingAPIs = struct { } pub fn parseApplyArgs(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.jsc.Node.Maybe(ApplyArgs, jsc.JSValue) { - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const patchfile_js = arguments.nextEat() orelse { globalThis.throw("apply: expected at least 1 argument, got 0", .{}) catch {}; diff --git a/src/shell/ParsedShellScript.zig b/src/shell/ParsedShellScript.zig index 1aed62ad6d..9d5c88627f 100644 --- a/src/shell/ParsedShellScript.zig +++ b/src/shell/ParsedShellScript.zig @@ -49,7 +49,7 @@ pub fn finalize( } pub fn setCwd(this: *ParsedShellScript, globalThis: *JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const str_js = arguments.nextEat() orelse { return globalThis.throw("$`...`.cwd(): expected a string argument", .{}); }; diff --git a/src/shell/interpreter.zig b/src/shell/interpreter.zig index 901bf1b67a..eb3e146f2d 100644 --- a/src/shell/interpreter.zig +++ b/src/shell/interpreter.zig @@ -644,7 +644,7 @@ pub const Interpreter = struct { pub fn createShellInterpreter(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!JSValue { const allocator = bun.default_allocator; - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const resolve = arguments.nextEat() orelse return globalThis.throw("shell: expected 3 arguments, got 0", .{}); diff --git a/src/shell/shell.zig b/src/shell/shell.zig index 3eaf560018..5183cc7ab0 100644 --- a/src/shell/shell.zig +++ b/src/shell/shell.zig @@ -4276,7 +4276,7 @@ pub const TestingAPIs = struct { pub fn disabledOnThisPlatform(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { if (comptime bun.Environment.isWindows) return JSValue.false; - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const string = arguments.nextEat() orelse { return globalThis.throw("shellInternals.disabledOnPosix: expected 1 arguments, got 0", .{}); }; @@ -4298,7 +4298,7 @@ pub const TestingAPIs = struct { globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame, ) bun.JSError!jsc.JSValue { - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const string_args = arguments.nextEat() orelse { return globalThis.throw("shell_parse: expected 2 arguments, got 0", .{}); }; @@ -4365,7 +4365,7 @@ pub const TestingAPIs = struct { globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame, ) bun.JSError!jsc.JSValue { - var arguments = jsc.CallFrame.ArgumentsSlice.init2(callframe.arguments()); + var arguments = callframe.iterateArguments(); const string_args = arguments.nextEat() orelse { return globalThis.throw("shell_parse: expected 2 arguments, got 0", .{}); };