Review request for JDK-8019157 - Avoid calling ScriptObject.setProto() if possible

Hannes Wallnoefer hannes.wallnoefer at
Wed Jun 26 02:44:41 PDT 2013

Please review JDK-8019157 - Avoid calling ScriptObject.setProto() if 

Bug description pasted below for your convenience.

Calling ScriptObject.setProto() is quite expensive. One expensive part 
is invalidating the object's property map, which involves a WeakHashMap 
lookup in PropertyMap.checkProtoHistory().

Invaliding the property map is necessary if the property map may be in 
use with other prototypes. However, many built-in objects including 
arrays (in fact all built-ins except for Object) are always constructed 
with the same combination of prototype and property map.

In this case we can significantly improve object creation overhead by 
providing a way to directly set both prototype and property map.


More information about the nashorn-dev mailing list