从 JavaScript 到 WASM 的编译器
Jawsm(发音类似“awesome”)是一个由 Rust 编写的 JavaScript 到 WebAssembly 编译器。它与 porffor 类似,也会生成一个独立的 WASM 二进制文件,可以在没有解释器的情况下执行,但它采用了不同的实现方法。
我开始这个项目时,正在开发一个名为 Crows 的压力测试工具,它运行 WebAssembly 场景。目前它只支持从 Rust 到 WASM 编译的代码。尽管我非常喜欢编写 Rust 代码,但我也知道这并不是一种广泛流行的语言,而且小型测试通常更容易用解释型语言编写。问题是,在 WASM 上运行脚本语言目前并不理想。你要么包含解释器,这会使二进制文件的大小至少增加几 MB,内存使用量也会更大,要么使用你所针对的语言的变体(比如使用 TinyGo 而不是 Go,或者使用 AssemblyScript 而不是 TypeScript/JavaScript)。
我相信,借助现代的 WASM 建议,可以在不使用编译后解释器的情况下实现 100% 的 JavaScript 功能,因为 WASM 运行时已经是解释器了。
其他可工作的内容的非详尽列表: * 声明和赋值: var, let, const * 所有循环: do..while, while, for, for..in, for..of * switch 语句 * 对 break 的有限支持
暂无开放 Issues,或尚未同步最近议题。