WebAssembly.validate()

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.

* Some parts of this feature may have varying levels of support.

Die statische Methode WebAssembly.validate() validiert ein gegebenes typisiertes Array von WebAssembly-Binärcode und gibt zurück, ob die Bytes ein gültiges Wasm-Modul formen (true) oder nicht (false).

Syntax

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

Parameter

bufferSource

Ein typisiertes Array oder ein ArrayBuffer, das den WebAssembly-Binärcode enthält, der validiert werden soll.

compileOptions Optional

Ein Objekt, das die Kompilierungsoptionen enthält. Dieser Parameter ist bei der validate()-Methode enthalten, damit Module auch mit vorhandenen Kompilierungsoptionen validiert werden können (zum Beispiel zur Implementierung der Feature-Erkennung). Eigenschaften können beinhalten:

builtins Optional

Ein Array von 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 Zeichenfolgenkonstanten spezifiziert. Diese Eigenschaft muss angegeben werden, wenn Sie importierte globale Zeichenfolgenkonstanten im Wasm-Modul verwenden möchten.

Rückgabewert

Ein Boolean, der angibt, ob bufferSource gültiger Wasm-Code ist (true) oder nicht (false).

Ausnahmen

Wenn bufferSource kein typisiertes Array oder ArrayBuffer ist, wird ein TypeError ausgelöst.

Beispiele

Verwendung von validate

Das folgende Beispiel (siehe den validate.html Quellcode, und sehen Sie es auch live) lädt ein Wasm-Modul und konvertiert es in ein typisiertes Array. Die Methode validate() wird dann verwendet, um zu überprüfen, ob das Modul gültig ist.

js
fetch("simple.wasm")
  .then((response) => response.arrayBuffer())
  .then((bytes) => {
    const valid = WebAssembly.validate(bytes);
    console.log(
      `The given bytes are ${valid ? "" : "not "}a valid Wasm module`,
    );
  });

Validierung eines Moduls mit aktivierten JavaScript-Builtins und globalen Zeichenfolgenimporten

Dieses Beispiel validiert ein Wasm-Modul mit aktivierten JavaScript-String-Builtins und importierten globalen Zeichenfolgenkonstanten und protokolliert "Wasm module valid: true" in die Konsole, wenn es gültig ist, und "Wasm module valid: false", wenn es nicht gültig ist. Sehen Sie es live laufen.

js
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.validate(bytes, compileOptions))
  .then((result) => console.log(`Wasm module valid: ${result}`));

Spezifikationen

Specification
WebAssembly JavaScript Interface
# dom-webassembly-validate

Browser-Kompatibilität

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
validate() static method
compileOptions parameter

Legend

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

Full support
Full support
No support
No support

Siehe auch