final class com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl extends com.oracle.truffle.api.impl.Accessor$InstrumentSupport
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl
super_class: com.oracle.truffle.api.impl.Accessor$InstrumentSupport
{
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/InstrumentAccessor;
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.InstrumentAccessor$InstrumentImpl.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.impl.Accessor$InstrumentSupport.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
public java.lang.Object createInstrumentationHandler(java.lang.Object, com.oracle.truffle.api.impl.DispatchOutputStream, com.oracle.truffle.api.impl.DispatchOutputStream, java.io.InputStream, org.graalvm.polyglot.io.MessageTransport, boolean);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lorg/graalvm/polyglot/io/MessageTransport;Z)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: new com.oracle.truffle.api.instrumentation.InstrumentationHandler
dup
aload 1
aload 2
aload 3
aload 4
aload 5
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lorg/graalvm/polyglot/io/MessageTransport;)V
areturn
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 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 1 1 polyglotEngine Ljava/lang/Object;
0 1 2 out Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 1 3 err Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 1 4 in Ljava/io/InputStream;
0 1 5 messageInterceptor Lorg/graalvm/polyglot/io/MessageTransport;
0 1 6 strongReferences Z
MethodParameters:
Name Flags
polyglotEngine
out
err
in
messageInterceptor
strongReferences
public void initializeInstrument(, , java.lang.String, java.util.function.Supplier<? extends java.lang.Object>);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Ljava/util/function/Supplier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
aload 2
aload 3
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.initializeInstrument:(Ljava/lang/Object;Ljava/lang/String;Ljava/util/function/Supplier;)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 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 2 1 instrumentationHandler Ljava/lang/Object;
0 2 2 polyglotInstrument Ljava/lang/Object;
0 2 3 instrumentClassName Ljava/lang/String;
0 2 4 instrumentSupplier Ljava/util/function/Supplier<+Ljava/lang/Object;>;
Signature: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Ljava/util/function/Supplier<+Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
instrumentationHandler
polyglotInstrument
instrumentClassName
instrumentSupplier
public void createInstrument(java.lang.Object, java.lang.Object, java.lang.String[], org.graalvm.options.OptionValues);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/String;Lorg/graalvm/options/OptionValues;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
aload 2
aload 3
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.createInstrument:(Ljava/lang/Object;[Ljava/lang/String;Lorg/graalvm/options/OptionValues;)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 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 2 1 instrumentationHandler Ljava/lang/Object;
0 2 2 polyglotInstrument Ljava/lang/Object;
0 2 3 expectedServices [Ljava/lang/String;
0 2 4 options Lorg/graalvm/options/OptionValues;
MethodParameters:
Name Flags
instrumentationHandler
polyglotInstrument
expectedServices
options
public java.lang.Object getEngineInstrumenter(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.engineInstrumenter:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 1 1 instrumentationHandler Ljava/lang/Object;
MethodParameters:
Name Flags
instrumentationHandler
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=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl.getHandler:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 3
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.onNodeInserted:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;)V
3: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler
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/InstrumentAccessor$InstrumentImpl;
0 4 1 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 4 2 tree Lcom/oracle/truffle/api/nodes/Node;
1 4 3 handler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
MethodParameters:
Name Flags
rootNode
tree
public org.graalvm.options.OptionDescriptors describeEngineOptions(java.lang.Object, java.lang.Object, java.lang.String);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)Lorg/graalvm/options/OptionDescriptors;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.instrumenterMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
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.instrument:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument.getOptionDescriptors:()Lorg/graalvm/options/OptionDescriptors;
astore 5
start local 5 2: aload 3
aload 4
aload 5
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl.validateOptions:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;Lorg/graalvm/options/OptionDescriptors;)Lorg/graalvm/options/OptionDescriptors;
areturn
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 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 instrumentationHandler Ljava/lang/Object;
0 3 2 key Ljava/lang/Object;
0 3 3 requiredGroup Ljava/lang/String;
1 3 4 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
2 3 5 descriptors Lorg/graalvm/options/OptionDescriptors;
MethodParameters:
Name Flags
instrumentationHandler
key
requiredGroup
public org.graalvm.options.OptionDescriptors describeContextOptions(java.lang.Object, java.lang.Object, java.lang.String);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)Lorg/graalvm/options/OptionDescriptors;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.instrumenterMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
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.instrument:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument.getContextOptionDescriptors:()Lorg/graalvm/options/OptionDescriptors;
astore 5
start local 5 2: aload 3
aload 4
aload 5
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl.validateOptions:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;Lorg/graalvm/options/OptionDescriptors;)Lorg/graalvm/options/OptionDescriptors;
areturn
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 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 instrumentationHandler Ljava/lang/Object;
0 3 2 key Ljava/lang/Object;
0 3 3 requiredGroup Ljava/lang/String;
1 3 4 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
2 3 5 descriptors Lorg/graalvm/options/OptionDescriptors;
MethodParameters:
Name Flags
instrumentationHandler
key
requiredGroup
private static org.graalvm.options.OptionDescriptors validateOptions(java.lang.String, com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter, org.graalvm.options.OptionDescriptors);
descriptor: (Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;Lorg/graalvm/options/OptionDescriptors;)Lorg/graalvm/options/OptionDescriptors;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: getstatic org.graalvm.options.OptionDescriptors.EMPTY:Lorg/graalvm/options/OptionDescriptors;
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 3: aload 2
invokeinterface org.graalvm.options.OptionDescriptors.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: java.lang.String com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter org.graalvm.options.OptionDescriptors java.lang.String top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.options.OptionDescriptor
astore 4
start local 4 5: aload 4
invokevirtual org.graalvm.options.OptionDescriptor.getName:()Ljava/lang/String;
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
aload 4
invokevirtual org.graalvm.options.OptionDescriptor.getName:()Ljava/lang/String;
aload 3
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 9
6: new java.lang.IllegalArgumentException
dup
ldc "Illegal option prefix in name '%s' specified for option described by instrument '%s'. The option prefix must match the id of the instrument '%s'."
iconst_3
anewarray java.lang.Object
dup
iconst_0
7: aload 4
invokevirtual org.graalvm.options.OptionDescriptor.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 1
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter.instrument:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 0
aastore
8: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 9: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
10: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 requiredGroup Ljava/lang/String;
0 11 1 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
0 11 2 descriptors Lorg/graalvm/options/OptionDescriptors;
3 11 3 groupPlusDot Ljava/lang/String;
5 9 4 descriptor Lorg/graalvm/options/OptionDescriptor;
MethodParameters:
Name Flags
requiredGroup
instrumenter
descriptors
public void finalizeInstrument(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.finalizeInstrumenter:(Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 2 1 instrumentationHandler Ljava/lang/Object;
0 2 2 polyglotInstrument Ljava/lang/Object;
MethodParameters:
Name Flags
instrumentationHandler
polyglotInstrument
public void disposeInstrument(java.lang.Object, java.lang.Object, boolean);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
aload 2
iload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.disposeInstrumenter:(Ljava/lang/Object;Z)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/InstrumentAccessor$InstrumentImpl;
0 2 1 instrumentationHandler Ljava/lang/Object;
0 2 2 polyglotInstrument Ljava/lang/Object;
0 2 3 cleanupRequired Z
MethodParameters:
Name Flags
instrumentationHandler
polyglotInstrument
cleanupRequired
public void collectEnvServices(java.util.Set<java.lang.Object>, , com.oracle.truffle.api.TruffleLanguage<?>);
descriptor: (Ljava/util/Set;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 4
start local 4 1: aload 4
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.forLanguage:(Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/api/instrumentation/Instrumenter;
astore 5
start local 5 2: aload 1
aload 5
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: aload 4
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 3
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguageInfo:(Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getAllocationReporter:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
astore 6
start local 6 4: aload 1
aload 6
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: 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 6 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 6 1 collectTo Ljava/util/Set<Ljava/lang/Object;>;
0 6 2 polyglotLanguage Ljava/lang/Object;
0 6 3 language Lcom/oracle/truffle/api/TruffleLanguage<*>;
1 6 4 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
2 6 5 instrumenter Lcom/oracle/truffle/api/instrumentation/Instrumenter;
4 6 6 allocationReporter Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
Signature: (Ljava/util/Set<Ljava/lang/Object;>;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage<*>;)V
MethodParameters:
Name Flags
collectTo
polyglotLanguage
language
public <T> T getInstrumentationHandlerService(, , java.lang.Class<T>);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
aload 2
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.lookup:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
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/InstrumentAccessor$InstrumentImpl;
0 1 1 instrumentationHandler Ljava/lang/Object;
0 1 2 key Ljava/lang/Object;
0 1 3 type Ljava/lang/Class<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
instrumentationHandler
key
type
public void onFirstExecution(com.oracle.truffle.api.nodes.RootNode, boolean);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl.$assertionsDisabled:Z
ifne 1
iload 2
ifeq 1
aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl.validEngine:(Lcom/oracle/truffle/api/nodes/RootNode;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl.getHandler:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
astore 3
start local 3 2: aload 3
ifnull 4
3: aload 3
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.onFirstExecution:(Lcom/oracle/truffle/api/nodes/RootNode;)V
4: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 5 1 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 5 2 validate Z
2 5 3 handler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
MethodParameters:
Name Flags
rootNode
validate
public void onLoad(com.oracle.truffle.api.nodes.RootNode);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl.getHandler:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.onLoad:(Lcom/oracle/truffle/api/nodes/RootNode;)V
3: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 4 1 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
1 4 2 handler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
MethodParameters:
Name Flags
rootNode
public boolean hasContextBindings(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 2
start local 2 1: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.hasContextBindings:()Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 2 1 engine Ljava/lang/Object;
1 2 2 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
MethodParameters:
Name Flags
engine
public void notifyContextCreated(java.lang.Object, com.oracle.truffle.api.TruffleContext);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 3
start local 3 1: aload 3
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifyContextCreated:(Lcom/oracle/truffle/api/TruffleContext;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 engine Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/api/TruffleContext;
1 3 3 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
engine
context
public void notifyContextClosed(java.lang.Object, com.oracle.truffle.api.TruffleContext);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 3
start local 3 1: aload 3
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifyContextClosed:(Lcom/oracle/truffle/api/TruffleContext;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 engine Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/api/TruffleContext;
1 3 3 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
engine
context
public void notifyContextResetLimit(java.lang.Object, com.oracle.truffle.api.TruffleContext);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 3
start local 3 1: aload 3
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifyContextResetLimit:(Lcom/oracle/truffle/api/TruffleContext;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 engine Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/api/TruffleContext;
1 3 3 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
MethodParameters:
Name Flags
engine
context
public void notifyLanguageContextCreated(java.lang.Object, com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 4
start local 4 1: aload 4
aload 2
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifyLanguageContextCreated:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 engine Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/api/TruffleContext;
0 3 3 info Lcom/oracle/truffle/api/nodes/LanguageInfo;
1 3 4 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
MethodParameters:
Name Flags
engine
context
info
public void notifyLanguageContextInitialized(java.lang.Object, com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 4
start local 4 1: aload 4
aload 2
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifyLanguageContextInitialized:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 engine Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/api/TruffleContext;
0 3 3 info Lcom/oracle/truffle/api/nodes/LanguageInfo;
1 3 4 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
MethodParameters:
Name Flags
engine
context
info
public void notifyLanguageContextFinalized(java.lang.Object, com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 4
start local 4 1: aload 4
aload 2
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifyLanguageContextFinalized:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 engine Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/api/TruffleContext;
0 3 3 info Lcom/oracle/truffle/api/nodes/LanguageInfo;
1 3 4 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
MethodParameters:
Name Flags
engine
context
info
public void notifyLanguageContextDisposed(java.lang.Object, com.oracle.truffle.api.TruffleContext, com.oracle.truffle.api.nodes.LanguageInfo);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 4
start local 4 1: aload 4
aload 2
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifyLanguageContextDisposed:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 engine Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/api/TruffleContext;
0 3 3 info Lcom/oracle/truffle/api/nodes/LanguageInfo;
1 3 4 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
MethodParameters:
Name Flags
engine
context
info
public void notifyThreadStarted(java.lang.Object, com.oracle.truffle.api.TruffleContext, java.lang.Thread);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 4
start local 4 1: aload 4
aload 2
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifyThreadStarted:(Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 engine Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/api/TruffleContext;
0 3 3 thread Ljava/lang/Thread;
1 3 4 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
engine
context
thread
public void notifyThreadFinished(java.lang.Object, com.oracle.truffle.api.TruffleContext, java.lang.Thread);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 4
start local 4 1: aload 4
aload 2
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.notifyThreadFinished:(Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 3 1 engine Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/api/TruffleContext;
0 3 3 thread Ljava/lang/Thread;
1 3 4 instrumentationHandler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
engine
context
thread
public org.graalvm.polyglot.SourceSection createSourceSection(java.lang.Object, org.graalvm.polyglot.Source, com.oracle.truffle.api.source.SourceSection);
descriptor: (Ljava/lang/Object;Lorg/graalvm/polyglot/Source;Lcom/oracle/truffle/api/source/SourceSection;)Lorg/graalvm/polyglot/SourceSection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.TruffleInstrument$Env
astore 4
start local 4 1: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getPolyglotInstrument:()Ljava/lang/Object;
aload 2
aload 3
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.createSourceSection:(Ljava/lang/Object;Lorg/graalvm/polyglot/Source;Lcom/oracle/truffle/api/source/SourceSection;)Lorg/graalvm/polyglot/SourceSection;
areturn
end local 4 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/InstrumentAccessor$InstrumentImpl;
0 2 1 instrumentEnv Ljava/lang/Object;
0 2 2 source Lorg/graalvm/polyglot/Source;
0 2 3 ss Lcom/oracle/truffle/api/source/SourceSection;
1 2 4 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
MethodParameters:
Name Flags
instrumentEnv
source
ss
public void patchInstrumentationHandler(java.lang.Object, com.oracle.truffle.api.impl.DispatchOutputStream, com.oracle.truffle.api.impl.DispatchOutputStream, java.io.InputStream);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
aload 2
aload 3
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.patch:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;)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 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 2 1 instrumentationHandler Ljava/lang/Object;
0 2 2 out Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 2 3 err Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 2 4 in Ljava/io/InputStream;
MethodParameters:
Name Flags
instrumentationHandler
out
err
in
public void finalizeStoreInstrumentationHandler(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.finalizeStore:()V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 2 1 instrumentationHandler Ljava/lang/Object;
MethodParameters:
Name Flags
instrumentationHandler
public boolean isInputValueSlotIdentifier(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode$SavedInputValueID
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 1 1 identifier Ljava/lang/Object;
MethodParameters:
Name Flags
identifier
public java.util.Collection<com.oracle.truffle.api.CallTarget> getLoadedCallTargets();
descriptor: (Ljava/lang/Object;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler.loadedRoots:Ljava/util/Collection;
astore 2
start local 2 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 2: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl java.lang.Object java.util.Collection java.util.List top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.RootNode
astore 4
start local 4 4: aload 4
invokevirtual com.oracle.truffle.api.nodes.RootNode.getCallTarget:()Lcom/oracle/truffle/api/RootCallTarget;
astore 6
start local 6 5: aload 6
ifnull 7
6: aload 3
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aload 3
areturn
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/InstrumentAccessor$InstrumentImpl;
0 9 1 instrumentationHandler Ljava/lang/Object;
1 9 2 roots Ljava/util/Collection<Lcom/oracle/truffle/api/nodes/RootNode;>;
2 9 3 targets Ljava/util/List<Lcom/oracle/truffle/api/CallTarget;>;
4 7 4 root Lcom/oracle/truffle/api/nodes/RootNode;
5 7 6 target Lcom/oracle/truffle/api/CallTarget;
Signature: (Ljava/lang/Object;)Ljava/util/Collection<Lcom/oracle/truffle/api/CallTarget;>;
MethodParameters:
Name Flags
instrumentationHandler
private static com.oracle.truffle.api.instrumentation.InstrumentationHandler getHandler(com.oracle.truffle.api.nodes.RootNode);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.nodesAccess:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 0
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotEngine:(Lcom/oracle/truffle/api/nodes/RootNode;)Ljava/lang/Object;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentationHandler:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
1 4 1 polyglotEngineImpl Ljava/lang/Object;
MethodParameters:
Name Flags
rootNode
public boolean isInstrumentable(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.isInstrumentableNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 1 1 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
private static boolean validEngine(com.oracle.truffle.api.nodes.RootNode);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getCurrentPolyglotEngine:()Ljava/lang/Object;
astore 1
start local 1 1: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 0
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isHostToGuestRootNode:(Lcom/oracle/truffle/api/nodes/RootNode;)Z
ifne 4
2: aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.nodesAccess:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 0
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotEngine:(Lcom/oracle/truffle/api/nodes/RootNode;)Ljava/lang/Object;
if_acmpeq 4
3: invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.invalidSharingError:(Ljava/lang/Object;)Ljava/lang/AssertionError;
athrow
4: StackMap locals: java.lang.Object
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
1 5 1 currentPolyglotEngine Ljava/lang/Object;
MethodParameters:
Name Flags
rootNode
public java.lang.Object invokeContextLocalFactory(java.lang.Object, com.oracle.truffle.api.TruffleContext);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.TruffleInstrument$ContextLocalFactory
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.TruffleInstrument$ContextLocalFactory.create:(Lcom/oracle/truffle/api/TruffleContext;)Ljava/lang/Object;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: new java.lang.IllegalStateException
dup
ldc "%s.create is not allowed to return null."
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$ContextLocalFactory;
invokevirtual java.lang.Class.getSimpleName:()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
3: StackMap locals: java.lang.Object
StackMap stack:
aload 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/InstrumentAccessor$InstrumentImpl;
0 4 1 factory Ljava/lang/Object;
0 4 2 truffleContext Lcom/oracle/truffle/api/TruffleContext;
1 4 3 result Ljava/lang/Object;
MethodParameters:
Name Flags
factory
truffleContext
public java.lang.Object invokeContextThreadLocalFactory(java.lang.Object, com.oracle.truffle.api.TruffleContext, java.lang.Thread);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.TruffleInstrument$ContextThreadLocalFactory
aload 2
aload 3
invokeinterface com.oracle.truffle.api.instrumentation.TruffleInstrument$ContextThreadLocalFactory.create:(Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)Ljava/lang/Object;
astore 4
start local 4 1: aload 4
ifnonnull 3
2: new java.lang.IllegalStateException
dup
ldc "%s.create is not allowed to return null."
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$ContextThreadLocalFactory;
invokevirtual java.lang.Class.getSimpleName:()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
3: StackMap locals: java.lang.Object
StackMap stack:
aload 4
areturn
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/InstrumentAccessor$InstrumentImpl;
0 4 1 factory Ljava/lang/Object;
0 4 2 truffleContext Lcom/oracle/truffle/api/TruffleContext;
0 4 3 t Ljava/lang/Thread;
1 4 4 result Ljava/lang/Object;
MethodParameters:
Name Flags
factory
truffleContext
t
public void notifyEnter(java.lang.Object, com.oracle.truffle.api.TruffleContext);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 3
start local 3 1: aload 3
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
2: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getThreadsActivationListeners:()[Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 6
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl java.lang.Object com.oracle.truffle.api.TruffleContext com.oracle.truffle.api.instrumentation.InstrumentationHandler top int int com.oracle.truffle.api.instrumentation.ThreadsActivationListener[]
StackMap stack:
3: aload 7
iload 5
aaload
astore 4
start local 4 4: aload 4
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.ThreadsActivationListener.onEnterThread:(Lcom/oracle/truffle/api/TruffleContext;)V
end local 4 5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 6
if_icmplt 3
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 8 1 instrumentationHandler Ljava/lang/Object;
0 8 2 truffleContext Lcom/oracle/truffle/api/TruffleContext;
1 8 3 handler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
4 5 4 listener Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
instrumentationHandler
truffleContext
public void notifyLeave(java.lang.Object, com.oracle.truffle.api.TruffleContext);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler
astore 3
start local 3 1: aload 3
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
2: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getThreadsActivationListeners:()[Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 6
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl java.lang.Object com.oracle.truffle.api.TruffleContext com.oracle.truffle.api.instrumentation.InstrumentationHandler top int int com.oracle.truffle.api.instrumentation.ThreadsActivationListener[]
StackMap stack:
3: aload 7
iload 5
aaload
astore 4
start local 4 4: aload 4
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.ThreadsActivationListener.onLeaveThread:(Lcom/oracle/truffle/api/TruffleContext;)V
end local 4 5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 6
if_icmplt 3
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor$InstrumentImpl;
0 8 1 instrumentationHandler Ljava/lang/Object;
0 8 2 truffleContext Lcom/oracle/truffle/api/TruffleContext;
1 8 3 handler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
4 5 4 listener Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
instrumentationHandler
truffleContext
}
SourceFile: "InstrumentAccessor.java"
NestHost: com.oracle.truffle.api.instrumentation.InstrumentAccessor
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary 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 InstrumentSupport = com.oracle.truffle.api.impl.Accessor$InstrumentSupport of com.oracle.truffle.api.impl.Accessor
public abstract LanguageSupport = com.oracle.truffle.api.impl.Accessor$LanguageSupport of com.oracle.truffle.api.impl.Accessor
public abstract NodeSupport = com.oracle.truffle.api.impl.Accessor$NodeSupport of com.oracle.truffle.api.impl.Accessor
final InstrumentImpl = com.oracle.truffle.api.instrumentation.InstrumentAccessor$InstrumentImpl of com.oracle.truffle.api.instrumentation.InstrumentAccessor
final InstrumentClientInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
EventProviderWithInputChainNode = com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode of com.oracle.truffle.api.instrumentation.ProbeNode
final SavedInputValueID = com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode$SavedInputValueID of com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode
protected abstract ContextLocalFactory = com.oracle.truffle.api.instrumentation.TruffleInstrument$ContextLocalFactory of com.oracle.truffle.api.instrumentation.TruffleInstrument
protected abstract ContextThreadLocalFactory = com.oracle.truffle.api.instrumentation.TruffleInstrument$ContextThreadLocalFactory of com.oracle.truffle.api.instrumentation.TruffleInstrument
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument