JDK-8236933 : JEP 372: Remove the Nashorn JavaScript Engine
  • Type: JEP
  • Component: core-libs
  • Sub-Component: jdk.nashorn
  • Priority: P3
  • Status: Closed
  • Resolution: Delivered
  • Fix Versions: 15
  • Submitted: 2020-01-10
  • Updated: 2020-12-15
  • Resolved: 2020-05-26
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8243497 :  
Description
Summary
-------

Remove the Nashorn JavaScript script engine and APIs, and the `jjs`
tool. The engine, the APIs, and the tool were
[deprecated for removal in Java 11](http://openjdk.java.net/jeps/335) with the
express intent to remove them in a future release.

Motivation
----------

The Nashorn JavaScript engine was first incorporated into JDK 8 via
[JEP 174](http://openjdk.java.net/jeps/174) as a replacement for the Rhino
scripting engine.  When it was released, it was a complete implementation of
the ECMAScript-262 5.1 standard.

With the rapid pace at which ECMAScript language constructs, along with APIs,
are adapted and modified, we have found Nashorn challenging to maintain.

Non-Goals
---------

This removal does not affect, in any way, the `javax.script` API.

Description
-----------

Two [JDK modules](http://openjdk.java.net/jeps/200#Design-principles) will be
permanently removed:

- `jdk.scripting.nashorn` -- contains the `jdk.nashorn.api.scripting` and 
  `jdk.nashorn.api.tree` packages.

- `jdk.scripting.nashorn.shell` -- contains the `jjs` tool.


Risks and Assumptions
---------------------

We assume that developers who rely on Nashorn have had enough notice of its
proposed removal to make alternative arrangements. The deprecation-for-removal
of Nashorn in JDK 11 was confirmed in June 2018, causing the proposed removal
to be flagged at every use of the `jdk.nashorn.*` API and the `jjs` tool in JDK
11, 12, and 13. During this period, no set of credible developers expressed a
clear desire to maintain Nashorn in JDK 14 and beyond.

Comments
Reviewed as well.
13-01-2020

Reviewed.
13-01-2020