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
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.
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.
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 |