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
Responseobject 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
bufferSourceis not a typed array, aTypeErroris 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