WebAssembly.compileStreaming()
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).
Syntax
WebAssembly.compileStreaming(source)
Parameters
- source
-
A
Response
object or a promise that will fulfill with one, representing the underlying source of a .wasm module you want to stream and compile.
Return value
A Promise
that resolves to a WebAssembly.Module
object
representing the compiled module.
Exceptions
-
If
bufferSource
is not a typed array, aTypeError
is thrown. -
If compilation fails, the promise rejects with a
WebAssembly.CompileError
.
Examples
Compile streaming
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 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.
Specifications
Specification |
---|
WebAssembly Web API # dom-webassembly-compilestreaming |
Browser compatibility
BCD tables only load in the browser