WebAssembly - 验证
-
简述
在本章中,我们将讨论用于验证 .wasm 输出的 webassembly.validate() 函数。当我们编译 C、C++ 或 rust 代码时,.wasm 可用。您可以使用以下工具来获取 wasm 代码。-
Wasm Fiddler,可在https://wasdk.github.io/WasmFiddle/获得
-
WebAssembly Explorer,可在https://mbebenita.github.io/WasmExplorer/ 获得。
-
-
句法
语法如下 -WebAssembly.validate(bufferSource);
-
参数
bufferSource - bufferSource 具有来自 C、C++ 或 Rust 程序的二进制代码。它采用 typedarray 或 ArrayBuffer 的形式。 -
返回值
如果 .wasm 代码有效,该函数将返回 true,否则返回 false。标记为红色的块是 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 文件。这是您在浏览器中测试时的输出。 -
输出
输出如下所述 -