public class com.oracle.truffle.api.test.ChildNodeTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.test.ChildNodeTest
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.truffle.api.test.ChildNodeTest this
0: .line 79
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.api.test.ChildNodeTest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/ChildNodeTest;
public void test();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 // com.oracle.truffle.api.test.ChildNodeTest this
0: .line 83
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
astore 1 /* runtime */
start local 1 // com.oracle.truffle.api.TruffleRuntime runtime
1: .line 84
new com.oracle.truffle.api.test.ChildNodeTest$TestChildNode
dup
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.ChildNodeTest$TestChildNode.<init>:(Lcom/oracle/truffle/api/test/ChildNodeTest;)V
astore 2 /* leftChild */
start local 2 // com.oracle.truffle.api.test.ChildNodeTest$TestChildNode leftChild
2: .line 85
new com.oracle.truffle.api.test.ChildNodeTest$TestChildNode
dup
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.ChildNodeTest$TestChildNode.<init>:(Lcom/oracle/truffle/api/test/ChildNodeTest;)V
astore 3 /* rightChild */
start local 3 // com.oracle.truffle.api.test.ChildNodeTest$TestChildNode rightChild
3: .line 86
new com.oracle.truffle.api.test.ChildNodeTest$TestRootNode
dup
aload 0 /* this */
aload 2 /* leftChild */
aload 3 /* rightChild */
invokespecial com.oracle.truffle.api.test.ChildNodeTest$TestRootNode.<init>:(Lcom/oracle/truffle/api/test/ChildNodeTest;Lcom/oracle/truffle/api/test/ChildNodeTest$TestChildNode;Lcom/oracle/truffle/api/test/ChildNodeTest$TestChildNode;)V
astore 4 /* rootNode */
start local 4 // com.oracle.truffle.api.test.ChildNodeTest$TestRootNode rootNode
4: .line 87
aload 1 /* runtime */
aload 4 /* rootNode */
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 5 /* target */
start local 5 // com.oracle.truffle.api.CallTarget target
5: .line 88
aload 4 /* rootNode */
aload 2 /* leftChild */
invokevirtual com.oracle.truffle.api.test.ChildNodeTest$TestChildNode.getParent:()Lcom/oracle/truffle/api/nodes/Node;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
6: .line 89
aload 4 /* rootNode */
aload 3 /* rightChild */
invokevirtual com.oracle.truffle.api.test.ChildNodeTest$TestChildNode.getParent:()Lcom/oracle/truffle/api/nodes/Node;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: .line 90
aload 4 /* rootNode */
invokevirtual com.oracle.truffle.api.test.ChildNodeTest$TestRootNode.getChildren:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6 /* iterator */
start local 6 // java.util.Iterator iterator
8: .line 91
aload 2 /* leftChild */
aload 6 /* iterator */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: .line 92
aload 3 /* rightChild */
aload 6 /* iterator */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: .line 93
aload 6 /* iterator */
invokeinterface java.util.Iterator.hasNext:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
11: .line 94
aload 5 /* target */
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 7 /* result */
start local 7 // java.lang.Object result
12: .line 95
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 7 /* result */
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: .line 96
return
end local 7 // java.lang.Object result
end local 6 // java.util.Iterator iterator
end local 5 // com.oracle.truffle.api.CallTarget target
end local 4 // com.oracle.truffle.api.test.ChildNodeTest$TestRootNode rootNode
end local 3 // com.oracle.truffle.api.test.ChildNodeTest$TestChildNode rightChild
end local 2 // com.oracle.truffle.api.test.ChildNodeTest$TestChildNode leftChild
end local 1 // com.oracle.truffle.api.TruffleRuntime runtime
end local 0 // com.oracle.truffle.api.test.ChildNodeTest this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/api/test/ChildNodeTest;
1 14 1 runtime Lcom/oracle/truffle/api/TruffleRuntime;
2 14 2 leftChild Lcom/oracle/truffle/api/test/ChildNodeTest$TestChildNode;
3 14 3 rightChild Lcom/oracle/truffle/api/test/ChildNodeTest$TestChildNode;
4 14 4 rootNode Lcom/oracle/truffle/api/test/ChildNodeTest$TestRootNode;
5 14 5 target Lcom/oracle/truffle/api/CallTarget;
8 14 6 iterator Ljava/util/Iterator<Lcom/oracle/truffle/api/nodes/Node;>;
12 14 7 result Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testChildTraversalOrder();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 // com.oracle.truffle.api.test.ChildNodeTest this
0: .line 139
new com.oracle.truffle.api.test.ChildNodeTest$TestSubNode
dup
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.ChildNodeTest$TestSubNode.<init>:(Lcom/oracle/truffle/api/test/ChildNodeTest;)V
astore 1 /* node */
start local 1 // com.oracle.truffle.api.test.ChildNodeTest$TestSubNode node
1: .line 140
aload 1 /* node */
invokevirtual com.oracle.truffle.api.test.ChildNodeTest$TestSubNode.getChildren:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 2 /* iterator */
start local 2 // java.util.Iterator iterator
2: .line 142
aload 1 /* node */
iconst_0
invokevirtual com.oracle.truffle.api.test.ChildNodeTest$TestSubNode.getChild:(I)Lcom/oracle/truffle/api/nodes/Node;
aload 2 /* iterator */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
3: .line 143
aload 1 /* node */
iconst_1
invokevirtual com.oracle.truffle.api.test.ChildNodeTest$TestSubNode.getChild:(I)Lcom/oracle/truffle/api/nodes/Node;
aload 2 /* iterator */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
4: .line 144
aload 1 /* node */
iconst_2
invokevirtual com.oracle.truffle.api.test.ChildNodeTest$TestSubNode.getChild:(I)Lcom/oracle/truffle/api/nodes/Node;
aload 2 /* iterator */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
5: .line 145
aload 1 /* node */
iconst_3
invokevirtual com.oracle.truffle.api.test.ChildNodeTest$TestSubNode.getChild:(I)Lcom/oracle/truffle/api/nodes/Node;
aload 2 /* iterator */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
6: .line 147
aload 2 /* iterator */
invokeinterface java.util.Iterator.hasNext:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
7: .line 148
return
end local 2 // java.util.Iterator iterator
end local 1 // com.oracle.truffle.api.test.ChildNodeTest$TestSubNode node
end local 0 // com.oracle.truffle.api.test.ChildNodeTest this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/test/ChildNodeTest;
1 8 1 node Lcom/oracle/truffle/api/test/ChildNodeTest$TestSubNode;
2 8 2 iterator Ljava/util/Iterator<Lcom/oracle/truffle/api/nodes/Node;>;
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "ChildNodeTest.java"
NestMembers:
com.oracle.truffle.api.test.ChildNodeTest$TestBaseNode com.oracle.truffle.api.test.ChildNodeTest$TestChildNode com.oracle.truffle.api.test.ChildNodeTest$TestRootNode com.oracle.truffle.api.test.ChildNodeTest$TestSubNode
InnerClasses:
TestBaseNode = com.oracle.truffle.api.test.ChildNodeTest$TestBaseNode of com.oracle.truffle.api.test.ChildNodeTest
TestChildNode = com.oracle.truffle.api.test.ChildNodeTest$TestChildNode of com.oracle.truffle.api.test.ChildNodeTest
TestRootNode = com.oracle.truffle.api.test.ChildNodeTest$TestRootNode of com.oracle.truffle.api.test.ChildNodeTest
TestSubNode = com.oracle.truffle.api.test.ChildNodeTest$TestSubNode of com.oracle.truffle.api.test.ChildNodeTest