WebAssembly - Convalida
In questo capitolo, discuteremo la funzione webassembly.validate () che convaliderà l'output .wasm. Il .wasm è disponibile quando compiliamo codice C, C ++ o rust.
È possibile utilizzare i seguenti strumenti per ottenere il codice wasm.
Wasm Fiddler, disponibile all'indirizzo https://wasdk.github.io/WasmFiddle/
WebAssembly Explorer, disponibile all'indirizzo https://mbebenita.github.io/WasmExplorer/.
Sintassi
La sintassi è la seguente:
WebAssembly.validate(bufferSource);
Parametri
bufferSource- Il bufferSource ha il codice binario che proviene dal programma C, C ++ o Rust. È sotto forma di typedarray o ArrayBuffer.
Valore di ritorno
La funzione restituirà true se il codice .wasm è valido e false in caso contrario.
Proviamo un esempio. Vai a Wasm fiddler , disponibile all'indirizzohttps://wasdk.github.io/WasmFiddle/, inserisci il codice C di tua scelta e giù il codice wasm.
Il blocco contrassegnato in rosso è il codice C. Fare clic sul pulsante Build al centro per eseguire il codice.
Fare clic sul pulsante Wasm, per scaricare il codice .wasm. Salva il .wasm alla fine e usiamo lo stesso per la convalida.
Esempio
Per esempio: validate.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Testing WASM validate()</title>
</head>
<body>
<script>
fetch('program.wasm').then(res => res.arrayBuffer() ).then(function(testbytes) {
var valid = WebAssembly.validate(testbytes);
if (valid) {
console.log("Valid Wasm Bytes!");
} else {
console.log("Invalid Wasm Code!");
}
});
</script>
</body>
</html>
Ho ospitato il file .html sopra nel server wamp insieme al file .wasm di download. Ecco l'output quando lo provi nel browser.
Produzione
L'output è il menzionato di seguito -