public class com.oracle.truffle.trufflenode.node.ObjectTemplateNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.trufflenode.node.ObjectTemplateNode
super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] members;
descriptor: [Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Children()
private final com.oracle.truffle.js.runtime.JSContext context;
descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[], com.oracle.truffle.js.runtime.JSContext);
descriptor: ([Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;Lcom/oracle/truffle/js/runtime/JSContext;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.trufflenode.node.ObjectTemplateNode.members:[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
2: aload 0
aload 2
putfield com.oracle.truffle.trufflenode.node.ObjectTemplateNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/trufflenode/node/ObjectTemplateNode;
0 4 1 members [Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
0 4 2 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
members
context
public com.oracle.truffle.api.object.DynamicObject executeWithObject(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
getfield com.oracle.truffle.trufflenode.node.ObjectTemplateNode.members:[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
iload 3
aaload
aload 1
aload 2
aload 0
getfield com.oracle.truffle.trufflenode.node.ObjectTemplateNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSContext;)V
3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
aload 0
getfield com.oracle.truffle.trufflenode.node.ObjectTemplateNode.members:[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
arraylength
if_icmplt 2
end local 3 5: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/trufflenode/node/ObjectTemplateNode;
0 6 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 6 2 object Lcom/oracle/truffle/api/object/DynamicObject;
1 5 3 i I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
frame
object
public static com.oracle.truffle.trufflenode.node.ObjectTemplateNode fromObjectTemplate(com.oracle.truffle.trufflenode.info.ObjectTemplate, com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.trufflenode.GraalJSAccess);
descriptor: (Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/GraalJSAccess;)Lcom/oracle/truffle/trufflenode/node/ObjectTemplateNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=18, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 0
invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.getAccessors:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 11
StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.GraalJSAccess java.util.List top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.trufflenode.info.Accessor
astore 4
start local 4 3: aload 4
aload 1
invokevirtual com.oracle.truffle.trufflenode.info.Accessor.getFunctions:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/util/Pair;
astore 6
start local 6 4: aconst_null
astore 7
start local 7 5: aconst_null
astore 8
start local 8 6: aload 6
invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
ifnull 8
7: aload 1
aload 6
invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData
aconst_null
invokestatic com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.create:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
getstatic com.oracle.truffle.trufflenode.GraalJSAccess.HOLDER_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
invokestatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode$MakeMethodNode.createWithKey:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/api/object/HiddenKey;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
astore 7
8: StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.GraalJSAccess java.util.List com.oracle.truffle.trufflenode.info.Accessor java.util.Iterator com.oracle.truffle.js.runtime.util.Pair com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
StackMap stack:
aload 6
invokevirtual com.oracle.truffle.js.runtime.util.Pair.getSecond:()Ljava/lang/Object;
ifnull 10
9: aload 1
aload 6
invokevirtual com.oracle.truffle.js.runtime.util.Pair.getSecond:()Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData
aconst_null
invokestatic com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.create:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
getstatic com.oracle.truffle.trufflenode.GraalJSAccess.HOLDER_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
invokestatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode$MakeMethodNode.createWithKey:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/api/object/HiddenKey;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
astore 8
10: StackMap locals:
StackMap stack:
aload 3
aload 4
invokevirtual com.oracle.truffle.trufflenode.info.Accessor.getName:()Ljava/lang/String;
iconst_0
aload 4
invokevirtual com.oracle.truffle.trufflenode.info.Accessor.getAttributes:()I
aload 7
aload 8
invokestatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode.newAccessorMember:(Ljava/lang/Object;ZILcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 7 end local 6 end local 4 11: StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.GraalJSAccess java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
12: aload 0
invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.getValues:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 45
StackMap locals:
StackMap stack:
13: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.trufflenode.info.Value
astore 4
start local 4 14: aload 4
invokevirtual com.oracle.truffle.trufflenode.info.Value.getValue:()Ljava/lang/Object;
astore 7
start local 7 15: aload 7
instanceof com.oracle.truffle.trufflenode.info.FunctionTemplate
ifeq 19
16: aload 7
checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
astore 8
start local 8 17: aload 2
aload 1
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
aload 8
invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateGetFunction:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
invokestatic com.oracle.truffle.js.nodes.access.JSConstantNode.create:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/JSConstantNode;
astore 6
end local 8 start local 6 18: goto 20
end local 6 19: StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.GraalJSAccess java.util.List com.oracle.truffle.trufflenode.info.Value java.util.Iterator top java.lang.Object
StackMap stack:
aload 7
invokestatic com.oracle.truffle.js.nodes.access.JSConstantNode.create:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/JSConstantNode;
astore 6
start local 6 20: StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.GraalJSAccess java.util.List com.oracle.truffle.trufflenode.info.Value java.util.Iterator com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Object
StackMap stack:
aload 4
invokevirtual com.oracle.truffle.trufflenode.info.Value.getName:()Ljava/lang/Object;
astore 8
start local 8 21: aload 4
invokevirtual com.oracle.truffle.trufflenode.info.Value.getAttributes:()I
istore 9
start local 9 22: aload 7
instanceof com.oracle.truffle.js.runtime.util.Pair
ifeq 37
23: aload 7
checkcast com.oracle.truffle.js.runtime.util.Pair
astore 10
start local 10 24: aload 1
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
astore 11
start local 11 25: aload 10
invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
astore 12
start local 12 26: aload 10
invokevirtual com.oracle.truffle.js.runtime.util.Pair.getSecond:()Ljava/lang/Object;
astore 13
start local 13 27: aload 12
ifnonnull 28
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
goto 29
StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.GraalJSAccess java.util.List com.oracle.truffle.trufflenode.info.Value java.util.Iterator com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Object java.lang.Object int com.oracle.truffle.js.runtime.util.Pair com.oracle.truffle.js.runtime.JSRealm java.lang.Object java.lang.Object
StackMap stack:
28: aload 2
aload 11
aload 12
invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateGetFunction:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
29: astore 14
start local 14 30: aload 13
ifnonnull 31
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
goto 32
StackMap locals: java.lang.Object
StackMap stack:
31: aload 2
aload 11
aload 13
invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateGetFunction:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
32: astore 15
start local 15 33: aload 14
invokestatic com.oracle.truffle.js.nodes.access.JSConstantNode.create:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/JSConstantNode;
astore 16
start local 16 34: aload 15
invokestatic com.oracle.truffle.js.nodes.access.JSConstantNode.create:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/JSConstantNode;
astore 17
start local 17 35: aload 3
aload 8
iconst_0
iload 9
aload 16
aload 17
invokestatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode.newAccessorMember:(Ljava/lang/Object;ZILcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 36: goto 45
StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.GraalJSAccess java.util.List com.oracle.truffle.trufflenode.info.Value java.util.Iterator com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Object java.lang.Object int
StackMap stack:
37: aload 8
instanceof java.lang.String
ifne 38
aload 8
instanceof com.oracle.truffle.js.runtime.Symbol
ifeq 40
38: StackMap locals:
StackMap stack:
aload 3
aload 8
iconst_0
iload 9
aload 6
invokestatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode.newDataMember:(Ljava/lang/Object;ZILcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
39: goto 45
StackMap locals:
StackMap stack:
40: aload 8
instanceof com.oracle.truffle.api.object.HiddenKey
ifeq 44
41: aload 0
invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.hasPropertyHandler:()Z
ifne 45
42: aload 3
new com.oracle.truffle.trufflenode.node.ObjectTemplateNode$InternalFieldNode
dup
iconst_0
iload 9
aload 8
checkcast com.oracle.truffle.api.object.HiddenKey
aload 7
aload 1
invokespecial com.oracle.truffle.trufflenode.node.ObjectTemplateNode$InternalFieldNode.<init>:(ZILcom/oracle/truffle/api/object/HiddenKey;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
43: goto 45
44: StackMap locals:
StackMap stack:
aload 3
aload 8
invokestatic com.oracle.truffle.js.nodes.access.JSConstantNode.create:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/JSConstantNode;
iconst_0
iload 9
aload 6
invokestatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode.newComputedDataMember:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZILcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 7 end local 6 end local 4 45: StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.GraalJSAccess java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
46: new com.oracle.truffle.trufflenode.node.ObjectTemplateNode
dup
aload 3
getstatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.EMPTY:[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[]
aload 1
invokespecial com.oracle.truffle.trufflenode.node.ObjectTemplateNode.<init>:([Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;Lcom/oracle/truffle/js/runtime/JSContext;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 template Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
0 47 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 47 2 graalJSAccess Lcom/oracle/truffle/trufflenode/GraalJSAccess;
1 47 3 members Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;>;
3 11 4 accessor Lcom/oracle/truffle/trufflenode/info/Accessor;
4 11 6 pair Lcom/oracle/truffle/js/runtime/util/Pair<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;>;
5 11 7 getterNode Lcom/oracle/truffle/js/nodes/JavaScriptNode;
6 11 8 setterNode Lcom/oracle/truffle/js/nodes/JavaScriptNode;
14 45 4 value Lcom/oracle/truffle/trufflenode/info/Value;
18 19 6 valueNode Lcom/oracle/truffle/js/nodes/JavaScriptNode;
20 45 6 valueNode Lcom/oracle/truffle/js/nodes/JavaScriptNode;
15 45 7 propertyValue Ljava/lang/Object;
17 18 8 functionTempl Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
21 45 8 name Ljava/lang/Object;
22 45 9 attributes I
24 36 10 pair Lcom/oracle/truffle/js/runtime/util/Pair<**>;
25 36 11 realm Lcom/oracle/truffle/js/runtime/JSRealm;
26 36 12 getterTemplate Ljava/lang/Object;
27 36 13 setterTemplate Ljava/lang/Object;
30 36 14 getter Ljava/lang/Object;
33 36 15 setter Ljava/lang/Object;
34 36 16 getterNode Lcom/oracle/truffle/js/nodes/JavaScriptNode;
35 36 17 setterNode Lcom/oracle/truffle/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
template
context
graalJSAccess
}
SourceFile: "ObjectTemplateNode.java"
NestMembers:
com.oracle.truffle.trufflenode.node.ObjectTemplateNode$InternalFieldNode
InnerClasses:
public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
public final MakeMethodNode = com.oracle.truffle.js.nodes.access.ObjectLiteralNode$MakeMethodNode of com.oracle.truffle.js.nodes.access.ObjectLiteralNode
public abstract ObjectLiteralMemberNode = com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode of com.oracle.truffle.js.nodes.access.ObjectLiteralNode
private final InternalFieldNode = com.oracle.truffle.trufflenode.node.ObjectTemplateNode$InternalFieldNode of com.oracle.truffle.trufflenode.node.ObjectTemplateNode