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
js
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.
js
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