WebAssembly.Instance()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.
Un objet WebAssembly.Instance
représente un objet exécutable, avec un état, qui est une instance d'un module WebAssembly. Un objet Instance
contient l'ensemble des fonctions WebAssembly exportées qui permettent d'invoquer du code WebAssembly depuis du code JavaScript.
Constructeur
WebAssembly.Instance()
-
Crée un nouvel objet
Instance
.
Propriétés des instances
Instance.prototype.exports
-
Renvoie un objet dont les propriétés sont les fonctions exportées par l'instance de module WebAssembly afin qu'elles puissent être récupérées et utilisées en JavaScript. Cette propriété est uniquement accessible en lecture seule.
Exemples
Instancier un module WebAssembly de façon synchrone
Le constructeur WebAssembly.Instance()
peut être appelé afin d'instancier un objet WebAssembly.Module
de façon synchrone. Par exemple :
const importObject = {
imports: {
imported_func: function (arg) {
console.log(arg);
},
},
};
fetch("simple.wasm")
.then((response) => response.arrayBuffer())
.then((bytes) => {
let mod = new WebAssembly.Module(bytes);
let instance = new WebAssembly.Instance(mod, importObject);
instance.exports.exported_func();
});
La façon préconisée de récupérer un objet Instance
est asynchrone, par exemple en utilisant la fonction WebAssembly.instantiateStreaming()
de cette façon :
const importObject = {
imports: {
imported_func: function (arg) {
console.log(arg);
},
},
};
WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
(obj) => obj.instance.exports.exported_func(),
);
Cet exemple illustre également comment la propriété exports
est utilisée afin d'accéder aux fonctions exportées.
Spécifications
Specification |
---|
WebAssembly JavaScript Interface # instances |
Compatibilité des navigateurs
BCD tables only load in the browser