diff options
-rw-r--r-- | cli/dts/lib.deno.unstable.d.ts | 2 | ||||
-rw-r--r-- | ext/ffi/00_ffi.js | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/cli/dts/lib.deno.unstable.d.ts b/cli/dts/lib.deno.unstable.d.ts index b83309bc9..fb5ed461c 100644 --- a/cli/dts/lib.deno.unstable.d.ts +++ b/cli/dts/lib.deno.unstable.d.ts @@ -142,7 +142,7 @@ declare namespace Deno { * Opens a dynamic library and registers symbols */ export function dlopen<S extends Record<string, ForeignFunction>>( - filename: string, + filename: string | URL, symbols: S, ): DynamicLibrary<S>; diff --git a/ext/ffi/00_ffi.js b/ext/ffi/00_ffi.js index 3c4112a47..553ea1dd3 100644 --- a/ext/ffi/00_ffi.js +++ b/ext/ffi/00_ffi.js @@ -3,6 +3,7 @@ ((window) => { const core = window.Deno.core; + const __bootstrap = window.__bootstrap; class DynamicLibrary { #rid; @@ -23,7 +24,9 @@ } function dlopen(path, symbols) { - return new DynamicLibrary(path, symbols); + // URL support is progressively enhanced by util in `runtime/js`. + const pathFromURL = __bootstrap.util.pathFromURL ?? ((p) => p); + return new DynamicLibrary(pathFromURL(path), symbols); } window.__bootstrap.ffi = { dlopen }; |