diff options
author | 2023-05-20 19:43:44 -0700 | |
---|---|---|
committer | 2023-05-20 22:02:09 -0700 | |
commit | 50bb4749af25efce64bc7e7b1045855f81b6343e (patch) | |
tree | f748b64298b380420526ed8bf36caea6296cc33e | |
parent | ff4df6b6001ac7fd30103b469d0a076021f533c2 (diff) | |
download | bun-50bb4749af25efce64bc7e7b1045855f81b6343e.tar.gz bun-50bb4749af25efce64bc7e7b1045855f81b6343e.tar.zst bun-50bb4749af25efce64bc7e7b1045855f81b6343e.zip |
[internal] Make `JSC.NewFunction` more type safe
-rw-r--r-- | src/bun.js/api/ffi.zig | 4 | ||||
-rw-r--r-- | src/bun.js/bindings/bindings.zig | 11 | ||||
-rw-r--r-- | src/bun.js/node/node_os.zig | 2 |
3 files changed, 9 insertions, 8 deletions
diff --git a/src/bun.js/api/ffi.zig b/src/bun.js/api/ffi.zig index ae3e596f1..fe2b50955 100644 --- a/src/bun.js/api/ffi.zig +++ b/src/bun.js/api/ffi.zig @@ -384,7 +384,7 @@ pub const FFI = struct { global, &str, @intCast(u32, function.arg_types.items.len), - compiled.ptr, + bun.cast(JSC.JSHostFunctionPtr, compiled.ptr), false, ); compiled.js_function = cb; @@ -480,7 +480,7 @@ pub const FFI = struct { global, name, @intCast(u32, function.arg_types.items.len), - compiled.ptr, + bun.cast(JSC.JSHostFunctionPtr, compiled.ptr), false, ); compiled.js_function = cb; diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig index 6dc6d7457..a97ce3935 100644 --- a/src/bun.js/bindings/bindings.zig +++ b/src/bun.js/bindings/bindings.zig @@ -4937,7 +4937,8 @@ pub const EncodedJSValue = extern union { asPtr: ?*anyopaque, asDouble: f64, }; - +pub const JSHostFunctionType = fn (*JSGlobalObject, *CallFrame) callconv(.C) JSValue; +pub const JSHostFunctionPtr = *const JSHostFunctionType; const DeinitFunction = *const fn (ctx: *anyopaque, buffer: [*]u8, len: usize) callconv(.C) void; pub const JSArray = struct { @@ -4967,7 +4968,7 @@ const private = struct { globalObject: *JSGlobalObject, symbolName: ?*const ZigString, argCount: u32, - functionPointer: *const anyopaque, + functionPointer: JSHostFunctionPtr, strong: bool, ) JSValue; @@ -4989,7 +4990,7 @@ pub fn NewFunction( globalObject: *JSGlobalObject, symbolName: ?*const ZigString, argCount: u32, - comptime functionPointer: anytype, + comptime functionPointer: JSHostFunctionType, strong: bool, ) JSValue { return NewRuntimeFunction(globalObject, symbolName, argCount, &functionPointer, strong); @@ -4999,11 +5000,11 @@ pub fn NewRuntimeFunction( globalObject: *JSGlobalObject, symbolName: ?*const ZigString, argCount: u32, - functionPointer: anytype, + functionPointer: JSHostFunctionPtr, strong: bool, ) JSValue { JSC.markBinding(@src()); - return private.Bun__CreateFFIFunctionValue(globalObject, symbolName, argCount, @ptrCast(*const anyopaque, functionPointer), strong); + return private.Bun__CreateFFIFunctionValue(globalObject, symbolName, argCount, functionPointer, strong); } pub fn getFunctionData(function: JSValue) ?*anyopaque { diff --git a/src/bun.js/node/node_os.zig b/src/bun.js/node/node_os.zig index 226c8659b..7b292ae36 100644 --- a/src/bun.js/node/node_os.zig +++ b/src/bun.js/node/node_os.zig @@ -668,7 +668,7 @@ pub const Os = struct { return JSC.JSValue.jsNumberFromUint64(C.getSystemUptime()); } - pub fn userInfo(globalThis: *JSC.JSGlobalObject, callframe: *JSC.CallFrame) JSC.JSValue { + pub fn userInfo(globalThis: *JSC.JSGlobalObject, callframe: *JSC.CallFrame) callconv(.C) JSC.JSValue { const result = JSC.JSValue.createEmptyObject(globalThis, 5); result.put(globalThis, JSC.ZigString.static("homedir"), homedir(globalThis, callframe)); |