final class com.oracle.truffle.api.instrumentation.InstrumentationHandler
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.InstrumentationHandler
super_class: java.lang.Object
{
static final boolean TRACE;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
private final java.lang.Object polyglotEngine;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.ThreadLocal<java.util.Map<com.oracle.truffle.api.source.Source, java.lang.Void>> threadLocalNewSourcesLoaded;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/lang/Void;>;>;
private final java.lang.ThreadLocal<java.util.Map<com.oracle.truffle.api.source.Source, java.lang.Void>> threadLocalNewSourcesExecuted;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/lang/Void;>;>;
private final java.lang.ThreadLocal<java.util.List<com.oracle.truffle.api.instrumentation.InstrumentationHandler$BindingLoadSourceSectionEvent>> threadLocalSourceSectionLoadedList;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$BindingLoadSourceSectionEvent;>;>;
final java.util.Collection<com.oracle.truffle.api.nodes.RootNode> loadedRoots;
descriptor: Ljava/util/Collection;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/nodes/RootNode;>;
private final java.util.Collection<com.oracle.truffle.api.nodes.RootNode> executedRoots;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/nodes/RootNode;>;
private final java.util.Collection<com.oracle.truffle.api.instrumentation.AllocationReporter> allocationReporters;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/AllocationReporter;>;
private volatile boolean hasLoadOrExecutionBinding;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList<com.oracle.truffle.api.instrumentation.EventBinding$Source<?>> executionBindings;
descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList<Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;>;
private final com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList<com.oracle.truffle.api.instrumentation.EventBinding$Source<?>> sourceSectionBindings;
descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList<Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;>;
private final com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler sourcesLoaded;
descriptor: Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler sourcesExecuted;
descriptor: Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<? extends java.io.OutputStream>> outputStdBindings;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Ljava/io/OutputStream;>;>;
private final java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<? extends java.io.OutputStream>> outputErrBindings;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Ljava/io/OutputStream;>;>;
private final java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding$Allocation<? extends com.oracle.truffle.api.instrumentation.AllocationListener>> allocationBindings;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding$Allocation<+Lcom/oracle/truffle/api/instrumentation/AllocationListener;>;>;
private final java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ContextsListener>> contextsBindings;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ContextsListener;>;>;
private final java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ThreadsListener>> threadsBindings;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ThreadsListener;>;>;
private final java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ThreadsActivationListener>> threadsActivationBindings;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;>;>;
private volatile com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners stableActivationListeners;
descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
final java.util.concurrent.ConcurrentHashMap<java.lang.Object, com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter> instrumenterMap;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Object;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;>;
private com.oracle.truffle.api.impl.DispatchOutputStream out;
descriptor: Lcom/oracle/truffle/api/impl/DispatchOutputStream;
flags: (0x0002) ACC_PRIVATE
private com.oracle.truffle.api.impl.DispatchOutputStream err;
descriptor: Lcom/oracle/truffle/api/impl/DispatchOutputStream;
flags: (0x0002) ACC_PRIVATE
private java.io.InputStream in;
descriptor: Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.io.MessageTransport messageInterceptor;
descriptor: Lorg/graalvm/polyglot/io/MessageTransport;
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<java.lang.Class<?>, java.util.Set<java.lang.Class<?>>> cachedProvidedTags;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/Set<Ljava/lang/Class<*>;>;>;
final com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter engineInstrumenter;
descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
flags: (0x0010) ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
3: ldc "truffle.instrumentation.trace"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
putstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.Object, com.oracle.truffle.api.impl.DispatchOutputStream, com.oracle.truffle.api.impl.DispatchOutputStream, java.io.InputStream, org.graalvm.polyglot.io.MessageTransport);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lorg/graalvm/polyglot/io/MessageTransport;)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadLocalNewSourcesLoaded:Ljava/lang/ThreadLocal;
2: aload 0
new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadLocalNewSourcesExecuted:Ljava/lang/ThreadLocal;
3: aload 0
new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadLocalSourceSectionLoadedList:Ljava/lang/ThreadLocal;
4: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$WeakAsyncList
dup
sipush 256
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$WeakAsyncList.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.loadedRoots:Ljava/util/Collection;
5: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$WeakAsyncList
dup
bipush 64
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$WeakAsyncList.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executedRoots:Ljava/util/Collection;
6: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$WeakAsyncList
dup
bipush 16
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$WeakAsyncList.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.allocationReporters:Ljava/util/Collection;
7: aload 0
iconst_0
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.hasLoadOrExecutionBinding:Z
8: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList
dup
iconst_0
anewarray com.oracle.truffle.api.instrumentation.EventBinding$Source
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.<init>:([Ljava/lang/Object;)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
9: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList
dup
iconst_0
anewarray com.oracle.truffle.api.instrumentation.EventBinding$Source
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.<init>:([Ljava/lang/Object;)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourceSectionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
10: aload 0
new com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler
dup
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$1
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$1.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
invokespecial com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.<init>:(Ljava/util/function/BiConsumer;)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesLoaded:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
11: aload 0
new com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler
dup
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$2
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$2.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
invokespecial com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.<init>:(Ljava/util/function/BiConsumer;)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesExecuted:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
12: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList
dup
iconst_1
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.outputStdBindings:Ljava/util/Collection;
13: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList
dup
iconst_1
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.outputErrBindings:Ljava/util/Collection;
14: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList
dup
iconst_2
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.allocationBindings:Ljava/util/Collection;
15: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList
dup
bipush 8
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
16: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList
dup
bipush 8
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsBindings:Ljava/util/Collection;
17: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList
dup
bipush 8
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList.<init>:(I)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsActivationBindings:Ljava/util/Collection;
18: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.instrumenterMap:Ljava/util/concurrent/ConcurrentHashMap;
19: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.cachedProvidedTags:Ljava/util/Map;
20: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.polyglotEngine:Ljava/lang/Object;
21: aload 0
aload 2
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
22: aload 0
aload 3
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
23: aload 0
aload 4
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.in:Ljava/io/InputStream;
24: aload 0
aload 5
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
25: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.engineInstrumenter:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
26: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 27 1 polyglotEngine Ljava/lang/Object;
0 27 2 out Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 27 3 err Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 27 4 in Ljava/io/InputStream;
0 27 5 messageInterceptor Lorg/graalvm/polyglot/io/MessageTransport;
MethodParameters:
Name Flags
polyglotEngine
out
err
in
messageInterceptor
java.lang.Object getSourceVM();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.polyglotEngine:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
void onLoad(com.oracle.truffle.api.nodes.RootNode);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 9
1: aload 1
invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
astore 2
start local 2 2: aload 2
ifnonnull 4
3: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 2
4: StackMap locals: java.lang.String
StackMap stack:
ldc "None"
astore 3
start local 3 5: aload 1
invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
astore 4
start local 4 6: aload 4
ifnull 8
7: aload 4
invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
astore 3
8: StackMap locals: java.lang.String com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack:
ldc "ON-LOAD: %-5s CallTarget: %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 4 end local 3 end local 2 9: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.nodesAccess:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotEngine:(Lcom/oracle/truffle/api/nodes/RootNode;)Ljava/lang/Object;
ifnonnull 11
10: return
11: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.loadedRoots:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
12: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.hasLoadOrExecutionBinding:Z
ifeq 18
13: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourceSectionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.isEmpty:()Z
ifeq 14
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesLoaded:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.hasBindings:()Z
ifeq 18
14: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 2
start local 2 15: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addNotifyLoadedOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
16: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
17: aload 1
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
iconst_0
iconst_1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoot:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;ZZ)V
end local 2 18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 19 1 root Lcom/oracle/truffle/api/nodes/RootNode;
2 9 2 name Ljava/lang/String;
5 9 3 lang Ljava/lang/String;
6 9 4 info Lcom/oracle/truffle/api/nodes/LanguageInfo;
15 18 2 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
MethodParameters:
Name Flags
root
void onFirstExecution(com.oracle.truffle.api.nodes.RootNode);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.nodesAccess:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.isInstrumentable:(Lcom/oracle/truffle/api/nodes/RootNode;)Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executedRoots:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.hasLoadOrExecutionBinding:Z
ifeq 11
4: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.isEmpty:()Z
ifeq 5
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesExecuted:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.hasBindings:()Z
ifeq 11
5: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 2
start local 2 6: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addInsertWrapperOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
7: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addNotifyLoadedOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
8: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
9: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesExecutedOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
10: aload 1
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
iconst_0
iconst_1
iconst_1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoot:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;ZZZ)V
end local 2 11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 12 1 root Lcom/oracle/truffle/api/nodes/RootNode;
6 11 2 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
MethodParameters:
Name Flags
root
void initializeInstrument(, java.lang.String, java.util.function.Supplier<? extends java.lang.Object>);
descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/util/function/Supplier;)V
flags: (0x0000)
Code:
stack=7, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "Initialize instrument class %s %n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.instrumentation.TruffleInstrument$Env
dup
aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.in:Ljava/io/InputStream;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
invokespecial com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.<init>:(Ljava/lang/Object;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lorg/graalvm/polyglot/io/MessageTransport;)V
astore 4
start local 4 3: aload 3
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.TruffleInstrument
astore 5
start local 5 4: aload 5
getfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextLocals:Ljava/util/List;
ifnonnull 7
5: aload 5
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
putfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextLocals:Ljava/util/List;
6: goto 8
7: StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.instrumentation.TruffleInstrument
StackMap stack:
aload 5
aload 5
getfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextLocals:Ljava/util/List;
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextLocals:Ljava/util/List;
8: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 5
getfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextLocals:Ljava/util/List;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.initializeInstrumentContextLocal:(Ljava/util/List;Ljava/lang/Object;)V
9: aload 5
getfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextThreadLocals:Ljava/util/List;
ifnonnull 12
10: aload 5
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
putfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextThreadLocals:Ljava/util/List;
11: goto 13
12: StackMap locals:
StackMap stack:
aload 5
aload 5
getfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextThreadLocals:Ljava/util/List;
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextThreadLocals:Ljava/util/List;
13: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 5
getfield com.oracle.truffle.api.instrumentation.TruffleInstrument.contextThreadLocals:Ljava/util/List;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.initializeInstrumentContextThreadLocal:(Ljava/util/List;Ljava/lang/Object;)V
14: aload 4
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter
dup
aload 0
aload 4
aload 2
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Ljava/lang/String;)V
putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.instrumenter:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
15: aload 4
getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.instrumenter:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
aload 5
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter.instrument:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
16: goto 20
StackMap locals:
StackMap stack: java.lang.Exception
17: astore 6
start local 6 18: aload 4
ldc "Failed to create new instrumenter class %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 6
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.failInstrumentInitialization:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Ljava/lang/String;Ljava/lang/Throwable;)V
19: return
end local 6 20: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 22
21: ldc "Initialized instrument %s class %s %n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.instrumenter:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter.instrument:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
22: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.instrumenter:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addInstrumenter:(Ljava/lang/Object;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;)V
23: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 24 1 polyglotInstrument Ljava/lang/Object;
0 24 2 instrumentClassName Ljava/lang/String;
0 24 3 instrumentSupplier Ljava/util/function/Supplier<+Ljava/lang/Object;>;
3 24 4 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
4 24 5 instrument Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
18 20 6 e Ljava/lang/Exception;
Exception table:
from to target type
14 16 17 Class java.lang.Exception
Signature: (Ljava/lang/Object;Ljava/lang/String;Ljava/util/function/Supplier<+Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
polyglotInstrument
instrumentClassName
instrumentSupplier
void createInstrument(java.lang.Object, java.lang.String[], org.graalvm.options.OptionValues);
descriptor: (Ljava/lang/Object;[Ljava/lang/String;Lorg/graalvm/options/OptionValues;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.instrumenterMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter
astore 4
start local 4 1: aload 4
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
aload 3
putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.options:Lorg/graalvm/options/OptionValues;
2: aload 4
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter.create:([Ljava/lang/String;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 4 1 vmObject Ljava/lang/Object;
0 4 2 expectedServices [Ljava/lang/String;
0 4 3 optionValues Lorg/graalvm/options/OptionValues;
1 4 4 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
MethodParameters:
Name Flags
vmObject
expectedServices
optionValues
void finalizeInstrumenter(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.instrumenterMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.lang.AssertionError
dup
ldc "Instrumenter already disposed."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter.doFinalize:()V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 key Ljava/lang/Object;
1 5 2 finalisingInstrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
MethodParameters:
Name Flags
key
void disposeInstrumenter(java.lang.Object, boolean);
descriptor: (Ljava/lang/Object;Z)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.instrumenterMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
astore 3
start local 3 1: aload 3
ifnonnull 3
2: new java.lang.AssertionError
dup
ldc "Instrumenter already disposed."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 5
4: ldc "BEGIN: Dispose instrumenter %n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter.dispose:()V
6: iload 2
ifeq 31
7: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
aload 3
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.filterBindingsForInstrumenter:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;)Ljava/util/Collection;
astore 4
start local 4 8: aload 4
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.setDisposingBindingsBulk:(Ljava/util/Collection;)V
9: aload 4
invokeinterface java.util.Collection.isEmpty:()Z
ifne 13
10: new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 5
start local 5 11: aload 5
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList
dup
aload 4
iconst_0
anewarray com.oracle.truffle.api.instrumentation.EventBinding$Source
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding$Source[]
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.<init>:([Ljava/lang/Object;)V
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addDisposeWrapperOperationForBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
12: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executedRoots:Ljava/util/Collection;
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoots:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;)V
end local 5 13: StackMap locals: java.util.Collection
StackMap stack:
aload 4
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.disposeBindingsBulk:(Ljava/util/Collection;)V
14: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.removeAll:(Ljava/util/Collection;)Z
pop
15: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourceSectionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
aload 3
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.filterBindingsForInstrumenter:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;)Ljava/util/Collection;
astore 5
start local 5 16: aload 5
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.disposeBindingsBulk:(Ljava/util/Collection;)V
17: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourceSectionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.removeAll:(Ljava/util/Collection;)Z
pop
18: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesLoaded:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.clearForDisposedInstrumenter:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;)V
19: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesExecuted:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.clearForDisposedInstrumenter:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;)V
20: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.outputStdBindings:Ljava/util/Collection;
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.disposeOutputBindingsBulk:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/util/Collection;)V
21: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.outputErrBindings:Ljava/util/Collection;
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.disposeOutputBindingsBulk:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/util/Collection;)V
22: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsActivationBindings:Ljava/util/Collection;
dup
astore 6
monitorenter
23: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsActivationBindings:Ljava/util/Collection;
aload 3
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.filterBindingsForInstrumenter:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;)Ljava/util/Collection;
astore 7
start local 7 24: aload 7
invokeinterface java.util.Collection.isEmpty:()Z
ifne 27
25: aload 7
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.disposeBindingsBulk:(Ljava/util/Collection;)V
26: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.invalidateThreadsActivationListeners:()V
end local 7 27: StackMap locals: java.util.Collection java.util.Collection
StackMap stack:
aload 6
monitorexit
28: goto 31
StackMap locals:
StackMap stack: java.lang.Throwable
29: aload 6
monitorexit
30: athrow
end local 5 end local 4 31: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 33
32: ldc "END: Disposed instrumenter %n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
33: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 34 1 key Ljava/lang/Object;
0 34 2 cleanupRequired Z
1 34 3 disposedInstrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
8 31 4 disposedExecutionBindings Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;
11 13 5 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
16 31 5 disposedSourceSectionBindings Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;
24 27 7 disposedThreadsActivationBindings Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;
Exception table:
from to target type
23 28 29 any
29 30 29 any
MethodParameters:
Name Flags
key
cleanupRequired
private static void setDisposingBindingsBulk(java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<?>>);
descriptor: (Ljava/util/Collection;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: java.util.Collection top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 1
start local 1 2: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.setDisposingBulk:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 list Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;
2 3 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
Signature: (Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;)V
MethodParameters:
Name Flags
list
static void disposeBindingsBulk(java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<?>>);
descriptor: (Ljava/util/Collection;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: java.util.Collection top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 1
start local 1 2: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.disposeBulk:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 list Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;
2 3 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
Signature: (Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;)V
MethodParameters:
Name Flags
list
private static void disposeOutputBindingsBulk(com.oracle.truffle.api.impl.DispatchOutputStream, java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<? extends java.io.OutputStream>>);
descriptor: (Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/util/Collection;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream java.util.Collection top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 2
start local 2 2: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 0
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast java.io.OutputStream
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.detachOutputConsumer:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/OutputStream;)V
3: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.disposeBulk:()V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 dos Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 6 1 list Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Ljava/io/OutputStream;>;>;
2 4 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Ljava/io/OutputStream;>;
Signature: (Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Ljava/io/OutputStream;>;>;)V
MethodParameters:
Name Flags
dos
list
com.oracle.truffle.api.instrumentation.Instrumenter forLanguage(com.oracle.truffle.api.TruffleLanguage<?>);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/api/instrumentation/Instrumenter;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter
dup
aload 0
aload 1
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Lcom/oracle/truffle/api/TruffleLanguage;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 1 1 language Lcom/oracle/truffle/api/TruffleLanguage<*>;
Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;)Lcom/oracle/truffle/api/instrumentation/Instrumenter;
MethodParameters:
Name Flags
language
<T> com.oracle.truffle.api.instrumentation.EventBinding<T> addExecutionBinding(com.oracle.truffle.api.instrumentation.EventBinding$Source<T>);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Adding execution binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.hasLoadOrExecutionBinding:Z
3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executedRoots:Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
ifne 12
5: new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 2
start local 2 6: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_ORIGINAL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addInsertWrapperOperationForBinding:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
7: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addInsertWrapperOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
8: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addNotifyLoadedOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
9: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
10: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesExecutedOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
11: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executedRoots:Ljava/util/Collection;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
iconst_1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoots:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;Z)V
end local 2 12: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 14
13: ldc "END: Added execution binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 15 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
6 12 2 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
binding
<T> com.oracle.truffle.api.instrumentation.EventBinding<T> addSourceSectionBinding(com.oracle.truffle.api.instrumentation.EventBinding$Source<T>, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Adding binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.hasLoadOrExecutionBinding:Z
3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourceSectionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.add:(Ljava/lang/Object;)Z
pop
4: iload 2
ifeq 13
5: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.loadedRoots:Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
ifne 13
6: new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 3
start local 3 7: aload 3
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_ORIGINAL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addNotifyLoadedOperationForBinding:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
8: aload 3
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addNotifyLoadedOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
9: aload 3
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addInsertWrapperOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
10: aload 3
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
11: aload 3
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesExecutedOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
12: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.loadedRoots:Ljava/util/Collection;
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoots:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;)V
end local 3 13: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 15
14: ldc "END: Added binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 16 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
0 16 2 notifyLoaded Z
7 13 3 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
binding
notifyLoaded
private void visitLoadedSourceSections(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Visiting loaded source sections %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.loadedRoots:Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
ifne 10
3: new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 2
start local 2 4: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addNotifyLoadedOperationForBinding:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
5: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addNotifyLoadedOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
6: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addInsertWrapperOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
7: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
8: aload 2
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesExecutedOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
9: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.loadedRoots:Ljava/util/Collection;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoots:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;)V
end local 2 10: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 12
11: ldc "END: Visited loaded source sections %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 13 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
4 10 2 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;)V
MethodParameters:
Name Flags
binding
<T> com.oracle.truffle.api.instrumentation.EventBinding<T> addSourceLoadedBinding(com.oracle.truffle.api.instrumentation.EventBinding$Source<T>, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Adding source binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.hasLoadOrExecutionBinding:Z
3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesLoaded:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
aload 1
iload 2
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.addBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Z)Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler$SourcesNotificationQueue;
astore 3
start local 3 4: aload 3
ifnull 8
5: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler$SourcesNotificationQueue.isSourcesInitializationRequired:()Z
ifeq 7
6: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.lazyInitializeSourcesLoadedList:()V
7: StackMap locals: com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler$SourcesNotificationQueue
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler$SourcesNotificationQueue.process:()V
8: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 10
9: ldc "END: Added source binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
10: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 11 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
0 11 2 notifyLoaded Z
4 11 3 notifications Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler$SourcesNotificationQueue;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
binding
notifyLoaded
<T> com.oracle.truffle.api.instrumentation.EventBinding<T> addSourceExecutionBinding(com.oracle.truffle.api.instrumentation.EventBinding$Source<T>, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Adding source execution binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.hasLoadOrExecutionBinding:Z
3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesExecuted:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
aload 1
iload 2
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.addBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Z)Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler$SourcesNotificationQueue;
astore 3
start local 3 4: aload 3
ifnull 8
5: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler$SourcesNotificationQueue.isSourcesInitializationRequired:()Z
ifeq 7
6: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.lazyInitializeSourcesExecutedList:()V
7: StackMap locals: com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler$SourcesNotificationQueue
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler$SourcesNotificationQueue.process:()V
8: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 10
9: ldc "END: Added source execution binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
10: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 11 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
0 11 2 notifyLoaded Z
4 11 3 notifications Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler$SourcesNotificationQueue;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
binding
notifyLoaded
<T extends java.io.OutputStream> com.oracle.truffle.api.instrumentation.EventBinding<T> addOutputBinding(com.oracle.truffle.api.instrumentation.EventBinding<T>, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 5
1: iload 2
ifeq 2
ldc "error"
goto 3
StackMap locals:
StackMap stack:
2: ldc "standard"
StackMap locals:
StackMap stack: java.lang.String
3: astore 3
start local 3 4: new java.lang.StringBuilder
dup
ldc "BEGIN: Adding "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " output binding %s%n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 3 5: StackMap locals:
StackMap stack:
iload 2
ifeq 9
6: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.outputErrBindings:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
7: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast java.io.OutputStream
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.attachOutputConsumer:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/OutputStream;)V
8: goto 11
9: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.outputStdBindings:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
10: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast java.io.OutputStream
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.attachOutputConsumer:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/OutputStream;)V
11: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 16
12: iload 2
ifeq 13
ldc "error"
goto 14
StackMap locals:
StackMap stack:
13: ldc "standard"
StackMap locals:
StackMap stack: java.lang.String
14: astore 3
start local 3 15: new java.lang.StringBuilder
dup
ldc "END: Added "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " output binding %s%n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 3 16: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 17 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
0 17 2 errorOutput Z
4 5 3 kind Ljava/lang/String;
15 16 3 kind Ljava/lang/String;
Signature: <T:Ljava/io/OutputStream;>(Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
binding
errorOutput
private <T extends com.oracle.truffle.api.instrumentation.AllocationListener> com.oracle.truffle.api.instrumentation.EventBinding<T> addAllocationBinding(com.oracle.truffle.api.instrumentation.EventBinding$Allocation<T>);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Allocation;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Adding allocation binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Allocation.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.allocationBindings:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.allocationReporters:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.instrumentation.EventBinding$Allocation top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.AllocationReporter
astore 2
start local 2 5: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Allocation.getAllocationFilter:()Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;
aload 2
getfield com.oracle.truffle.api.instrumentation.AllocationReporter.language:Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.instrumentation.AllocationEventFilter.contains:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Z
ifeq 7
6: aload 2
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Allocation.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.AllocationListener
invokevirtual com.oracle.truffle.api.instrumentation.AllocationReporter.addListener:(Lcom/oracle/truffle/api/instrumentation/AllocationListener;)V
end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 10
9: ldc "END: Added allocation binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Allocation.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
10: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.instrumentation.EventBinding$Allocation
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 11 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Allocation<TT;>;
5 7 2 allocationReporter Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
Signature: <T::Lcom/oracle/truffle/api/instrumentation/AllocationListener;>(Lcom/oracle/truffle/api/instrumentation/EventBinding$Allocation<TT;>;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
binding
private <T extends com.oracle.truffle.api.instrumentation.ContextsListener> com.oracle.truffle.api.instrumentation.EventBinding<T> addContextsBinding(com.oracle.truffle.api.instrumentation.EventBinding<T>, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Adding contexts binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
3: iload 2
ifeq 6
4: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
astore 3
start local 3 5: aload 3
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.polyglotEngine:Ljava/lang/Object;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.reportAllLanguageContexts:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 3 6: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 8
7: ldc "END: Added contexts binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 9 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
0 9 2 includeActiveContexts Z
5 6 3 engineAccess Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
Signature: <T::Lcom/oracle/truffle/api/instrumentation/ContextsListener;>(Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
binding
includeActiveContexts
private <T extends com.oracle.truffle.api.instrumentation.ThreadsListener> com.oracle.truffle.api.instrumentation.EventBinding<T> addThreadsBinding(com.oracle.truffle.api.instrumentation.EventBinding<T>, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Adding threads binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsBindings:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
3: iload 2
ifeq 6
4: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
astore 3
start local 3 5: aload 3
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.polyglotEngine:Ljava/lang/Object;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.reportAllContextThreads:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 3 6: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 8
7: ldc "END: Added threads binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 9 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
0 9 2 includeStartedThreads Z
5 6 3 engineAccess Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
Signature: <T::Lcom/oracle/truffle/api/instrumentation/ThreadsListener;>(Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
binding
includeStartedThreads
private void lazyInitializeSourcesLoadedList();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 1
start local 1 1: aload 1
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
iconst_1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;Z)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
2: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.loadedRoots:Ljava/util/Collection;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
iconst_0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoots:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;Z)V
3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesLoaded:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.setInitialized:()V
end local 1 4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 1
start local 1 6: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesLoaded:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.clearAll:()V
7: aload 1
athrow
end local 1 8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
1 4 1 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
6 8 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 4 5 Class java.lang.Throwable
private void lazyInitializeSourcesExecutedList();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 1
start local 1 1: aload 1
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
iconst_1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesExecutedOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;Z)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
2: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executedRoots:Ljava/util/Collection;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
iconst_1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoots:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;Z)V
3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesExecuted:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.setInitialized:()V
end local 1 4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 1
start local 1 6: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesExecuted:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.clearAll:()V
7: aload 1
athrow
end local 1 8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
1 4 1 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
6 8 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 4 5 Class java.lang.Throwable
private static void visitRoots(java.util.Collection<com.oracle.truffle.api.nodes.RootNode>, com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor);
descriptor: (Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: java.util.Collection com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.RootNode
astore 2
start local 2 2: aload 2
aload 2
aload 1
iconst_0
iconst_0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoot:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;ZZ)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 roots Ljava/util/Collection<Lcom/oracle/truffle/api/nodes/RootNode;>;
0 5 1 visitor Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
2 3 2 root Lcom/oracle/truffle/api/nodes/RootNode;
Signature: (Ljava/util/Collection<Lcom/oracle/truffle/api/nodes/RootNode;>;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;)V
MethodParameters:
Name Flags
roots
visitor
private static void visitRoots(java.util.Collection<com.oracle.truffle.api.nodes.RootNode>, com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor, );
descriptor: (Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: java.util.Collection com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor int top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.RootNode
astore 3
start local 3 2: aload 3
aload 3
aload 1
iconst_0
iconst_0
iload 2
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoot:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;ZZZ)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 roots Ljava/util/Collection<Lcom/oracle/truffle/api/nodes/RootNode;>;
0 5 1 visitor Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 5 2 setExecutedRootNodeBit Z
2 3 3 root Lcom/oracle/truffle/api/nodes/RootNode;
Signature: (Ljava/util/Collection<Lcom/oracle/truffle/api/nodes/RootNode;>;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;Z)V
MethodParameters:
Name Flags
roots
visitor
setExecutedRootNodeBit
void disposeBinding(com.oracle.truffle.api.instrumentation.EventBinding<?>);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding;)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Dispose binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 1
instanceof com.oracle.truffle.api.instrumentation.EventBinding$Source
ifeq 20
3: aload 1
checkcast com.oracle.truffle.api.instrumentation.EventBinding$Source
astore 2
start local 2 4: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isExecutionEvent:()Z
ifeq 10
5: new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 3
start local 3 6: aload 3
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addDisposeWrapperOperationForBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
7: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executedRoots:Ljava/util/Collection;
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoots:(Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;)V
8: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.remove:(Ljava/lang/Object;)Z
pop
end local 3 9: goto 47
10: StackMap locals: com.oracle.truffle.api.instrumentation.EventBinding$Source
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
astore 3
start local 3 11: aload 3
instanceof com.oracle.truffle.api.instrumentation.LoadSourceSectionListener
ifeq 14
12: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourceSectionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.remove:(Ljava/lang/Object;)Z
pop
13: goto 47
StackMap locals: java.lang.Object
StackMap stack:
14: aload 3
instanceof com.oracle.truffle.api.instrumentation.LoadSourceListener
ifeq 17
15: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesLoaded:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.clearForDisposedBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)V
16: goto 47
StackMap locals:
StackMap stack:
17: aload 3
instanceof com.oracle.truffle.api.instrumentation.ExecuteSourceEvent
ifeq 47
18: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesExecuted:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.clearForDisposedBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)V
end local 3 end local 2 19: goto 47
StackMap locals:
StackMap stack:
20: aload 1
instanceof com.oracle.truffle.api.instrumentation.EventBinding$Allocation
ifeq 29
21: aload 1
checkcast com.oracle.truffle.api.instrumentation.EventBinding$Allocation
astore 2
start local 2 22: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.AllocationListener
astore 3
start local 3 23: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.allocationReporters:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 27
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.instrumentation.EventBinding com.oracle.truffle.api.instrumentation.EventBinding$Allocation com.oracle.truffle.api.instrumentation.AllocationListener top java.util.Iterator
StackMap stack:
24: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.AllocationReporter
astore 4
start local 4 25: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Allocation.getAllocationFilter:()Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;
aload 4
getfield com.oracle.truffle.api.instrumentation.AllocationReporter.language:Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.instrumentation.AllocationEventFilter.contains:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Z
ifeq 27
26: aload 4
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.AllocationReporter.removeListener:(Lcom/oracle/truffle/api/instrumentation/AllocationListener;)V
end local 4 27: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
end local 3 end local 2 28: goto 47
29: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.instrumentation.EventBinding
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
astore 2
start local 2 30: aload 2
instanceof java.io.OutputStream
ifeq 37
31: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.outputErrBindings:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 34
32: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
aload 2
checkcast java.io.OutputStream
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.detachOutputConsumer:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/OutputStream;)V
33: goto 47
StackMap locals: java.lang.Object
StackMap stack:
34: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.outputStdBindings:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 47
35: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
aload 2
checkcast java.io.OutputStream
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.detachOutputConsumer:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/OutputStream;)V
36: goto 47
StackMap locals:
StackMap stack:
37: aload 2
instanceof com.oracle.truffle.api.instrumentation.ContextsListener
ifne 47
38: aload 2
instanceof com.oracle.truffle.api.instrumentation.ThreadsListener
ifne 47
39: aload 2
instanceof com.oracle.truffle.api.instrumentation.ThreadsActivationListener
ifeq 46
40: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsActivationBindings:Ljava/util/Collection;
dup
astore 3
monitorenter
41: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.invalidateThreadsActivationListeners:()V
42: aload 3
monitorexit
43: goto 47
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.instrumentation.EventBinding java.lang.Object java.util.Collection
StackMap stack: java.lang.Throwable
44: aload 3
monitorexit
45: athrow
46: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
ifne 47
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected binding "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " with element "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 47: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 49
48: ldc "END: Disposed binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
49: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 50 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
4 19 2 sourceBinding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
6 9 3 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
11 19 3 listener Ljava/lang/Object;
22 28 2 allocationBinding Lcom/oracle/truffle/api/instrumentation/EventBinding$Allocation<*>;
23 28 3 l Lcom/oracle/truffle/api/instrumentation/AllocationListener;
25 27 4 allocationReporter Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
30 47 2 elm Ljava/lang/Object;
Exception table:
from to target type
41 43 44 any
44 45 44 any
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;)V
MethodParameters:
Name Flags
binding
com.oracle.truffle.api.instrumentation.EventBinding$Source<?>[] getExecutionBindingsSnapshot();
descriptor: ()[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.getArray:()[Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding$Source[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
Signature: ()[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode createBindings(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.instrumentation.ProbeNode, com.oracle.truffle.api.instrumentation.EventBinding$Source<?>[]);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/ProbeNode;[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
flags: (0x0000)
Code:
stack=7, locals=19, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
astore 4
start local 4 1: aload 4
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 5
start local 5 2: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 4
3: ldc "BEGIN: Lazy update for %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals: com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.source.SourceSection
StackMap stack:
aconst_null
astore 7
start local 7 5: aconst_null
astore 8
start local 8 6: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 9
start local 9 7: goto 14
8: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.instrumentation.EventBinding$Source[] com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.source.SourceSection top com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 7
ifnonnull 13
9: aload 9
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 10
start local 10 10: aload 9
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.isInstrumentableNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifeq 13
11: aload 9
astore 7
12: aload 10
astore 8
end local 10 13: StackMap locals:
StackMap stack:
aload 9
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 9
14: StackMap locals:
StackMap stack:
aload 9
ifnull 15
aload 9
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
ifnonnull 8
15: StackMap locals:
StackMap stack:
aload 9
instanceof com.oracle.truffle.api.nodes.RootNode
ifeq 18
16: aload 9
checkcast com.oracle.truffle.api.nodes.RootNode
astore 6
start local 6 17: goto 19
end local 6 18: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
start local 6 19: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.instrumentation.EventBinding$Source[] com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 10
start local 10 20: aload 0
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getProvidedTags:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set;
astore 11
start local 11 21: aconst_null
astore 12
start local 12 22: aconst_null
astore 13
start local 13 23: aload 3
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 52
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.instrumentation.EventBinding$Source[] com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.util.Set com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
24: aload 17
iload 15
aaload
astore 14
start local 14 25: aload 14
getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.disposing:Z
ifeq 27
26: goto 51
27: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.instrumentation.EventBinding$Source[] com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.util.Set com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.EventBinding$Source int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
aload 14
aload 11
aload 6
aload 7
aload 8
aload 10
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isChildInstrumentedFull:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
ifeq 39
28: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 30
29: ldc " Found input value binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 14
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getInputFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 14
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
30: StackMap locals:
StackMap stack:
aload 2
aload 1
aload 14
aload 6
aload 11
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.createParentEventChainCallback:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 18
start local 18 31: aload 18
ifnonnull 33
32: goto 51
33: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack:
aload 12
ifnonnull 36
34: aload 18
astore 12
35: goto 38
36: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
ifne 37
aload 13
ifnonnull 37
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
37: StackMap locals:
StackMap stack:
aload 13
aload 18
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.setNext:(Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;)V
38: StackMap locals:
StackMap stack:
aload 18
astore 13
end local 18 39: StackMap locals:
StackMap stack:
aload 14
aload 11
aload 6
aload 10
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedFull:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
ifeq 51
40: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 42
41: ldc " Found binding %s, %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 14
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aastore
dup
iconst_1
aload 14
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
42: StackMap locals:
StackMap stack:
aload 2
aload 1
aload 14
aload 6
aload 11
aload 10
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.createEventChainCallback:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 18
start local 18 43: aload 18
ifnonnull 45
44: goto 51
45: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack:
aload 12
ifnonnull 48
46: aload 18
astore 12
47: goto 50
48: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
ifne 49
aload 13
ifnonnull 49
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
49: StackMap locals:
StackMap stack:
aload 13
aload 18
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.setNext:(Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;)V
50: StackMap locals:
StackMap stack:
aload 18
astore 13
end local 18 end local 14 51: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.instrumentation.EventBinding$Source[] com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.util.Set com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
52: iload 15
iload 16
if_icmplt 24
53: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 55
54: ldc "END: Lazy updated for %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
55: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.instrumentation.EventBinding$Source[] com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.util.Set com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack:
aload 12
areturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 56 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 56 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 56 2 probeNodeImpl Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 56 3 executionBindingsSnapshot [Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
1 56 4 context Lcom/oracle/truffle/api/instrumentation/EventContext;
2 56 5 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
17 18 6 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
19 56 6 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
5 56 7 parentInstrumentable Lcom/oracle/truffle/api/nodes/Node;
6 56 8 parentInstrumentableSourceSection Lcom/oracle/truffle/api/source/SourceSection;
7 56 9 parentNode Lcom/oracle/truffle/api/nodes/Node;
10 13 10 parentSourceSection Lcom/oracle/truffle/api/source/SourceSection;
20 56 10 instrumentedNode Lcom/oracle/truffle/api/nodes/Node;
21 56 11 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
22 56 12 root Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
23 56 13 parent Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
25 51 14 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
31 39 18 next Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
43 51 18 next Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
Signature: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/ProbeNode;[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
MethodParameters:
Name Flags
frame
probeNodeImpl
executionBindingsSnapshot
public void onNodeInserted(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
astore 3
start local 3 1: goto 5
2: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
3: aload 3
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.isInstrumentableNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifeq 5
4: goto 6
5: StackMap locals:
StackMap stack:
aload 3
ifnull 6
aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
ifnonnull 2
6: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
ifne 7
aload 3
ifnonnull 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.hasLoadOrExecutionBinding:Z
ifeq 15
8: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourceSectionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.isEmpty:()Z
ifeq 9
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.executionBindings:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$CopyOnWriteList;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList.isEmpty:()Z
ifeq 9
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesLoaded:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.hasBindings:()Z
ifne 9
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.sourcesExecuted:Lcom/oracle/truffle/api/instrumentation/SourceInstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler.hasBindings:()Z
ifeq 15
9: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
astore 4
start local 4 10: aload 4
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addNotifyLoadedOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
11: aload 4
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addInsertWrapperOperationForAllBindings:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
12: aload 4
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
13: aload 4
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.addFindSourcesExecutedOperation:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
pop
14: aload 1
aload 3
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder.buildVisitor:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
iconst_1
iconst_0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoot:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;ZZ)V
end local 4 15: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 16 1 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 16 2 tree Lcom/oracle/truffle/api/nodes/Node;
1 16 3 parentInstrumentable Lcom/oracle/truffle/api/nodes/Node;
10 15 4 visitorBuilder Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitorBuilder;
MethodParameters:
Name Flags
rootNode
tree
private static void notifySourceLoadedBindings(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>[], com.oracle.truffle.api.source.Source);
descriptor: ([Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/source/Source;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: com.oracle.truffle.api.instrumentation.EventBinding$Source[] com.oracle.truffle.api.source.Source top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifySourceLoadedBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/source/Source;)V
end local 2 3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 bindings [Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
0 6 1 source Lcom/oracle/truffle/api/source/Source;
2 3 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
Signature: ([Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/source/Source;)V
MethodParameters:
Name Flags
bindings
source
private static void notifySourceLoadedBinding(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.source.Source);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/source/Source;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isDisposed:()Z
ifne 7
aload 0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedSource:(Lcom/oracle/truffle/api/source/Source;)Z
ifeq 7
1: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.LoadSourceListener
new com.oracle.truffle.api.instrumentation.LoadSourceEvent
dup
aload 1
invokespecial com.oracle.truffle.api.instrumentation.LoadSourceEvent.<init>:(Lcom/oracle/truffle/api/source/Source;)V
invokeinterface com.oracle.truffle.api.instrumentation.LoadSourceListener.onLoad:(Lcom/oracle/truffle/api/instrumentation/LoadSourceEvent;)V
2: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
start local 2 4: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isLanguageBinding:()Z
ifeq 6
5: aload 2
athrow
6: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
ldc "onLoad"
aload 2
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.exceptionEventForClientInstrument:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 8 1 source Lcom/oracle/truffle/api/source/Source;
4 7 2 t Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/source/Source;)V
MethodParameters:
Name Flags
binding
source
private static void notifySourceExecutedBindings(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>[], com.oracle.truffle.api.source.Source);
descriptor: ([Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/source/Source;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: com.oracle.truffle.api.instrumentation.EventBinding$Source[] com.oracle.truffle.api.source.Source top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifySourceExecutedBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/source/Source;)V
end local 2 3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 bindings [Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
0 6 1 source Lcom/oracle/truffle/api/source/Source;
2 3 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
Signature: ([Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/source/Source;)V
MethodParameters:
Name Flags
bindings
source
private static void notifySourceExecutedBinding(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.source.Source);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/source/Source;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isDisposed:()Z
ifne 7
aload 0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedSource:(Lcom/oracle/truffle/api/source/Source;)Z
ifeq 7
1: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ExecuteSourceListener
new com.oracle.truffle.api.instrumentation.ExecuteSourceEvent
dup
aload 1
invokespecial com.oracle.truffle.api.instrumentation.ExecuteSourceEvent.<init>:(Lcom/oracle/truffle/api/source/Source;)V
invokeinterface com.oracle.truffle.api.instrumentation.ExecuteSourceListener.onExecute:(Lcom/oracle/truffle/api/instrumentation/ExecuteSourceEvent;)V
2: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
start local 2 4: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isLanguageBinding:()Z
ifeq 6
5: aload 2
athrow
6: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
ldc "onExecute"
aload 2
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.exceptionEventForClientInstrument:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 8 1 source Lcom/oracle/truffle/api/source/Source;
4 7 2 t Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/source/Source;)V
MethodParameters:
Name Flags
binding
source
static void notifySourceSectionLoaded(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 1
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isDisposed:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.LoadSourceSectionListener
astore 3
start local 3 3: aload 3
new com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent
dup
aload 2
aload 1
invokespecial com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent.<init>:(Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)V
invokeinterface com.oracle.truffle.api.instrumentation.LoadSourceSectionListener.onLoad:(Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionEvent;)V
4: goto 9
StackMap locals: com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.LoadSourceSectionListener
StackMap stack: java.lang.Throwable
5: astore 4
start local 4 6: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isLanguageBinding:()Z
ifeq 8
7: aload 4
athrow
8: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
ldc "onLoad"
aload 4
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.exceptionEventForClientInstrument:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 4 9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 10 1 node Lcom/oracle/truffle/api/nodes/Node;
0 10 2 section Lcom/oracle/truffle/api/source/SourceSection;
3 10 3 listener Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;
6 9 4 t Ljava/lang/Throwable;
Exception table:
from to target type
3 4 5 Class java.lang.Throwable
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
MethodParameters:
Name Flags
binding
node
section
private void addInstrumenter(java.lang.Object, com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.instrumenterMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
aload 2
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 1: aload 3
ifnull 3
2: new java.lang.AssertionError
dup
ldc "Instrumenter already present."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 4 1 key Ljava/lang/Object;
0 4 2 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
1 4 3 previousKey Ljava/lang/Object;
Exceptions:
throws java.lang.AssertionError
MethodParameters:
Name Flags
key
instrumenter
static java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<?>> filterBindingsForInstrumenter(java.util.Collection<? extends com.oracle.truffle.api.instrumentation.EventBinding<?>>, com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter);
descriptor: (Ljava/util/Collection;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;)Ljava/util/Collection;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 2
1: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 3: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: java.util.Collection com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter java.util.Collection top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 3
start local 3 5: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
aload 1
if_acmpne 7
6: aload 2
aload 3
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 bindings Ljava/util/Collection<+Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;
0 9 1 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
3 9 2 newBindings Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;
5 7 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
Signature: (Ljava/util/Collection<+Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;)Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;>;
MethodParameters:
Name Flags
bindings
instrumenter
private void insertWrapper(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.nodesAccess:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getLock:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/concurrent/locks/Lock;
astore 3
start local 3 1: aload 3
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.insertWrapperImpl:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
3: goto 7
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection java.util.concurrent.locks.Lock
StackMap stack: java.lang.Throwable
4: astore 4
5: aload 3
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 4
athrow
7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 9 1 instrumentableNode Lcom/oracle/truffle/api/nodes/Node;
0 9 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
1 9 3 lock Ljava/util/concurrent/locks/Lock;
Exception table:
from to target type
1 4 4 any
MethodParameters:
Name Flags
instrumentableNode
sourceSection
private void insertWrapperImpl(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
start local 3 1: aload 3
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
ifeq 4
2: aload 3
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.invalidateWrapperImpl:(Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;Lcom/oracle/truffle/api/nodes/Node;)V
3: return
4: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
new com.oracle.truffle.api.instrumentation.ProbeNode
dup
aload 0
aload 2
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Lcom/oracle/truffle/api/source/SourceSection;)V
astore 4
start local 4 5: aload 1
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode
ifeq 10
6: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode
aload 4
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.createWrapper:(Lcom/oracle/truffle/api/instrumentation/ProbeNode;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
astore 5
start local 5 7: goto 11
end local 5 StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.instrumentation.ProbeNode
StackMap stack: java.lang.Exception
8: astore 6
start local 6 9: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Failed to create wrapper of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 10: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
start local 5 11: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
StackMap stack:
aload 5
aload 1
aload 3
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNodeChecked:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
astore 6
start local 6 12: aload 1
aload 6
ldc "Insert instrumentation wrapper node."
invokevirtual com.oracle.truffle.api.nodes.Node.replace:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/nodes/Node;
pop
13: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
ifne 14
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.validEventContextOnWrapperInsert:()Z
ifne 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 15 1 node Lcom/oracle/truffle/api/nodes/Node;
0 15 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
1 15 3 parent Lcom/oracle/truffle/api/nodes/Node;
5 15 4 probe Lcom/oracle/truffle/api/instrumentation/ProbeNode;
7 8 5 wrapper Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
11 15 5 wrapper Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
9 10 6 e Ljava/lang/Exception;
12 15 6 wrapperNode Lcom/oracle/truffle/api/nodes/Node;
Exception table:
from to target type
6 7 8 Class java.lang.Exception
MethodParameters:
Name Flags
node
sourceSection
private static com.oracle.truffle.api.nodes.Node getWrapperNodeChecked(java.lang.Object, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnonnull 2
1: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "No wrapper returned for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " of class "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
instanceof com.oracle.truffle.api.nodes.Node
ifne 6
3: new java.lang.IllegalStateException
dup
ldc "Implementation of %s must be a subclass of %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
4: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
ldc Lcom/oracle/truffle/api/nodes/Node;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
5: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
checkcast com.oracle.truffle.api.nodes.Node
astore 3
start local 3 7: aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
ifnull 11
8: new java.lang.IllegalStateException
dup
ldc "Instance of provided wrapper %s is already adopted by another parent: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
9: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
10: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 2
ifnonnull 13
12: new java.lang.IllegalStateException
dup
ldc "Instance of instrumentable node %s is not adopted by a parent."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 2
aload 1
aload 3
invokestatic com.oracle.truffle.api.nodes.NodeUtil.isReplacementSafe:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 17
14: new java.lang.IllegalStateException
dup
15: ldc "WrapperNode implementation %s cannot be safely replaced in parent node class %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
16: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 wrapper Ljava/lang/Object;
0 18 1 node Lcom/oracle/truffle/api/nodes/Node;
0 18 2 parent Lcom/oracle/truffle/api/nodes/Node;
7 18 3 wrapperNode Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
wrapper
node
parent
private <T extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> com.oracle.truffle.api.instrumentation.EventBinding<T> attachFactory(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, T);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
new com.oracle.truffle.api.instrumentation.EventBinding$Source
dup
aload 1
aload 2
aload 3
aload 4
iconst_1
invokespecial com.oracle.truffle.api.instrumentation.EventBinding$Source.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Ljava/lang/Object;Z)V
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addExecutionBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
end local 4 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/InstrumentationHandler;
0 1 1 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 1 2 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
0 1 3 inputFilter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
0 1 4 factory TT;
Signature: <T::Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
instrumenter
filter
inputFilter
factory
private <T extends com.oracle.truffle.api.instrumentation.ExecutionEventListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachListener(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, T);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
new com.oracle.truffle.api.instrumentation.EventBinding$Source
dup
aload 1
aload 2
aload 3
aload 4
iconst_1
invokespecial com.oracle.truffle.api.instrumentation.EventBinding$Source.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Ljava/lang/Object;Z)V
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addExecutionBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
end local 4 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/InstrumentationHandler;
0 1 1 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 1 2 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
0 1 3 inputFilter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
0 1 4 listener TT;
Signature: <T::Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
instrumenter
filter
inputFilter
listener
private <T extends com.oracle.truffle.api.instrumentation.LoadSourceListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachSourceListener(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, T, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
new com.oracle.truffle.api.instrumentation.EventBinding$Source
dup
aload 1
aload 2
aconst_null
aload 3
iconst_0
invokespecial com.oracle.truffle.api.instrumentation.EventBinding$Source.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Ljava/lang/Object;Z)V
iload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addSourceLoadedBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
end local 4 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/InstrumentationHandler;
0 1 1 abstractInstrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 1 2 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
0 1 3 listener TT;
0 1 4 notifyLoaded Z
Signature: <T::Lcom/oracle/truffle/api/instrumentation/LoadSourceListener;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
abstractInstrumenter
filter
listener
notifyLoaded
private <T> com.oracle.truffle.api.instrumentation.EventBinding<T> attachSourceSectionListener(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, T, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Ljava/lang/Object;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
new com.oracle.truffle.api.instrumentation.EventBinding$Source
dup
aload 1
aload 2
aconst_null
aload 3
iconst_0
invokespecial com.oracle.truffle.api.instrumentation.EventBinding$Source.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Ljava/lang/Object;Z)V
iload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addSourceSectionBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
end local 4 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/InstrumentationHandler;
0 1 1 abstractInstrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 1 2 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
0 1 3 listener TT;
0 1 4 notifyLoaded Z
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
abstractInstrumenter
filter
listener
notifyLoaded
private void visitLoadedSourceSections(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, com.oracle.truffle.api.instrumentation.LoadSourceSectionListener);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new com.oracle.truffle.api.instrumentation.EventBinding$Source
dup
aload 1
aload 2
aconst_null
aload 3
iconst_0
invokespecial com.oracle.truffle.api.instrumentation.EventBinding$Source.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Ljava/lang/Object;Z)V
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitLoadedSourceSections:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 2 1 abstractInstrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 2 2 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
0 2 3 listener Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;
MethodParameters:
Name Flags
abstractInstrumenter
filter
listener
private <T> com.oracle.truffle.api.instrumentation.EventBinding<T> attachExecuteSourceListener(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, T, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Ljava/lang/Object;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
new com.oracle.truffle.api.instrumentation.EventBinding$Source
dup
aload 1
aload 2
aconst_null
aload 3
iconst_0
invokespecial com.oracle.truffle.api.instrumentation.EventBinding$Source.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Ljava/lang/Object;Z)V
iload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addSourceExecutionBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
end local 4 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/InstrumentationHandler;
0 1 1 abstractInstrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 1 2 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
0 1 3 listener TT;
0 1 4 notifyLoaded Z
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
abstractInstrumenter
filter
listener
notifyLoaded
private <T extends java.io.OutputStream> com.oracle.truffle.api.instrumentation.EventBinding<T> attachOutputConsumer(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, T, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Ljava/io/OutputStream;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new com.oracle.truffle.api.instrumentation.EventBinding
dup
aload 1
aload 2
invokespecial com.oracle.truffle.api.instrumentation.EventBinding.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Ljava/lang/Object;)V
iload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addOutputBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
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/InstrumentationHandler;
0 1 1 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 1 2 stream TT;
0 1 3 errorOutput Z
Signature: <T:Ljava/io/OutputStream;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
instrumenter
stream
errorOutput
private <T extends com.oracle.truffle.api.instrumentation.AllocationListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachAllocationListener(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, com.oracle.truffle.api.instrumentation.AllocationEventFilter, T);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;Lcom/oracle/truffle/api/instrumentation/AllocationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new com.oracle.truffle.api.instrumentation.EventBinding$Allocation
dup
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.instrumentation.EventBinding$Allocation.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;Ljava/lang/Object;)V
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addAllocationBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Allocation;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
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/InstrumentationHandler;
0 1 1 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 1 2 filter Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;
0 1 3 listener TT;
Signature: <T::Lcom/oracle/truffle/api/instrumentation/AllocationListener;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
instrumenter
filter
listener
private <T extends com.oracle.truffle.api.instrumentation.ContextsListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachContextsListener(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, T, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/ContextsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
ifne 1
aload 2
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
new com.oracle.truffle.api.instrumentation.EventBinding
dup
aload 1
aload 2
invokespecial com.oracle.truffle.api.instrumentation.EventBinding.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Ljava/lang/Object;)V
iload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addContextsBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 2 1 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 2 2 listener TT;
0 2 3 includeActiveContexts Z
Signature: <T::Lcom/oracle/truffle/api/instrumentation/ContextsListener;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
instrumenter
listener
includeActiveContexts
private <T extends com.oracle.truffle.api.instrumentation.ThreadsListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachThreadsListener(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, T, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/ThreadsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
ifne 1
aload 2
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
new com.oracle.truffle.api.instrumentation.EventBinding
dup
aload 1
aload 2
invokespecial com.oracle.truffle.api.instrumentation.EventBinding.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Ljava/lang/Object;)V
iload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.addThreadsBinding:(Lcom/oracle/truffle/api/instrumentation/EventBinding;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 2 1 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 2 2 listener TT;
0 2 3 includeStartedThreads Z
Signature: <T::Lcom/oracle/truffle/api/instrumentation/ThreadsListener;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
instrumenter
listener
includeStartedThreads
private <T extends com.oracle.truffle.api.instrumentation.ThreadsActivationListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachThreadsActivationListener(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, T);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
ifne 1
aload 2
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.instrumentation.EventBinding
dup
aload 1
aload 2
invokespecial com.oracle.truffle.api.instrumentation.EventBinding.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Ljava/lang/Object;)V
astore 3
start local 3 2: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 4
3: ldc "BEGIN: Adding threads activaiton binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals: com.oracle.truffle.api.instrumentation.EventBinding
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsActivationBindings:Ljava/util/Collection;
dup
astore 4
monitorenter
5: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsActivationBindings:Ljava/util/Collection;
aload 3
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
6: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.invalidateThreadsActivationListeners:()V
7: aload 4
monitorexit
8: goto 11
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter com.oracle.truffle.api.instrumentation.ThreadsActivationListener com.oracle.truffle.api.instrumentation.EventBinding java.util.Collection
StackMap stack: java.lang.Throwable
9: aload 4
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 13
12: ldc "END: Added threads activation binding %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
13: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 14 1 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
0 14 2 listener TT;
2 14 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
Exception table:
from to target type
5 8 9 any
9 10 9 any
Signature: <T::Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;TT;)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
MethodParameters:
Name Flags
instrumenter
listener
private void invalidateThreadsActivationListeners();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsActivationBindings:Ljava/util/Collection;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.stableActivationListeners:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
astore 1
start local 1 2: aload 1
ifnull 5
3: aload 1
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners.assumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
4: aload 0
aconst_null
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.stableActivationListeners:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
5: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
2 6 1 stableListeners Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
com.oracle.truffle.api.instrumentation.ThreadsActivationListener[] getThreadsActivationListeners();
descriptor: ()[Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.stableActivationListeners:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners.assumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 4
2: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.updateStableActivationListeners:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
astore 1
4: StackMap locals:
StackMap stack:
aload 1
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners.listeners:[Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
1 5 1 stableListeners Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
private com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners updateStableActivationListeners();
descriptor: ()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsActivationBindings:Ljava/util/Collection;
dup
astore 2
monitorenter
1: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.stableActivationListeners:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
astore 1
start local 1 2: aload 1
ifnull 3
aload 1
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners.assumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 12
3: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners java.util.Collection
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 4: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsActivationBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners java.util.Collection java.util.List top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 4
start local 4 6: aload 3
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ThreadsActivationListener
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 1
astore 4
start local 4 9: aload 0
new com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners
dup
aload 3
aload 3
invokeinterface java.util.List.size:()I
anewarray com.oracle.truffle.api.instrumentation.ThreadsActivationListener
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ThreadsActivationListener[]
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners.<init>:([Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;)V
dup
astore 1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.stableActivationListeners:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
10: aload 4
ifnull 12
11: aload 4
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners.assumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
end local 4 end local 3 12: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners java.util.Collection
StackMap stack:
aload 2
monitorexit
13: goto 16
end local 1 StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler top java.util.Collection
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
start local 1 16: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
2 14 1 stableListeners Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
16 17 1 stableListeners Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
4 12 3 listeners Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;>;
6 7 4 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;>;
9 12 4 oldListeners Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$StableThreadsActivationListeners;
Exception table:
from to target type
1 13 14 any
14 15 14 any
boolean hasContextBindings();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
void notifyContextCreated(com.oracle.truffle.api.TruffleContext);
descriptor: (Lcom/oracle/truffle/api/TruffleContext;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.TruffleContext top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ContextsListener
aload 1
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onContextCreated:(Lcom/oracle/truffle/api/TruffleContext;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 context Lcom/oracle/truffle/api/TruffleContext;
2 3 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ContextsListener;>;
MethodParameters:
Name Flags
context
void notifyContextClosed(com.oracle.truffle.api.TruffleContext);
descriptor: (Lcom/oracle/truffle/api/TruffleContext;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.TruffleContext top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ContextsListener
aload 1
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onContextClosed:(Lcom/oracle/truffle/api/TruffleContext;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 context Lcom/oracle/truffle/api/TruffleContext;
2 3 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ContextsListener;>;
MethodParameters:
Name Flags
context
void notifyContextResetLimit(com.oracle.truffle.api.TruffleContext);
descriptor: (Lcom/oracle/truffle/api/TruffleContext;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.TruffleContext top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ContextsListener
aload 1
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onContextResetLimits:(Lcom/oracle/truffle/api/TruffleContext;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 context Lcom/oracle/truffle/api/TruffleContext;
2 3 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ContextsListener;>;
MethodParameters:
Name Flags
context
void notifyLanguageContextCreated(com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
descriptor: (Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.TruffleContext com.oracle.truffle.api.nodes.LanguageInfo top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ContextsListener
aload 1
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextCreated:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 context Lcom/oracle/truffle/api/TruffleContext;
0 5 2 language Lcom/oracle/truffle/api/nodes/LanguageInfo;
2 3 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ContextsListener;>;
MethodParameters:
Name Flags
context
language
void notifyLanguageContextInitialized(com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
descriptor: (Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.TruffleContext com.oracle.truffle.api.nodes.LanguageInfo top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ContextsListener
aload 1
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextInitialized:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 context Lcom/oracle/truffle/api/TruffleContext;
0 5 2 language Lcom/oracle/truffle/api/nodes/LanguageInfo;
2 3 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ContextsListener;>;
MethodParameters:
Name Flags
context
language
void notifyLanguageContextFinalized(com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
descriptor: (Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.TruffleContext com.oracle.truffle.api.nodes.LanguageInfo top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ContextsListener
aload 1
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextFinalized:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 context Lcom/oracle/truffle/api/TruffleContext;
0 5 2 language Lcom/oracle/truffle/api/nodes/LanguageInfo;
2 3 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ContextsListener;>;
MethodParameters:
Name Flags
context
language
void notifyLanguageContextDisposed(com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
descriptor: (Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.contextsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.TruffleContext com.oracle.truffle.api.nodes.LanguageInfo top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ContextsListener
aload 1
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextDisposed:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 context Lcom/oracle/truffle/api/TruffleContext;
0 5 2 language Lcom/oracle/truffle/api/nodes/LanguageInfo;
2 3 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ContextsListener;>;
MethodParameters:
Name Flags
context
language
void notifyThreadStarted(com.oracle.truffle.api.TruffleContext, java.lang.Thread);
descriptor: (Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.TruffleContext java.lang.Thread top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ThreadsListener
aload 1
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.ThreadsListener.onThreadInitialized:(Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 context Lcom/oracle/truffle/api/TruffleContext;
0 5 2 thread Ljava/lang/Thread;
2 3 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ThreadsListener;>;
MethodParameters:
Name Flags
context
thread
void notifyThreadFinished(com.oracle.truffle.api.TruffleContext, java.lang.Thread);
descriptor: (Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.threadsBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.TruffleContext java.lang.Thread top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.ThreadsListener
aload 1
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.ThreadsListener.onThreadDisposed:(Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 1 context Lcom/oracle/truffle/api/TruffleContext;
0 5 2 thread Ljava/lang/Thread;
2 3 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ThreadsListener;>;
MethodParameters:
Name Flags
context
thread
java.util.Set<java.lang.Class<?>> getProvidedTags(com.oracle.truffle.api.TruffleLanguage<?>);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;)Ljava/util/Set;
flags: (0x0000)
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 2
start local 2 3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.cachedProvidedTags:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 3
start local 3 4: aload 3
ifnonnull 11
5: aload 2
ldc Lcom/oracle/truffle/api/instrumentation/ProvidedTags;
invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.truffle.api.instrumentation.ProvidedTags
astore 4
start local 4 6: aload 4
ifnull 7
aload 4
invokeinterface com.oracle.truffle.api.instrumentation.ProvidedTags.value:()[Ljava/lang/Class;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
goto 8
StackMap locals: java.lang.Class java.util.Set com.oracle.truffle.api.instrumentation.ProvidedTags
StackMap stack:
7: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
StackMap locals:
StackMap stack: java.util.List
8: astore 5
start local 5 9: new java.util.HashSet
dup
aload 5
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
astore 3
10: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.cachedProvidedTags:Ljava/util/Map;
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 11: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 12 1 lang Lcom/oracle/truffle/api/TruffleLanguage<*>;
3 12 2 languageClass Ljava/lang/Class<*>;
4 12 3 tags Ljava/util/Set<Ljava/lang/Class<*>;>;
6 11 4 languageTags Lcom/oracle/truffle/api/instrumentation/ProvidedTags;
9 11 5 languageTagsList Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;)Ljava/util/Set<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
lang
java.util.Set<java.lang.Class<?>> getProvidedTags(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.nodesAccess:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getLanguage:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/TruffleLanguage;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getProvidedTags:(Lcom/oracle/truffle/api/TruffleLanguage;)Ljava/util/Set;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 1 1 root Lcom/oracle/truffle/api/nodes/Node;
Signature: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
root
static boolean isInstrumentableNode(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode
ifeq 4
3: aload 0
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.isInstrumentable:()Z
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
static void trace(java.lang.String, java.lang.Object[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
astore 2
start local 2 1: aload 2
aload 0
aload 1
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 message Ljava/lang/String;
0 3 1 args [Ljava/lang/Object;
1 3 2 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
message
args
private static void visitRoot(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor, boolean, boolean);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;ZZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
iload 3
iload 4
iconst_0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.visitRoot:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;ZZZ)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 root Lcom/oracle/truffle/api/nodes/RootNode;
0 2 1 node Lcom/oracle/truffle/api/nodes/Node;
0 2 2 visitor Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 2 3 forceRootBitComputation Z
0 2 4 firstExecution Z
MethodParameters:
Name Flags
root
node final
visitor final
forceRootBitComputation
firstExecution
private static void visitRoot(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor, boolean, boolean, boolean);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;ZZZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "BEGIN: Visit root %s for %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.oracle.truffle.api.nodes.RootNode.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.runtimeAccess:()Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 0
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.isOSRRootNode:(Lcom/oracle/truffle/api/nodes/RootNode;)Z
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
aload 2
aload 0
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.get:(Lcom/oracle/truffle/api/nodes/RootNode;)I
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
5: aload 2
iload 5
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.setExecutedRootNodeBit:Z
6: aload 2
aload 0
aload 1
iload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.preVisit:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Z)V
7: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.nodesAccess:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getLock:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/concurrent/locks/Lock;
astore 6
start local 6 8: aload 6
invokeinterface java.util.concurrent.locks.Lock.lock:()V
9: aload 2
aload 0
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.get:(Lcom/oracle/truffle/api/nodes/RootNode;)I
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
10: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.shouldVisit:()Z
ifne 11
iload 3
ifeq 26
11: StackMap locals: java.util.concurrent.locks.Lock
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 13
12: ldc "BEGIN: Traverse root %s for %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.oracle.truffle.api.nodes.RootNode.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
13: StackMap locals:
StackMap stack:
iload 3
ifeq 18
14: aload 2
aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isUninitialized:(I)Z
ifeq 15
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.getAll:()I
goto 16
StackMap locals:
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
15: aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor int int int java.util.concurrent.locks.Lock
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor int
16: putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computingRootNodeBits:I
17: goto 20
StackMap locals:
StackMap stack:
18: aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isUninitialized:(I)Z
ifeq 20
19: aload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.getAll:()I
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computingRootNodeBits:I
20: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visit:(Lcom/oracle/truffle/api/nodes/Node;)Z
pop
21: aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computingRootNodeBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isUninitialized:(I)Z
ifne 24
22: aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computingRootNodeBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.set:(Lcom/oracle/truffle/api/nodes/RootNode;I)V
23: aload 2
aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computingRootNodeBits:I
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
24: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 26
25: ldc "END: Traverse root %s for %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.oracle.truffle.api.nodes.RootNode.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
26: StackMap locals:
StackMap stack:
iload 5
ifeq 33
aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.wasNotExecuted:(I)Z
ifeq 33
27: aload 2
aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setExecuted:(I)I
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
28: aload 0
aload 2
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.set:(Lcom/oracle/truffle/api/nodes/RootNode;I)V
29: goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
30: astore 7
31: aload 6
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
32: aload 7
athrow
33: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
end local 6 34: goto 38
StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor int int int
StackMap stack: java.lang.Throwable
35: astore 8
36: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.postVisit:()V
37: aload 8
athrow
38: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.postVisit:()V
39: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 41
40: ldc "END: Visited root %s for %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.oracle.truffle.api.nodes.RootNode.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
41: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 root Lcom/oracle/truffle/api/nodes/RootNode;
0 42 1 node Lcom/oracle/truffle/api/nodes/Node;
0 42 2 visitor Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 42 3 forceRootBitComputation Z
0 42 4 firstExecution Z
0 42 5 setExecutedRootNodeBit Z
8 34 6 lock Ljava/util/concurrent/locks/Lock;
Exception table:
from to target type
9 30 30 any
7 35 35 any
MethodParameters:
Name Flags
root
node final
visitor final
forceRootBitComputation
firstExecution
setExecutedRootNodeBit
static void removeWrapper(com.oracle.truffle.api.instrumentation.ProbeNode);
descriptor: (Lcom/oracle/truffle/api/instrumentation/ProbeNode;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 2
1: ldc "Remove wrapper for %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.findWrapper:()Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
astore 1
start local 1 3: aload 1
checkcast com.oracle.truffle.api.nodes.Node
aload 1
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getDelegateNode:()Lcom/oracle/truffle/api/nodes/Node;
invokevirtual com.oracle.truffle.api.nodes.Node.replace:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 node Lcom/oracle/truffle/api/instrumentation/ProbeNode;
3 5 1 wrapperNode Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
MethodParameters:
Name Flags
node
private static void invalidateWrapper(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 1
start local 1 1: aload 1
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
ifne 3
2: return
3: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
aload 0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.invalidateWrapperImpl:(Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;Lcom/oracle/truffle/api/nodes/Node;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 node Lcom/oracle/truffle/api/nodes/Node;
1 5 1 parent Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
private static void invalidateWrapperImpl(com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getProbeNode:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
astore 2
start local 2 1: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 4
2: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 3
start local 3 3: ldc "Invalidate wrapper for %s, section %s %n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 3
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 3 4: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode
StackMap stack:
aload 2
ifnull 6
5: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.invalidate:()V
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 parent Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
0 7 1 node Lcom/oracle/truffle/api/nodes/Node;
1 7 2 probeNode Lcom/oracle/truffle/api/instrumentation/ProbeNode;
3 4 3 section Lcom/oracle/truffle/api/source/SourceSection;
MethodParameters:
Name Flags
parent
node
static boolean hasTagImpl(java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.Node, java.lang.Class<?>);
descriptor: (Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 4
1: aload 1
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode
ifeq 3
2: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.hasTag:(Ljava/lang/Class;)Z
ireturn
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
0 5 1 node Lcom/oracle/truffle/api/nodes/Node;
0 5 2 tag Ljava/lang/Class<*>;
Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
providedTags
node
tag
<T> T lookup(, java.lang.Class<T>);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.instrumenterMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
astore 3
start local 3 1: aload 3
ifnonnull 2
aconst_null
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
StackMap stack:
2: aload 3
aload 0
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter.lookup:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Ljava/lang/Class;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
3: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 4 1 key Ljava/lang/Object;
0 4 2 type Ljava/lang/Class<TT;>;
1 4 3 value Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
key
type
com.oracle.truffle.api.instrumentation.AllocationReporter getAllocationReporter(com.oracle.truffle.api.nodes.LanguageInfo);
descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.api.instrumentation.AllocationReporter
dup
aload 1
invokespecial com.oracle.truffle.api.instrumentation.AllocationReporter.<init>:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
astore 2
start local 2 1: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.allocationReporters:Ljava/util/Collection;
aload 2
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.allocationBindings:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler com.oracle.truffle.api.nodes.LanguageInfo com.oracle.truffle.api.instrumentation.AllocationReporter top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.EventBinding$Allocation
astore 3
start local 3 4: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Allocation.getAllocationFilter:()Lcom/oracle/truffle/api/instrumentation/AllocationEventFilter;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.AllocationEventFilter.contains:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Z
ifeq 6
5: aload 2
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Allocation.getElement:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.AllocationListener
invokevirtual com.oracle.truffle.api.instrumentation.AllocationReporter.addListener:(Lcom/oracle/truffle/api/instrumentation/AllocationListener;)V
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 8 1 info Lcom/oracle/truffle/api/nodes/LanguageInfo;
1 8 2 allocationReporter Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
4 6 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Allocation<+Lcom/oracle/truffle/api/instrumentation/AllocationListener;>;
MethodParameters:
Name Flags
info
void finalizeStore();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
1: aload 0
aconst_null
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
2: aload 0
aconst_null
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.in:Ljava/io/InputStream;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
void patch(com.oracle.truffle.api.impl.DispatchOutputStream, com.oracle.truffle.api.impl.DispatchOutputStream, java.io.InputStream);
descriptor: (Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
1: aload 0
aload 2
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
2: aload 0
aload 3
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.in:Ljava/io/InputStream;
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 4 1 newOut Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 4 2 newErr Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 4 3 newIn Ljava/io/InputStream;
MethodParameters:
Name Flags
newOut
newErr
newIn
static void failInstrumentInitialization(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env, java.lang.String, java.lang.Throwable);
descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Ljava/lang/String;Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.Exception
dup
aload 1
aload 2
invokespecial java.lang.Exception.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
astore 3
start local 3 1: new java.io.PrintStream
dup
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.err:()Ljava/io/OutputStream;
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
astore 4
start local 4 2: aload 3
aload 4
invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintStream;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
0 4 1 message Ljava/lang/String;
0 4 2 t Ljava/lang/Throwable;
1 4 3 exception Ljava/lang/Exception;
2 4 4 stream Ljava/io/PrintStream;
MethodParameters:
Name Flags
env
message
t
private static com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode getWrapperNode(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 1
start local 1 1: aload 1
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
ifeq 2
aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
goto 3
StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 node Lcom/oracle/truffle/api/nodes/Node;
1 4 1 parent Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
private static void clearRetiredNodeReference(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
astore 1
start local 1 1: aload 1
ifnull 4
2: aload 1
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getProbeNode:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.clearRetiredNodeReference:()V
3: aload 1
aload 0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.invalidateWrapperImpl:(Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;Lcom/oracle/truffle/api/nodes/Node;)V
4: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 node Lcom/oracle/truffle/api/nodes/Node;
1 5 1 wrapperNode Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
MethodParameters:
Name Flags
node
private static void traceFilterCheck(java.lang.String, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: ldc " Filter %4s node:%s section:%s %n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 2
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 result Ljava/lang/String;
0 2 1 instrumentableNode Lcom/oracle/truffle/api/nodes/Node;
0 2 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
MethodParameters:
Name Flags
result
instrumentableNode
sourceSection
}
SourceFile: "InstrumentationHandler.java"
NestMembers:
com.oracle.truffle.api.instrumentation.InstrumentationHandler$1 com.oracle.truffle.api.instrumentation.InstrumentationHandler$2 com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection$1 com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter com.oracle.truffle.api.instrumentation.InstrumentationHandler$BindingLoadSourceSectionEvent com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList$1 com.oracle.truffle.api.instrumentation.InstrumentationHandler$DisposeWrapperOperation com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList com.oracle.truffle.api.instrumentation.InstrumentationHandler$FindSourcesOperation com.oracle.truffle.api.instrumentation.InstrumentationHandler$InsertWrapperOperation com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter com.oracle.truffle.api.instrumentation.InstrumentationHandler$NotifyLoadedOperation com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder com.oracle.truffle.api.instrumentation.InstrumentationHandler$WeakAsyncList
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
public abstract NodeSupport = com.oracle.truffle.api.impl.Accessor$NodeSupport of com.oracle.truffle.api.impl.Accessor
public abstract RuntimeSupport = com.oracle.truffle.api.impl.Accessor$RuntimeSupport of com.oracle.truffle.api.impl.Accessor
final Allocation = com.oracle.truffle.api.instrumentation.EventBinding$Allocation of com.oracle.truffle.api.instrumentation.EventBinding
final Source = com.oracle.truffle.api.instrumentation.EventBinding$Source of com.oracle.truffle.api.instrumentation.EventBinding
public abstract WrapperNode = com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode of com.oracle.truffle.api.instrumentation.InstrumentableNode
com.oracle.truffle.api.instrumentation.InstrumentationHandler$1
com.oracle.truffle.api.instrumentation.InstrumentationHandler$2
private abstract AbstractAsyncCollection = com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractAsyncCollection of com.oracle.truffle.api.instrumentation.InstrumentationHandler
abstract AbstractInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
private BindingLoadSourceSectionEvent = com.oracle.truffle.api.instrumentation.InstrumentationHandler$BindingLoadSourceSectionEvent of com.oracle.truffle.api.instrumentation.InstrumentationHandler
CopyOnWriteList = com.oracle.truffle.api.instrumentation.InstrumentationHandler$CopyOnWriteList of com.oracle.truffle.api.instrumentation.InstrumentationHandler
private DisposeWrapperOperation = com.oracle.truffle.api.instrumentation.InstrumentationHandler$DisposeWrapperOperation of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final EngineInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
private final EventBindingList = com.oracle.truffle.api.instrumentation.InstrumentationHandler$EventBindingList of com.oracle.truffle.api.instrumentation.InstrumentationHandler
private FindSourcesOperation = com.oracle.truffle.api.instrumentation.InstrumentationHandler$FindSourcesOperation of com.oracle.truffle.api.instrumentation.InstrumentationHandler
private InsertWrapperOperation = com.oracle.truffle.api.instrumentation.InstrumentationHandler$InsertWrapperOperation of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final InstrumentClientInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final LanguageClientInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
private NotifyLoadedOperation = com.oracle.truffle.api.instrumentation.InstrumentationHandler$NotifyLoadedOperation of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final StableThreadsActivationListeners = com.oracle.truffle.api.instrumentation.InstrumentationHandler$StableThreadsActivationListeners of com.oracle.truffle.api.instrumentation.InstrumentationHandler
private abstract VisitOperation = com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final Scope = com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope of com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
private final Visitor = com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor of com.oracle.truffle.api.instrumentation.InstrumentationHandler
private VisitorBuilder = com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitorBuilder of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final WeakAsyncList = com.oracle.truffle.api.instrumentation.InstrumentationHandler$WeakAsyncList of com.oracle.truffle.api.instrumentation.InstrumentationHandler
abstract EventChainNode = com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode of com.oracle.truffle.api.instrumentation.ProbeNode
final SourcesNotificationQueue = com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler$SourcesNotificationQueue of com.oracle.truffle.api.instrumentation.SourceInstrumentationHandler
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument