Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Which version of the ECMAScript standard does Java's JavaScript engine Rhino support, how much work is going into fixing bugs and keeping the implementation in sync with the latest standardized version?

like image 229
soc Avatar asked Jul 15 '11 00:07

soc


People also ask

How do I know what version of ECMAScript I have?

ECMAScript support different object on each version. To detect the ECMAScript version we can check the object exits into a browser or not. If that object is identified that means ECMA Version supported into the browser.

What version of JavaScript does ServiceNow use?

This is a matter of architecture rather than a simple functional change. Unfortunately ServiceNow uses the ageing Mozilla Rhino server side JavaScript engine.

What is ECMAScript and different versions of ECMAScript?

JavaScript was invented by Brendan Eich in 1995, and became an ECMA standard in 1997. ECMAScript is the official name of the language. ECMAScript versions have been abbreviated to ES1, ES2, ES3, ES5, and ES6. Since 2016 new versions are named by year (ECMAScript 2016 / 2017 / 2018).


2 Answers

From what is written in the release notes of the versions of Rhino:

  • Rhino 1.5 - JavaScript 1.5/ ECMA Script 3.
  • Rhino 1.6R2 - bundled with Java 6 - JavaScript 1.5, ECMAScript for XML (E4X, part of JavaScript 1.6).
  • Rhino 1.6R6 - support for the remaining JavaScript 1.5 (strict).
  • Rhino 1.7R1 - JavaScript 1.7 new features: generators, iterators, array comprehensions, let expressions, and destructuring assignment.
  • Rhino 1.7R3 - bundled with Java 7 - JavaScript 1.7, partial JavaScript 1.8 and ECMAScript 5 except for strict mode.
  • Rhino 1.7R4 - JavaScript 1.7 is default, ES5 compliance fixes, JavaScript 1.8 generator expressions.
  • Rhino 1.7R5 -
  • Rhino 1.7.6 - Array.find(), @Deprecated annotation, JavaScript 1.8 String.
  • Rhino 1.7.7 - Initial support for ECMA Script 6, ES6 Math, Number and String class.
  • Rhino 1.7.7.1 - fixes

It seems that Rhino versions, Mozilla's JavaScript versions and ECMA Script versions are very different in scope.

like image 126
Peter Kofler Avatar answered Sep 19 '22 18:09

Peter Kofler


Note: this question is far out of date and not useful.

The question was asked in 2011, and the JDK (as of late fall 2015) no longer ships with Rhino at all; the question referred to JDK 1.6, though JDK 1.7 was released a couple weeks afterwards.

Nashorn in JDK 1.8 60 supports ES 5.1, possibly with a couple of ES2015 extensions; it's hard to find an explicit compatibility claim from Oracle sources. Supposedly, JDK 9 Nashorn is supposed to "fully support" ES2015, but again I've been unsuccessful locating official sources.

Below is the original answer.


Rhino in the shipped JDK (from Sun) is version 1.6R2. It's ancient. Supposedly it's going to be updated in the 1.7 release.

You can always download Rhino from Mozilla and use their integration facility. I've used the Sun one, and while it's dirt simple it leaves a lot to be desired.

edit — as to which ECMAScript standard it is, well, it's a Mozilla release so they've got their own modifications. However 1.6R2 is so old that it doesn't even have things like ".forEach()".

like image 44
Pointy Avatar answered Sep 21 '22 18:09

Pointy