[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/WebAssembly/Reference/JavaScript_interface/Module/Module [Back]  [Original]

WebAssembly.Module() Konstruktor - WebAssembly | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

WebAssembly.Module() Konstruktor

Baseline Weitgehend verfgbar *

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Oktober 2017 browserbergreifend verfgbar.

* Einige Teile dieser Funktion werden mglicherweise unterschiedlich gut untersttzt.

Ein WebAssembly.Module() Konstruktor erstellt ein neues Modulobjekt, das zustandslosen WebAssembly-Code enthlt, der bereits vom Browser kompiliert wurde und effizient mit Workern geteilt und mehrfach instanziiert werden kann.

Die WebAssembly.Module() Konstruktorfunktion kann aufgerufen werden, um den gegebenen WebAssembly-Binrcode synchron zu kompilieren. Der primre Weg, um ein Module zu erhalten, ist jedoch durch eine asynchrone Kompilierungsfunktion wie WebAssembly.compile().

Warnung: Da die Kompilierung groer Module aufwendig sein kann, sollten Entwickler den Module() Konstruktor nur dann verwenden, wenn eine synchrone Kompilierung absolut notwendig ist; die asynchrone Methode WebAssembly.compileStreaming() sollte in allen anderen Fllen verwendet werden.

Hinweis: Webseiten, die eine strikte Content Security Policy (CSP) haben, knnten die Kompilierung und Ausfhrung von WebAssembly-Modulen blockieren. Fr weitere Informationen zum Zulassen der Kompilierung und Ausfhrung von WebAssembly siehe die script-src CSP.

In diesem Artikel

Syntax

js
new WebAssembly.Module(bufferSource)
new WebAssembly.Module(bufferSource, compileOptions)

Parameter

bufferSource

Ein typisiertes Array oder ArrayBuffer, das den Binrcode des Wasm-Moduls enthlt, das Sie kompilieren mchten.

compileOptions Optional

Ein Objekt, das Kompilierungsoptionen enthlt. Eigenschaften knnen beinhalten:

builtins Optional

Ein Array von Zeichenfolgen, das die Verwendung von JavaScript builtins im kompilierten Wasm-Modul ermglicht. Die Zeichenfolgen definieren die builtins, die Sie aktivieren mchten. Derzeit ist der einzige verfgbare Wert "js-string", der JavaScript-String-Builtins aktiviert.

importedStringConstants Optional

Eine Zeichenfolge, die einen Namespace fr importierte globale Zeichenfolgenkonstanten angibt. Diese Eigenschaft muss angegeben werden, wenn Sie importierte globale Zeichenfolgenkonstanten im Wasm-Modul verwenden mchten.

Ausnahmen

  • Wenn der Parameter nicht den richtigen Typ oder die richtige Struktur hat, wird ein TypeError ausgelst.
  • Wenn die Kompilierung fehlschlgt, lehnt der Konstruktor mit einem WebAssembly.CompileError ab.
  • Einige Browser knnen einen RangeError auslsen, da sie die Kompilierung und Instanziierung von Wasm mit groen Puffern im UI-Thread verbieten.

Beispiele

Synchrones Kompilieren eines WebAssembly-Moduls

js
const importObject = {
  my_namespace: {
    imported_func(arg) {
      console.log(arg);
    },
  },
};

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

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

Aktivierung von JavaScript-Builtins und globalen Zeichenfolgenimporten

Dieses Beispiel ermglicht JavaScript-String-Builtins und importierte globale Zeichenfolgenkonstanten, wenn ein Wasm-Modul ber den Module()-Konstruktor kompiliert wird, welches dann mit instantiate() instanziiert wird. Anschlieend wird die exportierte Funktion main() aufgerufen, die "hello world!" auf die Konsole schreibt. Hier live ansehen.

js
const importObject = {
  // Regular import
  m: {
    log: console.log,
  },
};

const compileOptions = {
  builtins: ["js-string"], // Enable JavaScript string builtins
  importedStringConstants: "string_constants", // Enable imported global string constants
};

fetch("log-concat.wasm")
  .then((response) => response.arrayBuffer())
  .then((bytes) => {
    const module = new WebAssembly.Module(bytes, compileOptions);
    WebAssembly.instantiate(module, importObject).then((instance) =>
      instance.exports.main(),
    );
  });

Spezifikationen

Spezifikation
WebAssembly JavaScript Interface
# dom-module-module

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page