This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The WebAssembly.compileStreaming()
function compiles a WebAssembly.Module
directly from a streamed underlying source. This function is useful if it is necessary to a compile a module before it can be instantiated (otherwise, the WebAssembly.instantiateStreaming()
function should be used).
Promise<WebAssembly.Module> WebAssembly.compileStreaming(source);
Response
object or a promise that will fulfill with one, representing the underlying source of a .wasm module you want to stream and compile.A Promise
that resolves to a WebAssembly.Module
object representing the compiled module.
bufferSource
is not a typed array, a TypeError
is thrown.WebAssembly.CompileError
.The following example (see our compile-streaming.html demo on GitHub, and view it live also) directly streams a .wasm module from an underlying source then compiles it to a WebAssembly.Module
object. Because the compileStreaming()
function accepts a promise for a Response
object, you can directly pass it a WindowOrWorkerGlobalScope.fetch()
call, and it will pass the response into the function when it fulfills.
var importObject = { imports: { imported_func: arg => console.log(arg) } }; WebAssembly.compileStreaming(fetch('simple.wasm')) .then(module => WebAssembly.instantiate(module, importObject)) .then(instance => instance.exports.exported_func());
The resulting module instance is then instantiated using WebAssembly.instantiate()
, and the exported function invoked.
Specification | Status | Comment |
---|---|---|
WebAssembly features for web embedding The definition of 'compileStreaming()' in that specification. | Draft | Initial draft definition. |
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 61 | No | 58 | No | 47 | ? |
Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic support | 61 | 61 | No | 58 | No | ? | ? |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming