Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8236933

JEP 372: Remove the Nashorn JavaScript Engine

XMLWordPrintable

    • Jim Laskey
    • Feature
    • Open
    • JDK
    • jdk dash dev at openjdk dot java dot net
    • M
    • M
    • 372

      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 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 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 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.

            jlaskey Jim Laskey
            jlaskey Jim Laskey
            Jim Laskey Jim Laskey
            Hannes Wallnoefer, Sundararajan Athijegannathan
            Mark Reinhold
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: