final class com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester implements com.oracle.truffle.api.instrumentation.ExecutionEventListener
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester
super_class: java.lang.Object
{
private com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env;
descriptor: Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
flags: (0x0002) ACC_PRIVATE
private final java.util.List<java.lang.String> receiverObjects;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
void <init>(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env);
descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester.receiverObjects:Ljava/util/List;
2: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTest$ReceiverTester;
0 4 1 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
MethodParameters:
Name Flags
env
public void onEnter(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.materialize:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester.addReceiverObject:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTest$ReceiverTester;
0 2 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 2 2 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
MethodParameters:
Name Flags
context
frame
private void addReceiverObject(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.MaterializedFrame);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
start local 3 1: invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 3
aload 2
invokevirtual com.oracle.truffle.api.interop.NodeLibrary.hasReceiverMember:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;)Z
ifeq 15
2: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 3
aload 2
invokevirtual com.oracle.truffle.api.interop.NodeLibrary.getReceiverMember:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
astore 4
start local 4 3: ldc "THIS"
aload 4
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 3
aload 2
iconst_1
invokevirtual com.oracle.truffle.api.interop.NodeLibrary.getScope:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;Z)Ljava/lang/Object;
astore 5
start local 5 5: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
aload 4
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
ifeq 11
6: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
aload 4
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 6
start local 6 7: aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester.receiverObjects:Ljava/util/List;
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
8: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguageView:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.toDisplayString:(Ljava/lang/Object;)Ljava/lang/Object;
9: invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 10: goto 16
11: StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.String java.lang.Object
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester.receiverObjects:Ljava/util/List;
aconst_null
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 12: goto 16
StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.nodes.Node
StackMap stack: com.oracle.truffle.api.interop.InteropException
13: astore 4
start local 4 14: aload 4
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 4 15: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester.receiverObjects:Ljava/util/List;
aconst_null
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
16: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTest$ReceiverTester;
0 17 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 17 2 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
1 17 3 node Lcom/oracle/truffle/api/nodes/Node;
3 12 4 receiverName Ljava/lang/String;
5 12 5 scope Ljava/lang/Object;
7 10 6 receiver Ljava/lang/Object;
14 15 4 e Lcom/oracle/truffle/api/interop/InteropException;
Exception table:
from to target type
2 12 13 Class com.oracle.truffle.api.interop.UnsupportedMessageException
2 12 13 Class com.oracle.truffle.api.interop.UnknownIdentifierException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
context
frame
public void onReturnValue(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTest$ReceiverTester;
0 1 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 1 2 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 1 3 result Ljava/lang/Object;
MethodParameters:
Name Flags
context
frame
result
public void onReturnExceptional(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.VirtualFrame, java.lang.Throwable);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTest$ReceiverTester;
0 1 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 1 2 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 1 3 exception Ljava/lang/Throwable;
MethodParameters:
Name Flags
context
frame
exception
private void assertReceivers(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
arraylength
i2l
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester.receiverObjects:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 1
iload 2
aaload
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester.receiverObjects:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 1
arraylength
if_icmplt 3
end local 2 6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTest$ReceiverTester;
0 7 1 objects [Ljava/lang/String;
2 6 2 i I
MethodParameters:
Name Flags
objects
}
SourceFile: "InstrumentationTest.java"
NestHost: com.oracle.truffle.api.instrumentation.test.InstrumentationTest
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
private final ReceiverTester = com.oracle.truffle.api.instrumentation.test.InstrumentationTest$ReceiverTester of com.oracle.truffle.api.instrumentation.test.InstrumentationTest