From 2db778766090e9f03aa3e732a581cba37fcb86df Mon Sep 17 00:00:00 2001 From: pfg Date: Fri, 25 Jul 2025 18:44:14 -0700 Subject: [PATCH] more --- src/bun.js/api/bun/socket/Listener.zig | 14 ++++---- .../api/bun/socket/tls_socket_functions.zig | 32 +++++++++---------- src/bun.js/api/bun/subprocess.zig | 4 +-- src/bun.js/api/bun/udp_socket.zig | 22 ++++++------- src/bun.js/api/crypto/CryptoHasher.zig | 10 +++--- src/bun.js/api/crypto/PasswordObject.zig | 12 +++---- src/bun.js/api/server/ServerWebSocket.zig | 10 +++--- 7 files changed, 49 insertions(+), 55 deletions(-) diff --git a/src/bun.js/api/bun/socket/Listener.zig b/src/bun.js/api/bun/socket/Listener.zig index d87cd2bf6d..5bf709fd25 100644 --- a/src/bun.js/api/bun/socket/Listener.zig +++ b/src/bun.js/api/bun/socket/Listener.zig @@ -76,13 +76,13 @@ pub const UnixOrHost = union(enum) { }; pub fn reload(this: *Listener, globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!JSValue { - const args = callframe.arguments_old(1); + const args = callframe.arguments(); if (args.len < 1 or (this.listener == .none and this.handlers.active_connections == 0)) { return globalObject.throw("Expected 1 argument", .{}); } - const opts = args.ptr[0]; + const opts = args[0]; if (opts.isEmptyOrUndefinedOrNull() or opts.isBoolean() or !opts.isObject()) { return globalObject.throwValue(globalObject.toInvalidArguments("Expected options object", .{})); } @@ -426,10 +426,10 @@ pub fn dispose(this: *Listener, _: *jsc.JSGlobalObject, _: *jsc.CallFrame) bun.J } pub fn stop(this: *Listener, _: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!JSValue { - const arguments = callframe.arguments_old(1); + const arguments = callframe.arguments(); log("close", .{}); - this.doStop(if (arguments.len > 0 and arguments.ptr[0].isBoolean()) arguments.ptr[0].toBoolean() else false); + this.doStop(if (arguments.len > 0 and arguments[0].isBoolean()) arguments[0].toBoolean() else false); return .js_undefined; } @@ -817,13 +817,13 @@ pub fn getsockname(this: *Listener, globalThis: *jsc.JSGlobalObject, callFrame: pub fn jsAddServerName(global: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!JSValue { jsc.markBinding(@src()); - const arguments = callframe.arguments_old(3); + const arguments = callframe.arguments(); if (arguments.len < 3) { return global.throwNotEnoughArguments("addServerName", 3, arguments.len); } - const listener = arguments.ptr[0]; + const listener = arguments[0]; if (listener.as(Listener)) |this| { - return this.addServerName(global, arguments.ptr[1], arguments.ptr[2]); + return this.addServerName(global, arguments[1], arguments[2]); } return global.throw("Expected a Listener instance", .{}); } diff --git a/src/bun.js/api/bun/socket/tls_socket_functions.zig b/src/bun.js/api/bun/socket/tls_socket_functions.zig index 37e6b84c42..7eb59d1caf 100644 --- a/src/bun.js/api/bun/socket/tls_socket_functions.zig +++ b/src/bun.js/api/bun/socket/tls_socket_functions.zig @@ -13,12 +13,12 @@ pub fn setServername(this: *This, globalObject: *jsc.JSGlobalObject, callframe: return globalObject.throw("Cannot issue SNI from a TLS server-side socket", .{}); } - const args = callframe.arguments_old(1); + const args = callframe.arguments(); if (args.len < 1) { return globalObject.throw("Expected 1 argument", .{}); } - const server_name = args.ptr[0]; + const server_name = args[0]; if (!server_name.isString()) { return globalObject.throw("Expected \"serverName\" to be a string", .{}); } @@ -80,17 +80,17 @@ pub fn getTLSVersion(this: *This, globalObject: *jsc.JSGlobalObject, _: *jsc.Cal pub fn setMaxSendFragment(this: *This, globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!JSValue { jsc.markBinding(@src()); - const args = callframe.arguments_old(1); + const args = callframe.arguments(); if (args.len < 1) { return globalObject.throw("Expected size to be a number", .{}); } - const arg = args.ptr[0]; + const arg = args[0]; if (!arg.isNumber()) { return globalObject.throw("Expected size to be a number", .{}); } - const size = try args.ptr[0].coerceToInt64(globalObject); + const size = try args[0].coerceToInt64(globalObject); if (size < 1) { return globalObject.throw("Expected size to be greater than 1", .{}); } @@ -105,10 +105,10 @@ pub fn setMaxSendFragment(this: *This, globalObject: *jsc.JSGlobalObject, callfr pub fn getPeerCertificate(this: *This, globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!JSValue { jsc.markBinding(@src()); - const args = callframe.arguments_old(1); + const args = callframe.arguments(); var abbreviated: bool = true; if (args.len > 0) { - const arg = args.ptr[0]; + const arg = args[0]; if (!arg.isBoolean()) { return globalObject.throw("Expected abbreviated to be a boolean", .{}); } @@ -317,11 +317,11 @@ pub fn exportKeyingMaterial(this: *This, globalObject: *jsc.JSGlobalObject, call return .js_undefined; } - const args = callframe.arguments_old(3); + const args = callframe.arguments(); if (args.len < 2) { return globalObject.throw("Expected length and label to be provided", .{}); } - const length_arg = args.ptr[0]; + const length_arg = args[0]; if (!length_arg.isNumber()) { return globalObject.throw("Expected length to be a number", .{}); } @@ -331,7 +331,7 @@ pub fn exportKeyingMaterial(this: *This, globalObject: *jsc.JSGlobalObject, call return globalObject.throw("Expected length to be a positive number", .{}); } - const label_arg = args.ptr[1]; + const label_arg = args[1]; if (!label_arg.isString()) { return globalObject.throw("Expected label to be a string", .{}); } @@ -343,7 +343,7 @@ pub fn exportKeyingMaterial(this: *This, globalObject: *jsc.JSGlobalObject, call const ssl_ptr = this.socket.ssl() orelse return .js_undefined; if (args.len > 2) { - const context_arg = args.ptr[2]; + const context_arg = args[2]; var arena: bun.ArenaAllocator = bun.ArenaAllocator.init(bun.default_allocator); defer arena.deinit(); @@ -479,13 +479,13 @@ pub fn setSession(this: *This, globalObject: *jsc.JSGlobalObject, callframe: *js return .js_undefined; } - const args = callframe.arguments_old(1); + const args = callframe.arguments(); if (args.len < 1) { return globalObject.throw("Expected session to be a string, Buffer or TypedArray", .{}); } - const session_arg = args.ptr[0]; + const session_arg = args[0]; var arena: bun.ArenaAllocator = bun.ArenaAllocator.init(bun.default_allocator); defer arena.deinit(); @@ -539,13 +539,13 @@ pub fn setVerifyMode(this: *This, globalObject: *jsc.JSGlobalObject, callframe: return .js_undefined; } - const args = callframe.arguments_old(2); + const args = callframe.arguments(); if (args.len < 2) { return globalObject.throw("Expected requestCert and rejectUnauthorized arguments", .{}); } - const request_cert_js = args.ptr[0]; - const reject_unauthorized_js = args.ptr[1]; + const request_cert_js = args[0]; + const reject_unauthorized_js = args[1]; if (!request_cert_js.isBoolean() or !reject_unauthorized_js.isBoolean()) { return globalObject.throw("Expected requestCert and rejectUnauthorized arguments to be boolean", .{}); } diff --git a/src/bun.js/api/bun/subprocess.zig b/src/bun.js/api/bun/subprocess.zig index 038ffcd745..0c1b2d829b 100644 --- a/src/bun.js/api/bun/subprocess.zig +++ b/src/bun.js/api/bun/subprocess.zig @@ -649,10 +649,10 @@ pub fn kill( ) bun.JSError!JSValue { this.this_jsvalue = callframe.this(); - const arguments = callframe.arguments_old(1); + const argument = callframe.argumentsAsArray(1)[0]; // If signal is 0, then no actual signal is sent, but error checking // is still performed. - const sig: SignalCode = try parseSignal(arguments.ptr[0], globalThis); + const sig: SignalCode = try parseSignal(argument, globalThis); if (globalThis.hasException()) return .zero; diff --git a/src/bun.js/api/bun/udp_socket.zig b/src/bun.js/api/bun/udp_socket.zig index 20f8179563..80d9c3e85c 100644 --- a/src/bun.js/api/bun/udp_socket.zig +++ b/src/bun.js/api/bun/udp_socket.zig @@ -585,12 +585,12 @@ pub const UDPSocket = struct { if (this.closed) { return globalThis.throw("Socket is closed", .{}); } - const arguments = callframe.arguments_old(1); + const arguments = callframe.arguments(); if (arguments.len != 1) { return globalThis.throwInvalidArguments("Expected 1 argument, got {}", .{arguments.len}); } - const arg = arguments.ptr[0]; + const arg = arguments[0]; if (!arg.jsType().isArray()) { return globalThis.throwInvalidArgumentType("sendMany", "first argument", "array"); } @@ -662,7 +662,7 @@ pub const UDPSocket = struct { if (this.closed) { return globalThis.throw("Socket is closed", .{}); } - const arguments = callframe.arguments_old(3); + const arguments = callframe.arguments(); const dst: ?Destination = brk: { if (this.connect_info != null) { if (arguments.len == 1) { @@ -677,13 +677,13 @@ pub const UDPSocket = struct { return globalThis.throwInvalidArguments("Expected 3 arguments, got {}", .{arguments.len}); } break :brk .{ - .port = arguments.ptr[1], - .address = arguments.ptr[2], + .port = arguments[1], + .address = arguments[2], }; } }; - const payload_arg = arguments.ptr[0]; + const payload_arg: JSValue = if (arguments.len > 0) arguments[0] else .js_undefined; var payload_str = jsc.ZigString.Slice.empty; defer payload_str.deinit(); const payload = brk: { @@ -802,13 +802,13 @@ pub const UDPSocket = struct { } pub fn reload(this: *This, globalThis: *JSGlobalObject, callframe: *CallFrame) bun.JSError!JSValue { - const args = callframe.arguments_old(1); + const args = callframe.arguments(); if (args.len < 1) { return globalThis.throwInvalidArguments("Expected 1 argument", .{}); } - const options = args.ptr[0]; + const options = args[0]; const config = try UDPSocketConfig.fromJS(globalThis, options); config.protect(); @@ -887,7 +887,7 @@ pub const UDPSocket = struct { } pub fn jsConnect(globalThis: *jsc.JSGlobalObject, callFrame: *jsc.CallFrame) bun.JSError!jsc.JSValue { - const args = callFrame.arguments_old(2); + const args = callFrame.arguments(); const this = callFrame.this().as(UDPSocket) orelse { return globalThis.throwInvalidArguments("Expected UDPSocket as 'this'", .{}); @@ -905,12 +905,12 @@ pub const UDPSocket = struct { return globalThis.throwInvalidArguments("Expected 2 arguments", .{}); } - const str = try args.ptr[0].toBunString(globalThis); + const str = try args[0].toBunString(globalThis); defer str.deref(); const connect_host = str.toOwnedSliceZ(default_allocator) catch bun.outOfMemory(); defer default_allocator.free(connect_host); - const connect_port_js = args.ptr[1]; + const connect_port_js = args[1]; if (!connect_port_js.isNumber()) { return globalThis.throwInvalidArguments("Expected \"port\" to be an integer", .{}); diff --git a/src/bun.js/api/crypto/CryptoHasher.zig b/src/bun.js/api/crypto/CryptoHasher.zig index f72080f38a..e15e93e1d8 100644 --- a/src/bun.js/api/crypto/CryptoHasher.zig +++ b/src/bun.js/api/crypto/CryptoHasher.zig @@ -240,12 +240,12 @@ pub const CryptoHasher = union(enum) { // Bun.CryptoHasher(algorithm, hmacKey?: string | Buffer) pub fn constructor(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!*CryptoHasher { - const arguments = callframe.arguments_old(2); + const arguments = callframe.arguments(); if (arguments.len == 0) { return globalThis.throwInvalidArguments("Expected an algorithm name as an argument", .{}); } - const algorithm_name = arguments.ptr[0]; + const algorithm_name = arguments[0]; if (algorithm_name.isEmptyOrUndefinedOrNull() or !algorithm_name.isString()) { return globalThis.throwInvalidArguments("algorithm must be a string", .{}); } @@ -256,7 +256,7 @@ pub const CryptoHasher = union(enum) { return globalThis.throwInvalidArguments("Invalid algorithm name", .{}); } - const hmac_value = arguments.ptr[1]; + const hmac_value: JSValue = if (arguments.len > 1) arguments[1] else .js_undefined; var hmac_key: ?jsc.Node.StringOrBuffer = null; defer { if (hmac_key) |*key| { @@ -312,12 +312,10 @@ pub const CryptoHasher = union(enum) { pub fn update(this: *CryptoHasher, globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { const thisValue = callframe.this(); - const arguments = callframe.arguments_old(2); - const input = arguments.ptr[0]; + const input, const encoding = callframe.argumentsAsArray(2); if (input.isEmptyOrUndefinedOrNull()) { return globalThis.throwInvalidArguments("expected blob, string or buffer", .{}); } - const encoding = arguments.ptr[1]; const buffer = try jsc.Node.BlobOrStringOrBuffer.fromJSWithEncodingValue(globalThis, globalThis.bunVM().allocator, input, encoding) orelse { if (!globalThis.hasException()) return globalThis.throwInvalidArguments("expected blob, string or buffer", .{}); return error.JSError; diff --git a/src/bun.js/api/crypto/PasswordObject.zig b/src/bun.js/api/crypto/PasswordObject.zig index 8e1363eeaa..5fe148f911 100644 --- a/src/bun.js/api/crypto/PasswordObject.zig +++ b/src/bun.js/api/crypto/PasswordObject.zig @@ -503,8 +503,7 @@ pub const JSPasswordObject = struct { // Once we have bindings generator, this should be replaced with a generated function pub fn JSPasswordObject__hash(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { - const arguments_ = callframe.arguments_old(2); - const arguments = arguments_.ptr[0..arguments_.len]; + const arguments = callframe.arguments(); if (arguments.len < 1) { return globalObject.throwNotEnoughArguments("hash", 1, 0); @@ -533,8 +532,7 @@ pub const JSPasswordObject = struct { // Once we have bindings generator, this should be replaced with a generated function pub fn JSPasswordObject__hashSync(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { - const arguments_ = callframe.arguments_old(2); - const arguments = arguments_.ptr[0..arguments_.len]; + const arguments = callframe.arguments(); if (arguments.len < 1) { return globalObject.throwNotEnoughArguments("hash", 1, 0); @@ -650,8 +648,7 @@ pub const JSPasswordObject = struct { // Once we have bindings generator, this should be replaced with a generated function pub fn JSPasswordObject__verify(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { - const arguments_ = callframe.arguments_old(3); - const arguments = arguments_.ptr[0..arguments_.len]; + const arguments = callframe.arguments(); if (arguments.len < 2) { return globalObject.throwNotEnoughArguments("verify", 2, 0); @@ -706,8 +703,7 @@ pub const JSPasswordObject = struct { // Once we have bindings generator, this should be replaced with a generated function pub fn JSPasswordObject__verifySync(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { - const arguments_ = callframe.arguments_old(3); - const arguments = arguments_.ptr[0..arguments_.len]; + const arguments = callframe.arguments(); if (arguments.len < 2) { return globalObject.throwNotEnoughArguments("verify", 2, 0); diff --git a/src/bun.js/api/server/ServerWebSocket.zig b/src/bun.js/api/server/ServerWebSocket.zig index 9d0c1a3d57..b0b136b699 100644 --- a/src/bun.js/api/server/ServerWebSocket.zig +++ b/src/bun.js/api/server/ServerWebSocket.zig @@ -369,7 +369,7 @@ pub fn publish( globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame, ) bun.JSError!JSValue { - const args = callframe.arguments_old(4); + const args = callframe.arguments(); if (args.len < 1) { log("publish()", .{}); @@ -384,9 +384,9 @@ pub fn publish( const ssl = flags.ssl; const publish_to_self = flags.publish_to_self; - const topic_value = args.ptr[0]; - const message_value = args.ptr[1]; - const compress_value = args.ptr[2]; + const topic_value = args[0]; + const message_value: JSValue = if (args.len > 1) args[1] else .js_undefined; + const compress_value: JSValue = if (args.len > 2) args[2] else .js_undefined; if (topic_value.isEmptyOrUndefinedOrNull() or !topic_value.isString()) { log("publish() topic invalid", .{}); @@ -456,7 +456,7 @@ pub fn publishText( globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame, ) bun.JSError!JSValue { - const args = callframe.arguments_old(4); + const args = callframe.arguments(); if (args.len < 1) { log("publish()", .{});