Please review JDK-8035948 - Redesign property listeners for shared classes:
http://cr.openjdk.java.net/~hannesw/8035948/
This prepares property maps and property listeners to work better with
classes that are reused between JS environments. The central ideas are:
- Reuse property maps between globals in order to minimize polymorphism.
- Use SoftReferences for property map history to avoid memory leaks
- Redesign property listeners to be attatched to property maps only
since ScriptObjects are specific to one JS environment.
- Reduce number of property listeners by only creating them when
needed (when a callsite accesses an inherited property).
- Reduce number of prototype history lookups in property maps by using
a unique combination of prototype/property maps from the start.
Actual class sharing functionality is coming in a later webrev. Let me
know if you have any questions about this.
Hannes