Review request for JDK-8006766: Array-like access to characters of a string is slow

Hannes Wallnoefer hannes.wallnoefer at oracle.com
Thu Jan 24 06:35:37 PST 2013


Please review JDK-8006766 (Array-like access to characters of a string 
is slow) at

http://cr.openjdk.java.net/~hannesw/8006766/

This overrides ScriptObject.findGetIndexMethod() in NativeString to 
avoid creating a NativeString wrapper for array-like access to the 
characters of a string (e.g. "foo"[0]). Performance gain as measured by 
test/examples/string-micro.js is about 3x.

The larger part of this patch involves changing the signature of 
ScriptObject.lookup() and related methods to take the LinkRequest object 
as second parameter.

This is necessary to make sure we're actually dealing with a primitive 
JS string vs. a wrapped String object in 
NativeString.findGetIndexMethod(). It also helped rewrite my patch for 
JDK-8006570 (this-value for non-strict functions should be converted to 
object) in a much nicer way, doing it locally in 
ScriptFunction.findCallMethod() rather than centrally in 
NashornLinker.getGuardedInvocation().

Hannes



More information about the nashorn-dev mailing list