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 WebAssembly.validate() statische Methode validiert ein gegebenes typisiertes Array von WebAssembly-Binärcode und gibt zurück, ob die Bytes ein gültiges Wasm-Modul bilden (true) oder nicht (false).

Syntax

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

Parameter

bufferSource

Ein typisiertes Array oder ArrayBuffer das den zu validierenden WebAssembly-Binärcode enthält.

compileOptions Optional

Ein Objekt, das Kompilierungsoptionen enthält. Dieser Parameter ist in der validate()-Methode enthalten, damit er verwendet werden kann, um Module zu validieren, wenn Kompilierungsoptionen vorhanden sind (zum Beispiel, um Funktionsdetektion zu implementieren). Eigenschaften können beinhalten:

builtins Optional

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

importedStringConstants Optional

Ein String, der einen Namespace 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 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) ruft ein Wasm-Modul ab und konvertiert es in ein typisiertes Array. Die validate()-Methode wird dann verwendet, um zu prü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 String-Imports

Dieses Beispiel validiert ein Wasm-Modul mit aktivierten JavaScript-String-Builtins und importierten globalen String-Konstanten und loggt "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.

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

Siehe auch