WebAssembly.compileStreaming()
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 à 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
Specification |
---|
WebAssembly Web API # dom-webassembly-compilestreaming |
Compatibilité des navigateurs
BCD tables only load in the browser