WebAssembly - walidacja

W tym rozdziale omówimy funkcję webassembly.validate (), która zweryfikuje dane wyjściowe .wasm. .Wasm jest dostępny, gdy kompilujemy kod w C, C ++ lub rdzeniu.

Możesz skorzystać z następujących narzędzi, aby pobrać kod wasm.

  • Wasm Fiddler, który jest dostępny pod adresem https://wasdk.github.io/WasmFiddle/

  • WebAssembly Explorer, który jest dostępny pod adresem https://mbebenita.github.io/WasmExplorer/.

Składnia

Składnia jest taka, jak podano poniżej -

WebAssembly.validate(bufferSource);

Parametry

bufferSource- BufferSource zawiera kod binarny, który pochodzi z programu C, C ++ lub Rust. Ma postać typedarray lub ArrayBuffer.

Wartość zwracana

Funkcja zwróci wartość true, jeśli kod .wasm jest prawidłowy, a false, jeśli nie.

Spróbujmy na jednym przykładzie. Idź do Wasm Fiddler , który jest dostępny pod adresemhttps://wasdk.github.io/WasmFiddle/, wprowadź wybrany kod C i wpisz kod WAS.

Blok zaznaczony na czerwono to kod C. Kliknij przycisk Build w środku, aby wykonać kod.

Kliknij przycisk Wasm, aby pobrać kod .wasm. Zapisz plik .wasm na swoim końcu i pozwól nam użyć tego samego do walidacji.

Przykład

Na przykład: 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>

Powyższy plik .html umieściłem na serwerze wamp wraz z pobranym plikiem .wasm. Tutaj jest wynik po przetestowaniu go w przeglądarce.

Wynik

Dane wyjściowe są wymienione poniżej -