public class com.oracle.truffle.api.test.CallTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.test.CallTest
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.CallTest this
0: .line 66
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.api.test.CallTest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/CallTest;
public void test();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=1
start local 0 // com.oracle.truffle.api.test.CallTest this
0: .line 70
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 71
aload 1 /* runtime */
new com.oracle.truffle.api.test.CallTest$ConstantRootNode
dup
aload 0 /* this */
bipush 20
invokespecial com.oracle.truffle.api.test.CallTest$ConstantRootNode.<init>:(Lcom/oracle/truffle/api/test/CallTest;I)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 2 /* foo */
start local 2 // com.oracle.truffle.api.CallTarget foo
2: .line 72
aload 1 /* runtime */
new com.oracle.truffle.api.test.CallTest$ConstantRootNode
dup
aload 0 /* this */
bipush 22
invokespecial com.oracle.truffle.api.test.CallTest$ConstantRootNode.<init>:(Lcom/oracle/truffle/api/test/CallTest;I)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 3 /* bar */
start local 3 // com.oracle.truffle.api.CallTarget bar
3: .line 73
aload 1 /* runtime */
new com.oracle.truffle.api.test.CallTest$DualCallNode
dup
aload 0 /* this */
aload 2 /* foo */
aload 3 /* bar */
invokespecial com.oracle.truffle.api.test.CallTest$DualCallNode.<init>:(Lcom/oracle/truffle/api/test/CallTest;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 4 /* main */
start local 4 // com.oracle.truffle.api.CallTarget main
4: .line 74
aload 4 /* main */
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 5 /* result */
start local 5 // java.lang.Object result
5: .line 75
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 5 /* result */
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
6: .line 76
return
end local 5 // java.lang.Object result
end local 4 // com.oracle.truffle.api.CallTarget main
end local 3 // com.oracle.truffle.api.CallTarget bar
end local 2 // com.oracle.truffle.api.CallTarget foo
end local 1 // com.oracle.truffle.api.TruffleRuntime runtime
end local 0 // com.oracle.truffle.api.test.CallTest this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/test/CallTest;
1 7 1 runtime Lcom/oracle/truffle/api/TruffleRuntime;
2 7 2 foo Lcom/oracle/truffle/api/CallTarget;
3 7 3 bar Lcom/oracle/truffle/api/CallTarget;
4 7 4 main Lcom/oracle/truffle/api/CallTarget;
5 7 5 result Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "CallTest.java"
NestMembers:
com.oracle.truffle.api.test.CallTest$ConstantRootNode com.oracle.truffle.api.test.CallTest$DualCallNode
InnerClasses:
ConstantRootNode = com.oracle.truffle.api.test.CallTest$ConstantRootNode of com.oracle.truffle.api.test.CallTest
DualCallNode = com.oracle.truffle.api.test.CallTest$DualCallNode of com.oracle.truffle.api.test.CallTest