Java' Rhino实现实现了哪个JavaScript (ECMAScript)版本(更新策略是什么?)

Which JavaScript (ECMAScript) version does Java's Rhino implementation implement (and what's the update policy?)

本文关键字:实现 ECMAScript 版本 更新 是什么 策略 Rhino Java JavaScript      更新时间:2023-09-26

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

从Rhino版本的发行说明中写的:

  • Rhino 1.5 - JavaScript 1.5/ECMA Script
  • Rhino 1.6 r2 -捆绑Java 6 - JavaScript 1.5, ECMAScript for XML (E4X,部分JavaScript 1.6)。
  • Rhino 1.6R6 -支持剩余的JavaScript 1.5(严格)。
  • Rhino 1.7 r1 - JavaScript 1.7的新特性:生成器、迭代器、数组推导式、let表达式和解构赋值。
  • Rhino 1.7 r3 -捆绑Java 7 - JavaScript 1.7,部分JavaScript 1.8和ECMAScript 5(严格模式除外)。
  • Rhino 1.7 r4 - JavaScript 1.7默认,ES5兼容性修复,JavaScript 1.8生成器表达式
  • Rhino 1.7R5 -
  • Rhino 1.7.6 - Array.find(), @Deprecated annotation, JavaScript 1.8 String.
  • Rhino 1.7.7 -初始支持ECMA Script 6, ES6数学,数字和字符串类。
  • Rhino 1.7.7.1 -修复

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

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

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

JDK 1.8 60中的Nashorn支持ES 5.1,可能会有几个ES2015扩展;很难从Oracle源代码中找到明确的兼容性声明。据说,JDK 9 Nashorn应该"完全支持"。ES2015,但是我还是没能找到官方的来源。

edit -注意,即使是Nashorn也将很快不受支持;JDK 13吗?14 ?差不多吧

以下是原始答案。


附带的JDK(来自Sun)中的Rhino版本是1.6R2。这是古老的。据推测,它将在1.7版本中更新。

你可以随时从Mozilla下载Rhino并使用他们的集成工具。我用过Sun的,虽然它非常简单,但还有很多需要改进的地方。

edit -至于它是哪个ECMAScript标准,好吧,它是Mozilla的发行版,所以他们有自己的修改。然而,1.6R2太旧了,它甚至没有". foreach ()"。

来自Java 12文档:

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

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

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

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