wat-instantiate
Version:
Convert a WAT string to a WASM module.
29 lines (22 loc) • 835 B
JavaScript
const wabt = require("wabt")();
const WatInstantiate = function (wat_src, callback, importObject = null, exportObject = null ) {
const wasmModule = wabt.parseWat("", wat_src);
wasmModule.validate();
const binary_result = wasmModule.toBinary({}).buffer;
(async () => {
let obj;
if( importObject != null ) {
obj = await WebAssembly.instantiate( new Uint8Array(binary_result), importObject );
}
else {
obj = await WebAssembly.instantiate( new Uint8Array(binary_result) );
}
if( exportObject != null ) {
for( var key in obj.instance.exports ) {
exportObject[key] = obj.instance.exports[key];
}
}
callback();
})();
}
module.exports = WatInstantiate;