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
ArrayBuffercontaining 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
bufferSourceis 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