@@ -2,41 +2,43 @@ import type { TargetEnv } from '../types';
22
33export const HELPERS_ID = '\0wasmHelpers.js' ;
44
5+ export const SELF_ID = '\0self' ;
6+
57const nodeFilePath = `
6- var fs = require("fs")
7- var path = require("path")
8+ var fs = require("fs");
9+ var path = require("path");
810
911return new Promise((resolve, reject) => {
1012 fs.readFile(path.resolve(__dirname, filepath), (error, buffer) => {
1113 if (error != null) {
12- reject(error)
14+ reject(error);
1315 } else {
14- resolve(_instantiateOrCompile(buffer, imports, false))
16+ resolve(_instantiateOrCompile(buffer, imports, false));
1517 }
1618 });
1719});
1820` ;
1921
2022const nodeDecode = `
21- buf = Buffer.from(src, 'base64')
23+ buf = Buffer.from(src, 'base64');
2224` ;
2325
2426const browserFilePath = `
2527return _instantiateOrCompile(fetch(filepath), imports, true);
2628` ;
2729
2830const browserDecode = `
29- var raw = globalThis.atob(src)
30- var rawLength = raw.length
31- buf = new Uint8Array(new ArrayBuffer(rawLength))
31+ var raw = globalThis.atob(src);
32+ var rawLength = raw.length;
33+ buf = new Uint8Array(new ArrayBuffer(rawLength));
3234for(var i = 0; i < rawLength; i++) {
33- buf[i] = raw.charCodeAt(i)
35+ buf[i] = raw.charCodeAt(i);
3436}
3537` ;
3638
3739const autoModule = `
38- var buf = null
39- var isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null
40+ var buf = null;
41+ var isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
4042
4143if (filepath && isNode) {
4244 ${ nodeFilePath }
@@ -61,7 +63,7 @@ ${nodeDecode}
6163` ;
6264
6365const browserModule = `
64- var buf = null
66+ var buf = null;
6567if (filepath) {
6668 ${ browserFilePath }
6769}
@@ -70,8 +72,8 @@ ${browserDecode}
7072` ;
7173
7274const autoInlineModule = `
73- var buf = null
74- var isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null
75+ var buf = null;
76+ var isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
7577if (isNode) {
7678 ${ nodeDecode }
7779} else {
@@ -95,26 +97,25 @@ const envModule = (env: TargetEnv) => {
9597} ;
9698
9799export const getHelpersModule = ( env : TargetEnv ) => `
98- function _loadWasmModule (sync, filepath, src, imports) {
99- function _instantiateOrCompile(source, imports, stream) {
100- var instantiateFunc = stream ? WebAssembly.instantiateStreaming : WebAssembly.instantiate;
101- var compileFunc = stream ? WebAssembly.compileStreaming : WebAssembly.compile;
100+ export function _loadWasmModule (sync, filepath, src, imports) {
101+ ${ envModule ( env ) }
102102
103+ if (sync) {
104+ var mod = new WebAssembly.Module(buf);
105+ return imports ? new WebAssembly.Instance(mod, imports) : mod;
106+ } else {
103107 if (imports) {
104- return instantiateFunc(source, imports)
108+ return WebAssembly.instantiate(buf, imports, {
109+ builtins: ['js-string']
110+ }).then(({ instance }) => instance);
105111 } else {
106- return compileFunc(source)
112+ return WebAssembly.compile(buf, {
113+ builtins: ['js-string']
114+ });
107115 }
108- }
109-
110- ${ envModule ( env ) }
111-
112- if(sync) {
113- var mod = new WebAssembly.Module(buf)
114- return imports ? new WebAssembly.Instance(mod, imports) : mod
115- } else {
116- return _instantiateOrCompile(buf, imports, false)
116+ return _instantiateOrCompile(buf, imports, false);
117117 }
118118}
119- export { _loadWasmModule };
119+
120+ export const _nsMap = new WeakMap();
120121` ;
0 commit comments