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.

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 die Kompilierungsoptionen vorhanden sind (zum Beispiel, um Feature-Erkennung zu implementieren). Die Eigenschaften können umfassen:

builtins Optional

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

Rückgabewert

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

Ausnahmen

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

Beispiele

Nutzung von validate

Das folgende Beispiel (sehen Sie den validate.html Quellcode und sehen Sie es live) lädt ein Wasm-Modul und konvertiert es in ein typisiertes Array. Die validate()-Methode 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 der Konsole, wenn es gültig ist, und "Wasm module valid: false", wenn nicht. 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

BCD tables only load in the browser

Siehe auch