WebAssembly.compile()
The WebAssembly.compile()
function compiles WebAssembly binary code into a WebAssembly.Module
object.
This function is useful if it is necessary to compile a module before it can be instantiated (otherwise, the WebAssembly.instantiate()
function should be used).
Note: Webpages that have strict Content Security Policy (CSP) might block WebAssembly from compiling and executing modules. For more information on allowing WebAssembly compilation and execution, see the script-src CSP.
Syntax
js
WebAssembly.compile(bufferSource)
Parameters
bufferSource
-
A typed array or
ArrayBuffer
containing the binary code of the Wasm module you want to compile.
Return value
A Promise
that resolves to a WebAssembly.Module
object
representing the compiled module.
Exceptions
-
If
bufferSource
is not a typed array orArrayBuffer
, the promise rejects with aTypeError
. -
If compilation fails, the promise rejects with a
WebAssembly.CompileError
.
Examples
Using compile
The following example compiles the loaded simple.wasm byte code using the
compile()
function and then sends it to a worker using postMessage().
js
const worker = new Worker("wasm_worker.js");
fetch("simple.wasm")
.then((response) => response.arrayBuffer())
.then((bytes) => WebAssembly.compile(bytes))
.then((mod) => worker.postMessage(mod));
Note: You'll probably want to use
WebAssembly.compileStreaming()
in most cases, as it is more efficient
than compile()
.
Specifications
Specification |
---|
WebAssembly JavaScript Interface # dom-webassembly-compile |
Browser compatibility
BCD tables only load in the browser