跳到主要内容

Rhino 1.7R3

ECMAScript 5 支持

ECMAScript 5 支持已通过 Raphael Speyer 在 Google 夏季代码项目中的努力添加到 Rhino,项目由 Norris Boyd 进行指导。Rhino 1.7R3 支持大部分 ES5 功能,但不支持严格模式。

JavaScript 1.8 支持

Rhino 1.7R3 提供了部分 JavaScript 1.8 的支持,由 Hannes Wallnöfer 和 Andreas Bolka 实现。这包括表达式闭包和解构赋值简写,但不包括生成器表达式。

需要注意的是,JavaScript 1.8 的功能需要通过在命令行选择语言版本 180 或嵌入模式下选择 Context.VERSION_1_8 来显式启用。

新的 AST API

Steve Yegge 为 Rhino 提出了新的 AST API,它对构建 JavaScript 专用工具的人来说应该是有用的。AST 类位于 org.mozilla.javascript.ast 包中。

CommonJS 模块支持

完全遵循 CommonJS模块实现 的支持由 Attila Szegedi 提供。在 Rhino 的命令行中可通过 -modules-main-sandbox 选项启用 CommonJS 模块。

JS 对象实现 Java 集合

JavaScript 对象现在实现了 java.util.Map 接口,而数组则实现了 java.util.List 接口。这意味着 JavaScript 对象可以无缝地传递给需要 Map 的 Java 方法,而数组可以传递给需要 List 或 java.util.Collection 的方法。

JSDoc 注释解析

Rhino 解析器现在能够识别类似 JSDoc 的注释(以 /** 开头)。此功能默认禁用,需要通过在 CompilerEnviron 对象中设置相应标志来启用。

性能改进

自上次发布以来,Rhino 已进行了性能改进,尤其是在运行基准测试或测试套件时表现尤为明显。