This is an archived page. It's not actively maintained.

Rhino wish list

The following are some ideas of ways people can contribute to Rhino. If something below strikes your fancy, write to norrisboyd (at) gmail (dot) com.

Code Modernization

Support for changing the prototype of an object using Object.setPrototypeOf

Being able to change the internal __proto__ property of an object has many advantages. For example, in some cases it's necessary to return functions from constructors. This is only possible in JavaScript if we use the constructor as a factory. However since the factory returns a function it wouldn't be an instance of the constructor, and wouldn't be able to share methods on its prototype.

For more information see this bug I submitted.

Implement ECMAScript edition 5

This is underway, see the tracking bug.

Analyze regexp differences between Rhino and Java, replace if possible

Rhino's regexp engine was developed before Java had support for regular expressions. It would be good to replace Rhino's implementation with Java's implementation which we hope will be faster and more correct.

First we need to look at the differences between the Java and ECMAScript regexp grammars. If they are identical, we can substitute easily. If they are different, we need to understand the differences and come up with a design for detecting and handling the ECMAScript-specific cases. Then we need to replace the Rhino implementation with calls to the Java implementation. See Bug 390659

Remove uses of old Java collections

Remove uses of old Java collections (Vector, etc.) and replace with modern equivalents. Take care not to compromise thread safety.


Remove Rhino debugger's dependency on downloaded Swing classes



Analyze and improve benchmark performance

Analyze benchmarks and see how Rhino can improve performance.

Probably the best starting point is the V8 benchmarks.




Provide APIs to access the AST of parsed scripts. Done


Bugs and enhancements

The Rhino Bug List contains a number of bugs and enhancement requests. Work on any of those is always welcome.


Norrisboyd 05:06, 11 March 2008 (PDT)