WebAssembly - 验证

  • 简述

    在本章中,我们将讨论用于验证 .wasm 输出的 webassembly.validate() 函数。当我们编译 C、C++ 或 rust 代码时,.wasm 可用。
    您可以使用以下工具来获取 wasm 代码。
  • 句法

    语法如下 -
    
    WebAssembly.validate(bufferSource);
    
  • 参数

    bufferSource - bufferSource 具有来自 C、C++ 或 Rust 程序的二进制代码。它采用 typedarray 或 ArrayBuffer 的形式。
  • 返回值

    如果 .wasm 代码有效,该函数将返回 true,否则返回 false。
    让我们尝试一个例子。转到https://wasdk.github.io/WasmFiddle/上提供的Wasm fiddler ,输入您选择的 C 代码,然后输入 wasm 代码。
    缓冲源
    标记为红色的块是 C 代码。单击中心的 Build 按钮以执行代码。
    证实
    单击 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 文件。这是您在浏览器中测试时的输出。
  • 输出

    输出如下所述 -
    提及