Files
tinygo/src/examples/wasm/wasm.js
T
2019-02-11 14:20:20 +01:00

36 lines
756 B
JavaScript

'use strict';
const WASM_URL = '../../../wasm.wasm';
var wasm;
function updateResult() {
wasm.exports.update();
}
function init() {
document.querySelector('#a').oninput = updateResult;
document.querySelector('#b').oninput = updateResult;
const go = new Go();
if ('instantiateStreaming' in WebAssembly) {
WebAssembly.instantiateStreaming(fetch(WASM_URL), go.importObject).then(function(obj) {
wasm = obj.instance;
go.run(wasm);
updateResult();
})
} else {
fetch(WASM_URL).then(resp =>
resp.arrayBuffer()
).then(bytes =>
WebAssembly.instantiate(bytes, go.importObject).then(function(obj) {
wasm = obj.instance;
go.run(wasm);
updateResult();
})
)
}
}
init();