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 Oktober 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> |
Browser-Kompatibilität
Loading…