WebAssembly - 驗證



本章將討論 `webassembly.validate()` 函式,該函式將驗證 `.wasm` 輸出。編譯 C、C++ 或 Rust 程式碼後,即可獲得 `.wasm` 檔案。

您可以使用以下工具來獲取 wasm 程式碼。

語法

語法如下:

WebAssembly.validate(bufferSource);

引數

bufferSource − `bufferSource` 包含來自 C、C++ 或 Rust 程式的二進位制程式碼。它以 TypedArray 或 ArrayBuffer 的形式存在。

返回值

如果 `.wasm` 程式碼有效,則函式返回 `true`;否則返回 `false`。

讓我們嘗試一個示例。訪問 Wasm fiddler,網址為 https://wasmfiddle.com/,輸入您選擇的 C 程式碼並下載 wasm 程式碼。

Buffer Source

紅色標記的塊是 C 程式碼。單擊中間的“構建”按鈕以執行程式碼。

Validating

單擊“Wasm”按鈕下載 `.wasm` 程式碼。將 `.wasm` 檔案儲存到您的本地,然後讓我們使用它進行驗證。

示例

例如: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>

我已經在我的 wamp 伺服器上託管了上述 `.html` 檔案以及下載的 `.wasm` 檔案。這是您在瀏覽器中測試時的輸出。

輸出

輸出如下:

Mentioned
廣告