GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • MDN
  • HTML: Markup language
  • Elements
  • Global attributes
  • Attributes
  • See all…
  • Responsive images
  • HTML cheatsheet
  • Date & time formats
  • See all…
  • SVG
  • MathML
  • XML
  • CSS: Styling language

This view

  • Original page
  • New address

GeezerVison is showing developer.mozilla.org — WebAssembly.compile() - 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.compile()

Baseline
Weitgehend verfügbar
*

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Oktober 2017 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

  • Vollständige Kompatibilität anzeigen
  • Mehr erfahren

Die statische Methode WebAssembly.compile() kompiliert WebAssembly-Binärcode in ein WebAssembly.Module-Objekt. Diese Funktion ist nützlich, wenn ein Modul kompiliert werden muss, bevor es instanziiert werden kann (andernfalls sollte die Funktion WebAssembly.instantiate() verwendet werden).

Hinweis: Webseiten, die eine strikte Content Security Policy (CSP) haben, könnten das Kompilieren und Ausführen von WebAssembly-Modulen blockieren. Weitere Informationen zum Zulassen der WebAssembly-Kompilierung und -Ausführung finden Sie unter dem script-src CSP.

Syntax

js
WebAssembly.compile(bufferSource)
WebAssembly.compile(bufferSource, compileOptions)

Parameter

bufferSource

Ein typisiertes Array oder ArrayBuffer, das den Binärcode des zu kompilierenden Wasm-Moduls enthält.

compileOptions Optional

Ein Objekt, das Kompilierungsoptionen enthält. Eigenschaften können enthalten:

builtins Optional

Ein Array von einem oder mehreren Zeichenfolgen, das die Verwendung von JavaScript builtins im kompilierten Wasm-Modul ermöglicht. Die Zeichenfolgen definieren die Builtins, die Sie aktivieren möchten. Derzeit ist der einzige verfügbare Wert "js-string", der JavaScript-String-Builtins aktiviert.

importedStringConstants Optional

Eine Zeichenfolge, die einen Namensraum für importierte globale String-Konstanten angibt. Diese Eigenschaft muss angegeben werden, wenn Sie importierte globale String-Konstanten im Wasm-Modul verwenden möchten.

Rückgabewert

Ein Promise, das sich zu einem WebAssembly.Module-Objekt auflöst und das kompilierte Modul darstellt.

Ausnahmen

  • Wenn bufferSource kein typisiertes Array oder ArrayBuffer ist, wird das Promise mit einem TypeError abgelehnt.
  • Wenn die Kompilierung fehlschlägt, wird das Promise mit einem WebAssembly.CompileError abgelehnt.

Beispiele

Verwendung von compile

Im folgenden Beispiel wird der geladene einfache Wasm-Bytecode mit der Funktion compile() kompiliert und dann mit postMessage() an einen Worker gesendet.

js
const worker = new Worker("wasm_worker.js");

fetch("simple.wasm")
  .then((response) => response.arrayBuffer())
  .then((bytes) => WebAssembly.compile(bytes))
  .then((mod) => worker.postMessage(mod));

Hinweis: In den meisten Fällen werden Sie vermutlich WebAssembly.compileStreaming() verwenden wollen, da es effizienter als compile() ist.

Aktivieren von JavaScript-Builtins und globalen String-Importen

Dieses Beispiel aktiviert JavaScript-String-Builtins und importierte globale String-Konstanten, wenn das Wasm-Modul mit compile() kompiliert wird, bevor es mit instantiate() instanziiert und anschließend die exportierte main()-Funktion (die "hello world!" auf die Konsole schreibt) ausgeführt wird. Siehe es live in Aktion.

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) => WebAssembly.compile(bytes, compileOptions))
  .then((module) => WebAssembly.instantiate(module, importObject))
  .then((instance) => instance.exports.main());

Spezifikationen

Spezifikation
WebAssembly JavaScript Interface
# dom-webassembly-compile

Browser-Kompatibilität

Siehe auch

  • WebAssembly Übersicht
  • WebAssembly-Konzepte
  • Verwendung der WebAssembly-JavaScript-API

Help improve MDN

Erfahren Sie, wie Sie beitragen können Diese Seite wurde automatisch aus dem Englischen übersetzt.
Übersetzung auf GitHub anzeigen • Fehler mit dieser Übersetzung melden
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.