Skip to content

Rhino 1.9.0

Choose a tag to compare

@gbrail gbrail released this 22 Dec 23:18

This release represents about a year of work on Rhino by a growing team of contributors.

Some of the improvements include:

  • Compatibility improvements in areas like destructuring and spread syntax.
  • Performance improvements from 10 to 30% in benchmarks like Delta Blue, Earley-Boyer, and Crypto in both interpreted and compiled mode
  • Better support for generics and other things when Java integration is used.

Some other improvements:

JavaScript Language Updates:

  • ES6+: Significant advancements in destructuring, spread syntax for
    arrays/objects, Symbol API, and improved let/const scoping.
    TypedArray.from/of and BigInt.asUintN/asIntN fixes.
  • RegExp: New features like named capture groups, lookbehind
    assertions, and Unicode mode support.
  • Future ES (ES2024/2025): Early implementation of proposals such as
    Promise.withResolvers, Promise.try, ArrayBuffer transfer methods, and
    new Set methods.

Core Engine Enhancements:

  • Major Refactoring: Extensive migration of built-in objects to a
    lambda-based architecture and a comprehensive overhaul of the
    interpreter bytecodes for better performance and maintainability.
  • Concurrency & Interop: Continued focus on thread safety improvements
    and enhanced Java interoperability, including better generics
    support.

Going forward -- we have lots of plans for Rhino, including some changes that may
affect compatibility for projects that embed Rhino into larger frameworks. We think
that these changes will be worth it because they will unlock better language
compatibility and performance.

As such, the next version going forward will be 2.0.0-SNAPSHOT.

16 different contributors gave their time and energy to Rhino 1.9.0.

Thanks to everyone who contributed!

New Contributors

Full Changelog: Rhino1_8_0_Release...Rhino1_9_0_Release