【问题标题】:Which JavaScript (ECMAScript) version does Java's Rhino implementation implement (and what's the update policy?)Java 的 Rhino 实现实现了哪个 JavaScript (ECMAScript) 版本(以及更新策略是什么?)
【发布时间】:2011-10-05 19:13:22
【问题描述】:

Java 的 JavaScript 引擎 Rhino 支持哪个版本的 ECMAScript 标准,需要做多少工作来修复错误并使实现与最新的标准化版本保持同步?

【问题讨论】:

    标签: java javascript programming-languages rhino


    【解决方案1】:

    注意:这个问题已经过时了,没有用处。

    这个问题是在 2011 年提出的,JDK(截至 2015 年秋末)根本不再随 Rhino 提供;这个问题提到了 JDK 1.6,尽管 JDK 1.7 是在几周后发布的。

    JDK 1.8 60 中的 Nashorn 支持 ES 5.1,可能带有几个 ES2015 扩展;很难从 Oracle 来源中找到明确的兼容性声明。据说,JDK 9 Nashorn 应该“完全支持”ES2015,但我再次未能成功找到官方来源。

    以下是原答案。


    随附的 JDK(来自 Sun)中的 Rhino 是 1.6R2 版本。这是古老的。估计会在 1.7 版本中更新。

    您始终可以从 Mozilla 下载 Rhino 并使用他们的集成工具。我用过 Sun 的,虽然它很简单,但还有很多不足之处。

    edit — 至于它是哪个 ECMAScript 标准,嗯,它是 Mozilla 版本,所以他们有自己的修改。但是 1.6R2 太老了,甚至没有像“.forEach()”这样的东西。

    【讨论】:

    • 我不同意这个问题没有用。尽管大多数人都在迁移到 Java 7 或 Java 8 或更高版本,但有些人这样做并没有将他们的 JS 代码更新到 Nashorn,无论出于何种原因。换句话说,他们在 Java 8 JVM 中使用 Rhino 1.7.7.1。所以这个问题仍然是相关的。
    • @Cheeso 很好,我很欣赏这个想法:) 然而,这仍然是一个相当古老的(2011 年)问题。
    【解决方案2】:

    根据 Rhino 版本的发行说明中所写的内容:

    • Rhino 1.5 - JavaScript 1.5/ECMA 脚本 3。
    • Rhino 1.6R2 - 与 Java 6 捆绑在一起 - JavaScript 1.5、ECMAScript for XML(E4X,JavaScript 1.6 的一部分)。
    • Rhino 1.6R6 - 支持剩余的 JavaScript 1.5(严格)。
    • Rhino 1.7R1 - JavaScript 1.7 新特性:生成器、迭代器、数组解析、let 表达式和解构赋值。
    • Rhino 1.7R3 - 与 Java 7 捆绑在一起 - JavaScript 1.7、部分 JavaScript 1.8 和 ECMAScript 5,严格模式除外。
    • Rhino 1.7R4 - 默认使用 JavaScript 1.7,修复 ES5 合规性,JavaScript 1.8 生成器表达式。
    • 犀牛 1.7R5 -
    • Rhino 1.7.6 - Array.find()、@Deprecated 注解、JavaScript 1.8 字符串。
    • Rhino 1.7.7 - 初步支持 ECMA Script 6、ES6 Math、Number 和 String 类。
    • Rhino 1.7.7.1 - 修复

    看来,Rhino 版本、Mozilla 的 JavaScript 版本和 ECMA Script 版本在范围上有很大的不同。

    【讨论】:

      【解决方案3】:

      来自 Java 12 文档:

      https://docs.oracle.com/en/java/javase/12/docs/api/jdk.scripting.nashorn/module-summary.html

      Nashorn 100% 符合 ECMA-262 标准 5.1 版

      【讨论】:

        【解决方案4】:

        关于仅与 ES2015/ES6 的兼容性,您可以从 Mozilla 的官方存储库中获得此​​网页:

        https://mozilla.github.io/rhino/compat/engines.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-10-27
          • 2013-11-03
          • 1970-01-01
          • 2014-08-25
          • 2010-09-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多