WebAssembly.compile()

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.

* Some parts of this feature may have varying levels of support.

La méthode statique WebAssembly.compile(), permet de compiler un module (WebAssembly.Module) à partir d'un code binaire WebAssembly. Cette fonction est utile lorsqu'il est nécessaire de compiler un module avant de l'instancier (dans les autres cas, la méthode WebAssembly.instantiate() sera plus pertinente).

Note : Les pages web qui utilisent une CSP stricte peuvent bloquer la compilation WebAssembly et l'exécution des modules. Pour plus d'informations pour l'autorisation de la compilation et de l'exécution, voir la directive CSP script-src.

Syntaxe

js
WebAssembly.compile(bufferSource);

Paramètres

bufferSource

Un tableau typé ou un ArrayBuffer contenant le bytecode du module WebAssembly qu'on souhaite compiler.

Valeur de retour

Une promesse (Promise) dont la valeur de résolution est une instance de WebAssembly.Module qui représente le module compilé.

Exceptions

  • Si bufferSource n'est pas un tableau typé, une exception TypeError sera levée.
  • Si la compilation échoue, la promesse sera rompue avec une exception WebAssembly.CompileError.

Exemples

Utiliser compile()

Dans l'exemple qui suit, on compile le bytecode simple.wasm grâce à la méthode compile() puis on envoie le contenu à un worker grâce à la méthode 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 : Dans la plupart des cas, mieux vaudra utiliser WebAssembly.compileStreaming() qui est plus efficace que compile().

Spécifications

Specification
WebAssembly JavaScript Interface
# dom-webassembly-compile

Compatibilité des navigateurs

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
compile() static method
compileOptions parameter

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Voir aussi