diff --git a/src/bindings/js.ts b/src/bindings/js.ts index a86f77dec4..8876118b11 100644 --- a/src/bindings/js.ts +++ b/src/bindings/js.ts @@ -976,8 +976,9 @@ export class JSBuilder extends ExportsWalker { } sb.push(`} = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { `); let needsMaybeDefault = false; diff --git a/tests/compiler/bindings/esm.debug.js b/tests/compiler/bindings/esm.debug.js index d2d89456b8..8ebfcb8c8f 100644 --- a/tests/compiler/bindings/esm.debug.js +++ b/tests/compiler/bindings/esm.debug.js @@ -553,8 +553,9 @@ export const { fn, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("esm.debug.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/esm.release.js b/tests/compiler/bindings/esm.release.js index 30c529402d..7f0ac87f85 100644 --- a/tests/compiler/bindings/esm.release.js +++ b/tests/compiler/bindings/esm.release.js @@ -553,8 +553,9 @@ export const { fn, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("esm.release.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/noExportRuntime.debug.js b/tests/compiler/bindings/noExportRuntime.debug.js index 9db98d97b4..2521ab12b1 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.js +++ b/tests/compiler/bindings/noExportRuntime.debug.js @@ -162,8 +162,9 @@ export const { takesFunction, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("noExportRuntime.debug.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/noExportRuntime.release.js b/tests/compiler/bindings/noExportRuntime.release.js index de99664237..26ab44837a 100644 --- a/tests/compiler/bindings/noExportRuntime.release.js +++ b/tests/compiler/bindings/noExportRuntime.release.js @@ -162,8 +162,9 @@ export const { takesFunction, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("noExportRuntime.release.wasm", import.meta.url));