convert many uses of init2 to iterateArguments; remove init

This commit is contained in:
pfg
2025-07-25 20:36:41 -07:00
parent 5369a0da96
commit 3a1249a493
10 changed files with 21 additions and 27 deletions

View File

@@ -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", .{});
};

View File

@@ -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", .{});
};

View File

@@ -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{

View File

@@ -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();

View File

@@ -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", .{});
};

View File

@@ -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.", .{});

View File

@@ -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 {};

View File

@@ -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", .{});
};

View File

@@ -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", .{});

View File

@@ -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", .{});
};