17. map
__proto__
context …
flags 0
spill null
arrayData
L0 x
L1 y
L2
L3
Key Getter Setter
“x” x getter x setter
“y” y getter y setter
map
__proto__
…
2013
42
EMPTY_ARRAY
18. Nashorn的对象模型
function Point(x, y) {
this.x = x;
this.y = y;
}
var p = new Point(1, 2);
p.z = 3; p.a = 4; p.b = 5;
p[0] = 6; p[1] = 7;
19. map
__proto__
context …
flags 0
spill
arrayData
L0 x
L1 y
L2 z
L3 a
Key Getter Setter
“x” x getter x setter
“y” y getter y setter
“z” z getter z setter
“a” a getter a setter
“b” b getter b setter
map
__proto__
…
1
2
0 6
1 7
b
5
3
4
22. 参考资料
• Nashorn, Jim Laskey, JVM Language Summit
2011
• CON5390 - Nashorn: Optimizing JavaScript
and Dynamic Language Execution on the
JVM, JavaOne 2012
• BOF6661 - Nashorn, Node, and Java
Persistence, JavaOne 2012