谷歌的工程师们一直在开发一种名为 JSIR(JavaScript 中间表示,JavaScript Intermediate Representation)的高级中间表示形式,用于 JavaScript。他们已经在公司内部将 JSIR 应用于生产环境中的代码分析,并用于将其他代码或字节码转换为 JavaScript,同时也用于对混淆的 JavaScript 代码进行反混淆处理。
今天,谷歌编译器团队的谭志迅(Zhixun Tan)就 JSIR 发布了一项“征求意见请求”(RFC),该提案部分借鉴了 LLVM 和 MLIR 社区的工作成果。迄今为止,大多数 JavaScript 工具都依赖基于抽象语法树(AST)的方法,而非中间表示(IR),而 JSIR 正是为填补这一空白而设计的。

JSIR 的目标是成为一个公开且稳定的中间表示层,能够完整保留所有源代码级别的信息。目前,谷歌的工程师们正在征求 LLVM/MLIR 开发者的意见,了解他们是否对将 JSIR 合并到 MLIR 主线中感兴趣。
感兴趣的开发者可以通过今天的 RFC 了解 JSIR 的技术概览。JSIR 目前已是开源项目,可在 GitHub 上获取。
转自 Google Proposes JSIR As A High-Level IR For JavaScript – Phoronix
Linuxeden开源社区