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. |
| Desktop | ||||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
| Basic support | 61 | 16 | 58 | No | 47 | No |
| Mobile | |||||||
|---|---|---|---|---|---|---|---|
| Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
| Basic support | 61 | 61 | No | 58 | ? | No | No |
| Server | |
|---|---|
| Node.js | |
| Basic support | 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