public class com.oracle.truffle.api.test.FrameTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.test.FrameTest
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.FrameTest this
0: .line 95
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.api.test.FrameTest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/FrameTest;
public void test();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=8, args_size=1
start local 0 // com.oracle.truffle.api.test.FrameTest this
0: .line 99
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 100
new com.oracle.truffle.api.frame.FrameDescriptor
dup
invokespecial com.oracle.truffle.api.frame.FrameDescriptor.<init>:()V
astore 2 /* frameDescriptor */
start local 2 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
2: .line 101
ldc "localVar"
astore 3 /* varName */
start local 3 // java.lang.String varName
3: .line 102
aload 2 /* frameDescriptor */
aload 3 /* varName */
getstatic com.oracle.truffle.api.frame.FrameSlotKind.Int:Lcom/oracle/truffle/api/frame/FrameSlotKind;
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.addFrameSlot:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/FrameSlotKind;)Lcom/oracle/truffle/api/frame/FrameSlot;
astore 4 /* slot */
start local 4 // com.oracle.truffle.api.frame.FrameSlot slot
4: .line 103
new com.oracle.truffle.api.test.FrameTest$TestRootNode
dup
aload 0 /* this */
aload 2 /* frameDescriptor */
new com.oracle.truffle.api.test.FrameTest$AssignLocal
dup
aload 0 /* this */
aload 4 /* slot */
invokespecial com.oracle.truffle.api.test.FrameTest$AssignLocal.<init>:(Lcom/oracle/truffle/api/test/FrameTest;Lcom/oracle/truffle/api/frame/FrameSlot;)V
new com.oracle.truffle.api.test.FrameTest$ReadLocal
dup
aload 0 /* this */
aload 4 /* slot */
invokespecial com.oracle.truffle.api.test.FrameTest$ReadLocal.<init>:(Lcom/oracle/truffle/api/test/FrameTest;Lcom/oracle/truffle/api/frame/FrameSlot;)V
invokespecial com.oracle.truffle.api.test.FrameTest$TestRootNode.<init>:(Lcom/oracle/truffle/api/test/FrameTest;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/api/test/FrameTest$TestChildNode;Lcom/oracle/truffle/api/test/FrameTest$TestChildNode;)V
astore 5 /* rootNode */
start local 5 // com.oracle.truffle.api.test.FrameTest$TestRootNode rootNode
5: .line 104
aload 1 /* runtime */
aload 5 /* rootNode */
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 6 /* target */
start local 6 // com.oracle.truffle.api.CallTarget target
6: .line 105
aload 6 /* 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
7: .line 106
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
8: .line 107
aload 2 /* frameDescriptor */
aload 3 /* varName */
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.removeFrameSlot:(Ljava/lang/Object;)V
9: .line 108
aload 2 /* frameDescriptor */
aload 3 /* varName */
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
10: .line 109
return
end local 7 // java.lang.Object result
end local 6 // com.oracle.truffle.api.CallTarget target
end local 5 // com.oracle.truffle.api.test.FrameTest$TestRootNode rootNode
end local 4 // com.oracle.truffle.api.frame.FrameSlot slot
end local 3 // java.lang.String varName
end local 2 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
end local 1 // com.oracle.truffle.api.TruffleRuntime runtime
end local 0 // com.oracle.truffle.api.test.FrameTest this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/test/FrameTest;
1 11 1 runtime Lcom/oracle/truffle/api/TruffleRuntime;
2 11 2 frameDescriptor Lcom/oracle/truffle/api/frame/FrameDescriptor;
3 11 3 varName Ljava/lang/String;
4 11 4 slot Lcom/oracle/truffle/api/frame/FrameSlot;
5 11 5 rootNode Lcom/oracle/truffle/api/test/FrameTest$TestRootNode;
6 11 6 target Lcom/oracle/truffle/api/CallTarget;
7 11 7 result Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
public void framesCanBeMaterialized();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 // com.oracle.truffle.api.test.FrameTest this
0: .line 176
invokestatic com.oracle.truffle.api.test.CompileImmediatelyCheck.isCompileImmediately:()Z
invokestatic org.junit.Assume.assumeFalse:(Z)V
1: .line 177
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
astore 1 /* runtime */
start local 1 // com.oracle.truffle.api.TruffleRuntime runtime
2: .line 197
new com.oracle.truffle.api.test.FrameTest$1FrameRootNode
dup
aload 0 /* this */
aload 1 /* runtime */
invokespecial com.oracle.truffle.api.test.FrameTest$1FrameRootNode.<init>:(Lcom/oracle/truffle/api/test/FrameTest;Lcom/oracle/truffle/api/TruffleRuntime;)V
astore 2 /* frn */
start local 2 // com.oracle.truffle.api.test.FrameTest$1FrameRootNode frn
3: .line 198
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
aload 2 /* frn */
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.RootCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 3 /* ret */
start local 3 // java.lang.Object ret
4: .line 199
ldc "Returns itself"
aload 2 /* frn */
aload 3 /* ret */
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
5: .line 200
return
end local 3 // java.lang.Object ret
end local 2 // com.oracle.truffle.api.test.FrameTest$1FrameRootNode frn
end local 1 // com.oracle.truffle.api.TruffleRuntime runtime
end local 0 // com.oracle.truffle.api.test.FrameTest this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/FrameTest;
2 6 1 runtime Lcom/oracle/truffle/api/TruffleRuntime;
3 6 2 frn Lcom/oracle/truffle/api/test/FrameTest$1FrameRootNode;
4 6 3 ret Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "FrameTest.java"
NestMembers:
com.oracle.truffle.api.test.FrameTest$1FrameRootNode com.oracle.truffle.api.test.FrameTest$AssignLocal com.oracle.truffle.api.test.FrameTest$FrameSlotNode com.oracle.truffle.api.test.FrameTest$ReadLocal com.oracle.truffle.api.test.FrameTest$TestChildNode com.oracle.truffle.api.test.FrameTest$TestRootNode
InnerClasses:
FrameRootNode = com.oracle.truffle.api.test.FrameTest$1FrameRootNode
AssignLocal = com.oracle.truffle.api.test.FrameTest$AssignLocal of com.oracle.truffle.api.test.FrameTest
abstract FrameSlotNode = com.oracle.truffle.api.test.FrameTest$FrameSlotNode of com.oracle.truffle.api.test.FrameTest
ReadLocal = com.oracle.truffle.api.test.FrameTest$ReadLocal of com.oracle.truffle.api.test.FrameTest
abstract TestChildNode = com.oracle.truffle.api.test.FrameTest$TestChildNode of com.oracle.truffle.api.test.FrameTest
TestRootNode = com.oracle.truffle.api.test.FrameTest$TestRootNode of com.oracle.truffle.api.test.FrameTest