WebAssembly.Instance.prototype.exports

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.

La propriété exports du prototype de WebAssembly.Instance est une propriété en lecture seul qui renvoie un objet dont les propriétés sont les différentes fonctions exportées depuis l'instance du module WebAssembly. Cela permet d'y accéder et de les manipuler en JavaScript.

js
instance.exports;

Exemples

Après avoir récupéré le bytecode WebAssembly grâce à la méthode fetch(), on le compile et on instancie le module grâce à la fonction WebAssembly.instantiateStreaming(). Lorsqu'on utilise cette fonction, on importe une fonction dans le module. Ensuite, on appelle une fonction WebAssembly exportée qui est exposée via l'instance.

js
var importObject = {
  imports: {
    imported_func: function (arg) {
      console.log(arg);
    },
  },
};
WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
  (obj) => obj.instance.exports.exported_func(),
);

Note : Voir le fichier index.html sur GitHub (ainsi que la démonstration) pour un exemple.

Spécifications

Specification
WebAssembly JavaScript Interface
# dom-instance-exports

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi