The WebAssembly.compile()
function compiles WebAssembly binary code into a WebAssembly.Module
object. This function is useful if it is necessary to a compile a module before it can be instantiated (otherwise, the WebAssembly.instantiate()
function should be used).
WebAssembly.compile()
Syntax
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, aTypeError
is thrown. - 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().
var 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
Browser compatibility
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | Deno | Node.js | |
compile |
57
|
16
|
52
Disabled in the Firefox 52 Extended Support Release (ESR).
|
No
|
44
|
11
|
57
|
57
|
52
Disabled in the Firefox 52 Extended Support Release (ESR).
|
43
|
11
|
7.0
|
1.0
|
8.0.0
|
See also
© 2005–2022 MDN 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/compile