Constructeur WebAssembly.Module()

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.

Le constructeur WebAssembly.Module() crée un nouvel objet Module contenant du code WebAssembly sans état qui a déjà été compilé par le navigateur et qui peut efficacement être partagé avec des workers et être instancié plusieurs fois.

Le constructeur WebAssembly.Module() peut être appelé de façon synchrone afin de compiler le code binaire WebAssembly correspondant. Toutefois, la méthode principale pour obtenir un Module consiste à utiliser une fonction de compilation asynchrone comme WebAssembly.compile().

Syntaxe

Attention : Étant donné que la compilation de grands modules peut être coûteuse, il est préférable d'utiliser Module() uniquement lorsqu'une compilation synchrone est nécessaire. Dans tous les autres cas, on privilégiera la méthode WebAssembly.compileStreaming().

js
new WebAssembly.Module(bufferSource);

Parameters

bufferSource

Un tableau typé ou un ArrayBuffer contenant le code binaire du module .wasm qu'on souhaite compiler.

Exemples

Compiler un module WebAssembly de façon synchrone

js
var importObject = {
  imports: {
    imported_func: function (arg) {
      console.log(arg);
    },
  },
};

function createWasmModule(bytes) {
  return new WebAssembly.Module(bytes);
}

fetch("simple.wasm")
  .then((response) => response.arrayBuffer())
  .then((bytes) => {
    let mod = createWasmModule(bytes);
    WebAssembly.instantiate(mod, importObject).then((result) =>
      result.exports.exported_func(),
    );
  });

Spécifications

Specification
WebAssembly JavaScript Interface
# dom-module-module

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi