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

Promise<WebAssembly.Module> 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

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 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.

Specifications

Browser compatibility

BCD tables only load in the browser

See also