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 :

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

js
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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Instance
Instance() constructor
exports

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Voir aussi