WebAssembly - Validação

Neste capítulo, vamos discutir a função webassembly.validate () que validará a saída .wasm. O .wasm está disponível quando compilamos código C, C ++ ou rust.

Você pode usar as seguintes ferramentas para obter o código wasm.

  • Wasm Fiddler, que está disponível em https://wasdk.github.io/WasmFiddle/

  • WebAssembly Explorer, que está disponível em https://mbebenita.github.io/WasmExplorer/.

Sintaxe

A sintaxe é a seguinte -

WebAssembly.validate(bufferSource);

Parâmetros

bufferSource- O bufferSource possui o código binário que vem do programa C, C ++ ou Rust. Ele está na forma de typedarray ou ArrayBuffer.

Valor de retorno

A função retornará verdadeiro se o código .wasm for válido e falso se não for.

Vamos tentar um exemplo. Vá para Wasm fiddler , que está disponível emhttps://wasdk.github.io/WasmFiddle/, digite o código C de sua escolha e baixe o código wasm.

O bloco marcado em vermelho é o código C. Clique no botão Build no centro para executar o código.

Clique no botão Wasm, para baixar o código .wasm. Salve o .wasm no seu final e deixe-nos usar o mesmo para validar.

Exemplo

Por exemplo: 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>

Hospedei o arquivo .html acima no servidor wamp junto com o arquivo .wasm de download. Aqui está a saída quando você o testa no navegador.

Resultado

O resultado é o mencionado abaixo -