aboutsummaryrefslogtreecommitdiff
path: root/src/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'src/javascript')
-rw-r--r--src/javascript/jsc/ffi.exports.js4
-rw-r--r--src/javascript/jsc/javascript.zig11
2 files changed, 12 insertions, 3 deletions
diff --git a/src/javascript/jsc/ffi.exports.js b/src/javascript/jsc/ffi.exports.js
index 949226436..fea92e0cd 100644
--- a/src/javascript/jsc/ffi.exports.js
+++ b/src/javascript/jsc/ffi.exports.js
@@ -214,11 +214,11 @@ export function dlopen(path, options) {
var symbol = result.symbols[key];
if (
options[key]?.args?.length ||
- FFIType[options[key]?.return_type] === FFIType.cstring
+ FFIType[options[key]?.returns] === FFIType.cstring
) {
result.symbols[key] = FFIBuilder(
options[key].args ?? [],
- options[key].return_type ?? FFIType.void,
+ options[key].returns ?? FFIType.void,
symbol,
// in stacktraces:
// instead of
diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig
index efb0481f7..894b7bea5 100644
--- a/src/javascript/jsc/javascript.zig
+++ b/src/javascript/jsc/javascript.zig
@@ -937,6 +937,8 @@ pub const VirtualMachine = struct {
this.resolved_count = 0;
}
+ const shared_library_suffix = if (Environment.isMac) "dylib" else if (Environment.isLinux) "so" else "";
+
inline fn _fetch(
_: *JSGlobalObject,
_specifier: string,
@@ -1081,7 +1083,14 @@ pub const VirtualMachine = struct {
} else if (strings.eqlComptime(_specifier, "bun:ffi")) {
return ResolvedSource{
.allocator = null,
- .source_code = ZigString.init("export const FFIType = " ++ JSC.FFI.ABIType.map_to_js_object ++ ";\n\n" ++ @embedFile("ffi.exports.js") ++ "\n"),
+ .source_code = ZigString.init(
+ "export const FFIType = " ++
+ JSC.FFI.ABIType.map_to_js_object ++
+ ";\n\n" ++
+ "export const suffix = '" ++ shared_library_suffix ++ "';\n\n" ++
+ @embedFile("ffi.exports.js") ++
+ "\n",
+ ),
.specifier = ZigString.init("bun:ffi"),
.source_url = ZigString.init("bun:ffi"),
.hash = 0,