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
Valeur de retour
Un objet Promise
dont la valeur de résolution est un objet WebAssembly.Module
qui représente le module compilé.
Exceptions
- Si la compilation échoue, la promesse est rejetée avec une exception
WebAssembly.CompileError
.
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
BCD tables only load in the browser