La fonction WebAssembly.compileStreaming() permet de compiler un module WebAssembly (c'est-à-dire un objet WebAssembly.Module) depuis un flux source. Cette fonction est utile si on doit compiler un module avant de l'instancier séparement, sinon on utilisera plutôt WebAssembly.instantiateStreaming().

Syntaxe

Promise<WebAssembly.Module> WebAssembly.compileStreaming(source);

Paramètres

source
Un objet Response ou une promesse qui sera résolue avec un objet Response qui représentee la source du module .wasm qu'on souhaite manipuler comme un flux et compiler.

Valeur de retour

Un objet Promise dont la valeur de résolution est un objet WebAssembly.Module qui représente le module compilé.

Exceptions

Exemples

Dans l'exemple suivant (également disponible sur GitHub : compile-streaming.html et avec le résultat live), on récupère un flux dedpuis un module .wasm puis on le compile en un objet WebAssembly.Module. La fonction compileStreaming()  acceptant une promesse pour un objet Response, on peut directement passer l'appel à  WindowOrWorkerGlobalScope.fetch() qui transfèrera la réponse dès que la promesse sera tenue.

var importObject = { imports: { imported_func: arg => console.log(arg) } };

WebAssembly.compileStreaming(fetch('simple.wasm'))
.then(module => WebAssembly.instantiate(module, importObject))
.then(instance => instance.exports.exported_func());

Le module est ensuite instancié grâce à la fonction WebAssembly.instantiate(). Enfin, on appelle la fonction exportée.

Spécifications

Spécification État Commentaires
WebAssembly features for web embedding
La définition de 'compileStreaming()' dans cette spécification.
Projet Brouillon pour la définition initiale.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simpleChrome Support complet 61Edge Support complet 16Firefox Support complet 58IE Aucun support NonOpera Support complet 47Safari Aucun support NonWebView Android Support complet 61Chrome Android Support complet 61Edge Mobile Aucun support NonFirefox Android Support complet 58Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight
Dernière mise à jour par : SphinxKnight,