class com.oracle.truffle.api.test.StackTraceTest$3 implements java.util.concurrent.Callable<java.lang.Void>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.test.StackTraceTest$3
super_class: java.lang.Object
{
final com.oracle.truffle.api.test.StackTraceTest this$0;
descriptor: Lcom/oracle/truffle/api/test/StackTraceTest;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.api.test.StackTraceTest);
descriptor: (Lcom/oracle/truffle/api/test/StackTraceTest;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.truffle.api.test.StackTraceTest$3 this
0: .line 252
aload 0 /* this */
aload 1
putfield com.oracle.truffle.api.test.StackTraceTest$3.this$0:Lcom/oracle/truffle/api/test/StackTraceTest;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.api.test.StackTraceTest$3 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/StackTraceTest$3;
MethodParameters:
Name Flags
this$0 final
public java.lang.Void call();
descriptor: ()Ljava/lang/Void;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 // com.oracle.truffle.api.test.StackTraceTest$3 this
0: .line 255
new com.oracle.truffle.api.test.StackTraceTest$ReturnStackTraceNode
dup
invokespecial com.oracle.truffle.api.test.StackTraceTest$ReturnStackTraceNode.<init>:()V
invokestatic com.oracle.truffle.api.test.StackTraceTest.createCallTarget:(Lcom/oracle/truffle/api/test/StackTraceTest$TestCallNode;)Lcom/oracle/truffle/api/CallTarget;
astore 1 /* createStackTrace */
start local 1 // com.oracle.truffle.api.CallTarget createStackTrace
1: .line 256
new com.oracle.truffle.api.test.StackTraceTest$TestCallWithCallTargetNode
dup
aload 1 /* createStackTrace */
invokespecial com.oracle.truffle.api.test.StackTraceTest$TestCallWithCallTargetNode.<init>:(Lcom/oracle/truffle/api/CallTarget;)V
invokestatic com.oracle.truffle.api.test.StackTraceTest.createCallTarget:(Lcom/oracle/truffle/api/test/StackTraceTest$TestCallNode;)Lcom/oracle/truffle/api/CallTarget;
astore 2 /* callTarget */
start local 2 // com.oracle.truffle.api.CallTarget callTarget
2: .line 257
new com.oracle.truffle.api.test.StackTraceTest$TestCallWithIndirectTargetNode
dup
aload 2 /* callTarget */
invokespecial com.oracle.truffle.api.test.StackTraceTest$TestCallWithIndirectTargetNode.<init>:(Lcom/oracle/truffle/api/CallTarget;)V
invokestatic com.oracle.truffle.api.test.StackTraceTest.createCallTarget:(Lcom/oracle/truffle/api/test/StackTraceTest$TestCallNode;)Lcom/oracle/truffle/api/CallTarget;
astore 3 /* indirect */
start local 3 // com.oracle.truffle.api.CallTarget indirect
3: .line 258
new com.oracle.truffle.api.test.StackTraceTest$TestCallWithDirectTargetNode
dup
aload 3 /* indirect */
invokespecial com.oracle.truffle.api.test.StackTraceTest$TestCallWithDirectTargetNode.<init>:(Lcom/oracle/truffle/api/CallTarget;)V
invokestatic com.oracle.truffle.api.test.StackTraceTest.createCallTarget:(Lcom/oracle/truffle/api/test/StackTraceTest$TestCallNode;)Lcom/oracle/truffle/api/CallTarget;
astore 4 /* direct */
start local 4 // com.oracle.truffle.api.CallTarget direct
4: .line 260
iconst_0
istore 5 /* j */
start local 5 // int j
5: goto 18
6: .line 261
StackMap locals: com.oracle.truffle.api.test.StackTraceTest$3 com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int
StackMap stack:
aload 4 /* direct */
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.StackTraceTest$StackTrace
astore 6 /* stack */
start local 6 // com.oracle.truffle.api.test.StackTraceTest$StackTrace stack
7: .line 262
aload 6 /* stack */
invokestatic com.oracle.truffle.api.test.StackTraceTest.assertInvariants:(Lcom/oracle/truffle/api/test/StackTraceTest$StackTrace;)V
8: .line 263
ldc 4
aload 6 /* stack */
getfield com.oracle.truffle.api.test.StackTraceTest$StackTrace.frames:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: .line 264
aload 1 /* createStackTrace */
aload 6 /* stack */
getfield com.oracle.truffle.api.test.StackTraceTest$StackTrace.currentFrame:Lcom/oracle/truffle/api/frame/FrameInstance;
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
10: .line 265
aload 6 /* stack */
getfield com.oracle.truffle.api.test.StackTraceTest$StackTrace.currentFrame:Lcom/oracle/truffle/api/frame/FrameInstance;
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
11: .line 266
aload 2 /* callTarget */
aload 6 /* stack */
getfield com.oracle.truffle.api.test.StackTraceTest$StackTrace.callerFrame:Lcom/oracle/truffle/api/frame/FrameInstance;
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
12: .line 267
aload 6 /* stack */
getfield com.oracle.truffle.api.test.StackTraceTest$StackTrace.callerFrame:Lcom/oracle/truffle/api/frame/FrameInstance;
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
13: .line 269
aload 3 /* indirect */
aload 6 /* stack */
getfield com.oracle.truffle.api.test.StackTraceTest$StackTrace.frames:Ljava/util/List;
iconst_2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.api.frame.FrameInstance
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
14: .line 270
aload 3 /* indirect */
invokestatic com.oracle.truffle.api.test.StackTraceTest.findCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/Node;
aload 6 /* stack */
getfield com.oracle.truffle.api.test.StackTraceTest$StackTrace.frames:Ljava/util/List;
iconst_2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.api.frame.FrameInstance
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
15: .line 272
aload 4 /* direct */
aload 6 /* stack */
getfield com.oracle.truffle.api.test.StackTraceTest$StackTrace.frames:Ljava/util/List;
iconst_3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.api.frame.FrameInstance
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
16: .line 273
aload 4 /* direct */
invokestatic com.oracle.truffle.api.test.StackTraceTest.findCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/Node;
aload 6 /* stack */
getfield com.oracle.truffle.api.test.StackTraceTest$StackTrace.frames:Ljava/util/List;
iconst_3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.api.frame.FrameInstance
invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 6 // com.oracle.truffle.api.test.StackTraceTest$StackTrace stack
17: .line 260
iinc 5 /* j */ 1
StackMap locals:
StackMap stack:
18: iload 5 /* j */
bipush 10
if_icmplt 6
end local 5 // int j
19: .line 275
aconst_null
areturn
end local 4 // com.oracle.truffle.api.CallTarget direct
end local 3 // com.oracle.truffle.api.CallTarget indirect
end local 2 // com.oracle.truffle.api.CallTarget callTarget
end local 1 // com.oracle.truffle.api.CallTarget createStackTrace
end local 0 // com.oracle.truffle.api.test.StackTraceTest$3 this
LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/api/test/StackTraceTest$3;
1 20 1 createStackTrace Lcom/oracle/truffle/api/CallTarget;
2 20 2 callTarget Lcom/oracle/truffle/api/CallTarget;
3 20 3 indirect Lcom/oracle/truffle/api/CallTarget;
4 20 4 direct Lcom/oracle/truffle/api/CallTarget;
5 19 5 j I
7 17 6 stack Lcom/oracle/truffle/api/test/StackTraceTest$StackTrace;
public java.lang.Object call();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: .line 1
aload 0
invokevirtual com.oracle.truffle.api.test.StackTraceTest$3.call:()Ljava/lang/Void;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Ljava/lang/Object;Ljava/util/concurrent/Callable<Ljava/lang/Void;>;
SourceFile: "StackTraceTest.java"
EnclosingMethod: com.oracle.truffle.api.test.StackTraceTest.testAsynchronousFrameAccess:()V
NestHost: com.oracle.truffle.api.test.StackTraceTest
InnerClasses:
com.oracle.truffle.api.test.StackTraceTest$3
private ReturnStackTraceNode = com.oracle.truffle.api.test.StackTraceTest$ReturnStackTraceNode of com.oracle.truffle.api.test.StackTraceTest
private StackTrace = com.oracle.truffle.api.test.StackTraceTest$StackTrace of com.oracle.truffle.api.test.StackTraceTest
private abstract TestCallNode = com.oracle.truffle.api.test.StackTraceTest$TestCallNode of com.oracle.truffle.api.test.StackTraceTest
private TestCallWithCallTargetNode = com.oracle.truffle.api.test.StackTraceTest$TestCallWithCallTargetNode of com.oracle.truffle.api.test.StackTraceTest
private TestCallWithDirectTargetNode = com.oracle.truffle.api.test.StackTraceTest$TestCallWithDirectTargetNode of com.oracle.truffle.api.test.StackTraceTest
private TestCallWithIndirectTargetNode = com.oracle.truffle.api.test.StackTraceTest$TestCallWithIndirectTargetNode of com.oracle.truffle.api.test.StackTraceTest