WebAssembly.compile()

La méthode 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).

Syntaxe

Promise<WebAssembly.Module> 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

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().

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 : Dans la plupart des cas, mieux vaudra utiliser WebAssembly.compileStreaming() qui est plus efficace que compile().

Spécifications

Spécification État Commentaires
WebAssembly JavaScript Interface
La définition de 'compile()' dans cette spécification.
Version de travail Brouillon de définition initiale pour WebAssembly.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
compileChrome Support complet 57Edge Support complet 16Firefox Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
IE Aucun support NonOpera Support complet 44Safari Support complet 11WebView Android Support complet 57Chrome Android Support complet 57Firefox Android Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android Support complet 43Safari iOS Support complet 11Samsung Internet Android Support complet 7.0nodejs Support complet 8.0.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Voir les notes d'implémentation.
Voir les notes d'implémentation.

Voir aussi