View source | View content page | Page history | Printable version   

Projects:Add JavaScript Engine/Specs

Technical Specification

New JS Engine

A new JS engine must be chose because Nashorn has been deprecated since Java 11 and is removed in Java 15. Those are the main criteria:

With those criteria, 3 options have been considered:

 * It is used in Discount Engine
 * Full ECMAScript 6 support
 * Very big and has too much dependencies
 * Used in Node.js, chromium and electron
 * Full ECMAScript 6 support
 * Needs native libraries for different OS (cumbersome for multi-platform)
 * Started to regain community traction after Nashorn removal
 * Small library and no dependencies
 * Integrates with Script Engine API
 * Has no full support for ECMAScript 6, some features are missing

RhinoJS has been chosen following the criteria previously mentioned. It works well for this small scope.

Removal of other Rhino jars(yuicompressor)

Yui-compressor is a library that was being used previously to compress old(version <=2.5) JavaScript. It also compressed some CSS, but this was not working correctly.

In the scope of this project it is removed and substituted by JSMin, that does a similar job, although with 20% less compression ratio.

Retrieved from ""

This page has been accessed 359 times. This page was last modified on 26 October 2020, at 09:26. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.