public final class com.oracle.truffle.tools.coverage.CoverageTracker implements java.lang.AutoCloseable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.tools.coverage.CoverageTracker
super_class: java.lang.Object
{
private static final com.oracle.truffle.api.instrumentation.SourceSectionFilter DEFAULT_FILTER;
descriptor: Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.List<com.oracle.truffle.tools.coverage.AbstractCoverageNode> coverageNodes;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/oracle/truffle/tools/coverage/AbstractCoverageNode;>;
private final java.util.List<com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent> loadedRoots;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionEvent;>;
private final java.util.List<com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent> loadedStatements;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionEvent;>;
private final com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env;
descriptor: Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean tracking;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean closed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private com.oracle.truffle.api.instrumentation.EventBinding<com.oracle.truffle.api.instrumentation.LoadSourceSectionListener> loadedRootsBinding;
descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding<Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;>;
private com.oracle.truffle.api.instrumentation.EventBinding<com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> coveredBinding;
descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding<Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>;
private com.oracle.truffle.api.instrumentation.EventBinding<com.oracle.truffle.api.instrumentation.LoadSourceSectionListener> loadedStatementBinding;
descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0002) ACC_PRIVATE
Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding<Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;>;
private com.oracle.truffle.api.Assumption noReset;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_0
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.includeInternal:(Z)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
putstatic com.oracle.truffle.tools.coverage.CoverageTracker.DEFAULT_FILTER:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
1: new com.oracle.truffle.tools.coverage.CoverageTracker$1
dup
invokespecial com.oracle.truffle.tools.coverage.CoverageTracker$1.<init>:()V
invokestatic com.oracle.truffle.tools.coverage.impl.CoverageInstrument.setFactory:(Ljava/util/function/Function;)V
2: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env);
descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.tools.coverage.CoverageTracker.coverageNodes:Ljava/util/List;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedRoots:Ljava/util/List;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedStatements:Ljava/util/List;
4: aload 0
aload 1
putfield com.oracle.truffle.tools.coverage.CoverageTracker.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 6 1 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
MethodParameters:
Name Flags
env
private static com.oracle.truffle.tools.coverage.SourceCoverage[] sourceCoverage(java.util.Map<com.oracle.truffle.api.source.Source, java.util.Map<com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.tools.coverage.CoverageTracker$RootData>>);
descriptor: (Ljava/util/Map;)[Lcom/oracle/truffle/tools/coverage/SourceCoverage;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Map.size:()I
anewarray com.oracle.truffle.tools.coverage.SourceCoverage
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: java.util.Map com.oracle.truffle.tools.coverage.SourceCoverage[] int top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 4: aload 1
iload 2
iinc 2 1
new com.oracle.truffle.tools.coverage.SourceCoverage
dup
aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.source.Source
aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Map
invokestatic com.oracle.truffle.tools.coverage.CoverageTracker.rootCoverage:(Ljava/util/Map;)[Lcom/oracle/truffle/tools/coverage/RootCoverage;
invokespecial com.oracle.truffle.tools.coverage.SourceCoverage.<init>:(Lcom/oracle/truffle/api/source/Source;[Lcom/oracle/truffle/tools/coverage/RootCoverage;)V
aastore
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 mapping Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;
1 7 1 coverage [Lcom/oracle/truffle/tools/coverage/SourceCoverage;
2 7 2 i I
4 5 3 entry Ljava/util/Map$Entry<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;
Signature: (Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;)[Lcom/oracle/truffle/tools/coverage/SourceCoverage;
MethodParameters:
Name Flags
mapping
private static com.oracle.truffle.tools.coverage.RootCoverage[] rootCoverage(java.util.Map<com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.tools.coverage.CoverageTracker$RootData>);
descriptor: (Ljava/util/Map;)[Lcom/oracle/truffle/tools/coverage/RootCoverage;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=6, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Map.size:()I
anewarray com.oracle.truffle.tools.coverage.RootCoverage
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: java.util.Map com.oracle.truffle.tools.coverage.RootCoverage[] int top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 4: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.coverage.CoverageTracker$RootData
astore 5
start local 5 5: aload 1
iload 2
iinc 2 1
new com.oracle.truffle.tools.coverage.RootCoverage
dup
aload 5
invokestatic com.oracle.truffle.tools.coverage.CoverageTracker.sectionCoverage:(Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;)[Lcom/oracle/truffle/tools/coverage/SectionCoverage;
6: aload 5
getfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.covered:Z
aload 5
getfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.count:J
aload 5
getfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.sourceSection:Lcom/oracle/truffle/api/source/SourceSection;
aload 5
getfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.name:Ljava/lang/String;
invokespecial com.oracle.truffle.tools.coverage.RootCoverage.<init>:([Lcom/oracle/truffle/tools/coverage/SectionCoverage;ZJLcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)V
7: aastore
end local 5 end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 perRootData Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;
1 10 1 rootCoverage [Lcom/oracle/truffle/tools/coverage/RootCoverage;
2 10 2 i I
4 8 3 entry Ljava/util/Map$Entry<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;
5 8 5 rootData Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;
Signature: (Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;)[Lcom/oracle/truffle/tools/coverage/RootCoverage;
MethodParameters:
Name Flags
perRootData
private static com.oracle.truffle.tools.coverage.SectionCoverage[] sectionCoverage(com.oracle.truffle.tools.coverage.CoverageTracker$RootData);
descriptor: (Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;)[Lcom/oracle/truffle/tools/coverage/SectionCoverage;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=7, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.loadedStatements:Ljava/util/Set;
astore 1
start local 1 1: aload 1
invokeinterface java.util.Set.size:()I
anewarray com.oracle.truffle.tools.coverage.SectionCoverage
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 12
StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker$RootData java.util.Set com.oracle.truffle.tools.coverage.SectionCoverage[] int top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.source.SourceSection
astore 4
start local 4 5: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.coveredStatements:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 6
start local 6 6: aload 2
iload 3
iinc 3 1
7: new com.oracle.truffle.tools.coverage.SectionCoverage
dup
aload 4
aload 6
ifnull 8
iconst_1
goto 9
StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker$RootData java.util.Set com.oracle.truffle.tools.coverage.SectionCoverage[] int com.oracle.truffle.api.source.SourceSection java.util.Iterator java.lang.Long
StackMap stack: com.oracle.truffle.tools.coverage.SectionCoverage[] int new 7 new 7 com.oracle.truffle.api.source.SourceSection
8: iconst_0
StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker$RootData java.util.Set com.oracle.truffle.tools.coverage.SectionCoverage[] int com.oracle.truffle.api.source.SourceSection java.util.Iterator java.lang.Long
StackMap stack: com.oracle.truffle.tools.coverage.SectionCoverage[] int new 7 new 7 com.oracle.truffle.api.source.SourceSection int
9: aload 6
ifnonnull 10
ldc -1
goto 11
StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker$RootData java.util.Set com.oracle.truffle.tools.coverage.SectionCoverage[] int com.oracle.truffle.api.source.SourceSection java.util.Iterator java.lang.Long
StackMap stack: com.oracle.truffle.tools.coverage.SectionCoverage[] int new 7 new 7 com.oracle.truffle.api.source.SourceSection int
10: aload 6
invokevirtual java.lang.Long.longValue:()J
StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker$RootData java.util.Set com.oracle.truffle.tools.coverage.SectionCoverage[] int com.oracle.truffle.api.source.SourceSection java.util.Iterator java.lang.Long
StackMap stack: com.oracle.truffle.tools.coverage.SectionCoverage[] int new 7 new 7 com.oracle.truffle.api.source.SourceSection int long
11: invokespecial com.oracle.truffle.tools.coverage.SectionCoverage.<init>:(Lcom/oracle/truffle/api/source/SourceSection;ZJ)V
aastore
end local 6 end local 4 12: StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker$RootData java.util.Set com.oracle.truffle.tools.coverage.SectionCoverage[] int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
13: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 rootData Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;
1 14 1 loadedStatements Ljava/util/Set<Lcom/oracle/truffle/api/source/SourceSection;>;
2 14 2 sectionCoverage [Lcom/oracle/truffle/tools/coverage/SectionCoverage;
3 14 3 i I
5 12 4 statement Lcom/oracle/truffle/api/source/SourceSection;
6 12 6 count Ljava/lang/Long;
MethodParameters:
Name Flags
rootData
private static com.oracle.truffle.tools.coverage.AbstractCoverageNode makeCoverageNode(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.tools.coverage.CoverageTracker$Config, com.oracle.truffle.api.Assumption);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;Lcom/oracle/truffle/api/Assumption;)Lcom/oracle/truffle/tools/coverage/AbstractCoverageNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.hasTag:(Ljava/lang/Class;)Z
istore 3
start local 3 1: aload 0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.hasTag:(Ljava/lang/Class;)Z
istore 4
start local 4 2: aload 1
getfield com.oracle.truffle.tools.coverage.CoverageTracker$Config.count:Z
ifeq 4
3: new com.oracle.truffle.tools.coverage.CountingCoverageNode
dup
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
iload 3
iload 4
invokespecial com.oracle.truffle.tools.coverage.CountingCoverageNode.<init>:(Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;ZZ)V
areturn
4: StackMap locals: int int
StackMap stack:
new com.oracle.truffle.tools.coverage.BooleanCoverageNode
dup
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
iload 3
iload 4
aload 2
invokespecial com.oracle.truffle.tools.coverage.BooleanCoverageNode.<init>:(Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;ZZLcom/oracle/truffle/api/Assumption;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 5 1 config Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;
0 5 2 noReset Lcom/oracle/truffle/api/Assumption;
1 5 3 isRoot Z
2 5 4 isStatement Z
MethodParameters:
Name Flags
context
config
noReset
private static long getCount(com.oracle.truffle.tools.coverage.AbstractCoverageNode);
descriptor: (Lcom/oracle/truffle/tools/coverage/AbstractCoverageNode;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
instanceof com.oracle.truffle.tools.coverage.CountingCoverageNode
ifeq 1
aload 0
checkcast com.oracle.truffle.tools.coverage.CountingCoverageNode
invokevirtual com.oracle.truffle.tools.coverage.CountingCoverageNode.getCount:()J
goto 2
StackMap locals:
StackMap stack:
1: ldc -1
StackMap locals:
StackMap stack: long
2: lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 coverageNode Lcom/oracle/truffle/tools/coverage/AbstractCoverageNode;
MethodParameters:
Name Flags
coverageNode
public synchronized void start(com.oracle.truffle.tools.coverage.CoverageTracker$Config);
descriptor: (Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.closed:Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "Coverage Tracker is closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.tracking:Z
ifeq 4
3: new java.lang.IllegalStateException
dup
ldc "Coverage Tracker is already tracking"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.clearData:()V
5: aload 0
iconst_1
putfield com.oracle.truffle.tools.coverage.CoverageTracker.tracking:Z
6: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No reset assumption"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.tools.coverage.CoverageTracker.noReset:Lcom/oracle/truffle/api/Assumption;
7: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
astore 2
start local 2 8: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.instrument:(Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;Lcom/oracle/truffle/api/instrumentation/Instrumenter;)V
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 10 1 config Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;
8 10 2 instrumenter Lcom/oracle/truffle/api/instrumentation/Instrumenter;
MethodParameters:
Name Flags
config
private synchronized void clearData();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedRoots:Ljava/util/List;
invokeinterface java.util.List.clear:()V
1: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedStatements:Ljava/util/List;
invokeinterface java.util.List.clear:()V
2: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.coverageNodes:Ljava/util/List;
invokeinterface java.util.List.clear:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
public synchronized void end();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.tracking:Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Coverage tracker is not tracking"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.oracle.truffle.tools.coverage.CoverageTracker.tracking:Z
3: aload 0
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.disposeBindings:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
public synchronized com.oracle.truffle.tools.coverage.SourceCoverage[] getCoverage();
descriptor: ()[Lcom/oracle/truffle/tools/coverage/SourceCoverage;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.mapping:(Z)Ljava/util/Map;
invokestatic com.oracle.truffle.tools.coverage.CoverageTracker.sourceCoverage:(Ljava/util/Map;)[Lcom/oracle/truffle/tools/coverage/SourceCoverage;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
public synchronized com.oracle.truffle.tools.coverage.SourceCoverage[] resetCoverage();
descriptor: ()[Lcom/oracle/truffle/tools/coverage/SourceCoverage;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.mapping:(Z)Ljava/util/Map;
invokestatic com.oracle.truffle.tools.coverage.CoverageTracker.sourceCoverage:(Ljava/util/Map;)[Lcom/oracle/truffle/tools/coverage/SourceCoverage;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.noReset:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
1 3 1 coverages [Lcom/oracle/truffle/tools/coverage/SourceCoverage;
private java.util.Map<com.oracle.truffle.api.source.Source, java.util.Map<com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.tools.coverage.CoverageTracker$RootData>> mapping(boolean);
descriptor: (Z)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 1: aload 0
aload 2
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.processLoaded:(Ljava/util/Map;)V
2: aload 0
aload 2
iload 1
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.processCovered:(Ljava/util/Map;Z)V
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 4 1 reset Z
1 4 2 sourceCoverage Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;
Signature: (Z)Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;
MethodParameters:
Name Flags
reset
private void processLoaded(java.util.Map<com.oracle.truffle.api.source.Source, java.util.Map<com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.tools.coverage.CoverageTracker$RootData>>);
descriptor: (Ljava/util/Map;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.processLoadedRoots:(Ljava/util/Map;)V
1: aload 0
aload 1
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.processLoadedSections:(Ljava/util/Map;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 3 1 sourceCoverage Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;
Signature: (Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;)V
MethodParameters:
Name Flags
sourceCoverage
private void processLoadedSections(java.util.Map<com.oracle.truffle.api.source.Source, java.util.Map<com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.tools.coverage.CoverageTracker$RootData>>);
descriptor: (Ljava/util/Map;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedStatements:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker java.util.Map top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 4
start local 4 3: aload 4
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
astore 5
start local 5 4: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent.getNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 6
start local 6 5: aload 6
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 7
start local 7 6: aload 1
aload 5
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
com/oracle/truffle/tools/coverage/CoverageTracker.lambda$0(Lcom/oracle/truffle/api/source/Source;)Ljava/util/Map; (6)
(Lcom/oracle/truffle/api/source/Source;)Ljava/util/Map;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.Map
astore 8
start local 8 7: aload 8
aload 7
invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 7
invokedynamic apply(Lcom/oracle/truffle/api/nodes/RootNode;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
com/oracle/truffle/tools/coverage/CoverageTracker.lambda$1(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData; (6)
(Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast com.oracle.truffle.tools.coverage.CoverageTracker$RootData
astore 9
start local 9 8: aload 9
getfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.loadedStatements:Ljava/util/Set;
aload 4
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 9: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 11 1 sourceCoverage Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;
2 9 2 loadedEvent Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionEvent;
3 9 4 section Lcom/oracle/truffle/api/source/SourceSection;
4 9 5 source Lcom/oracle/truffle/api/source/Source;
5 9 6 node Lcom/oracle/truffle/api/nodes/Node;
6 9 7 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
7 9 8 perSourceData Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;
8 9 9 rootData Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;
Signature: (Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;)V
MethodParameters:
Name Flags
sourceCoverage
private void processLoadedRoots(java.util.Map<com.oracle.truffle.api.source.Source, java.util.Map<com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.tools.coverage.CoverageTracker$RootData>>);
descriptor: (Ljava/util/Map;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedRoots:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker java.util.Map top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 4
start local 4 3: aload 4
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
astore 5
start local 5 4: aload 1
aload 5
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
com/oracle/truffle/tools/coverage/CoverageTracker.lambda$2(Lcom/oracle/truffle/api/source/Source;)Ljava/util/Map; (6)
(Lcom/oracle/truffle/api/source/Source;)Ljava/util/Map;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.Map
astore 6
start local 6 5: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent.getNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 7
start local 7 6: aload 7
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 8
start local 8 7: aload 8
ifnonnull 9
8: goto 10
9: StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker java.util.Map com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent java.util.Iterator com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.source.Source java.util.Map com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.RootNode
StackMap stack:
aload 6
aload 8
invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
new com.oracle.truffle.tools.coverage.CoverageTracker$RootData
dup
aload 4
aload 8
invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
invokespecial com.oracle.truffle.tools.coverage.CoverageTracker$RootData.<init>:(Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 10: StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker java.util.Map top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 12 1 sourceCoverage Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;
2 10 2 loadedEvent Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionEvent;
3 10 4 section Lcom/oracle/truffle/api/source/SourceSection;
4 10 5 source Lcom/oracle/truffle/api/source/Source;
5 10 6 perRootData Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;
6 10 7 node Lcom/oracle/truffle/api/nodes/Node;
7 10 8 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
Signature: (Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;)V
MethodParameters:
Name Flags
sourceCoverage
private void processCovered(java.util.Map<com.oracle.truffle.api.source.Source, java.util.Map<com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.tools.coverage.CoverageTracker$RootData>>, );
descriptor: (Ljava/util/Map;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.coverageNodes:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 18
StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker java.util.Map int top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.coverage.AbstractCoverageNode
astore 3
start local 3 2: aload 3
getfield com.oracle.truffle.tools.coverage.AbstractCoverageNode.sourceSection:Lcom/oracle/truffle/api/source/SourceSection;
astore 5
start local 5 3: aload 5
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
astore 6
start local 6 4: aload 3
getfield com.oracle.truffle.tools.coverage.AbstractCoverageNode.instrumentedNode:Lcom/oracle/truffle/api/nodes/Node;
astore 7
start local 7 5: aload 7
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 8
start local 8 6: aload 8
ifnull 18
aload 3
invokevirtual com.oracle.truffle.tools.coverage.AbstractCoverageNode.isCovered:()Z
ifne 8
7: goto 18
8: StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker java.util.Map int com.oracle.truffle.tools.coverage.AbstractCoverageNode java.util.Iterator com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.source.Source com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.RootNode
StackMap stack:
aload 1
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
aload 8
invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.tools.coverage.CoverageTracker$RootData
astore 9
start local 9 9: aload 3
invokestatic com.oracle.truffle.tools.coverage.CoverageTracker.getCount:(Lcom/oracle/truffle/tools/coverage/AbstractCoverageNode;)J
lstore 10
start local 10 10: aload 3
getfield com.oracle.truffle.tools.coverage.AbstractCoverageNode.isRoot:Z
ifeq 14
aload 3
invokevirtual com.oracle.truffle.tools.coverage.AbstractCoverageNode.isCovered:()Z
ifeq 14
11: aload 9
iconst_1
putfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.covered:Z
12: aload 9
lload 10
putfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.count:J
13: goto 16
StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker$RootData long
StackMap stack:
14: aload 3
getfield com.oracle.truffle.tools.coverage.AbstractCoverageNode.isStatement:Z
ifeq 16
15: aload 9
getfield com.oracle.truffle.tools.coverage.CoverageTracker$RootData.coveredStatements:Ljava/util/Map;
aload 5
lload 10
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: StackMap locals:
StackMap stack:
iload 2
ifeq 18
17: aload 3
invokevirtual com.oracle.truffle.tools.coverage.AbstractCoverageNode.reset:()V
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 3 18: StackMap locals: com.oracle.truffle.tools.coverage.CoverageTracker java.util.Map int top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 20 1 mapping Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;
0 20 2 reset Z
2 18 3 coverageNode Lcom/oracle/truffle/tools/coverage/AbstractCoverageNode;
3 18 5 section Lcom/oracle/truffle/api/source/SourceSection;
4 18 6 source Lcom/oracle/truffle/api/source/Source;
5 18 7 node Lcom/oracle/truffle/api/nodes/Node;
6 18 8 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
9 18 9 rootData Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;
10 18 10 count J
Signature: (Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/util/Map<Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;>;>;Z)V
MethodParameters:
Name Flags
mapping
reset
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield com.oracle.truffle.tools.coverage.CoverageTracker.closed:Z
1: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.tracking:Z
ifeq 3
2: aload 0
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.end:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
private void instrument(com.oracle.truffle.tools.coverage.CoverageTracker$Config, com.oracle.truffle.api.instrumentation.Instrumenter);
descriptor: (Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;Lcom/oracle/truffle/api/instrumentation/Instrumenter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield com.oracle.truffle.tools.coverage.CoverageTracker$Config.sourceSectionFilter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: getstatic com.oracle.truffle.tools.coverage.CoverageTracker.DEFAULT_FILTER:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
astore 3
3: StackMap locals: com.oracle.truffle.api.instrumentation.SourceSectionFilter
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.instrumentLoadedRoots:(Lcom/oracle/truffle/api/instrumentation/Instrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)V
4: aload 0
aload 2
aload 3
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.instrumentLoadedStatements:(Lcom/oracle/truffle/api/instrumentation/Instrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)V
5: aload 0
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.tools.coverage.CoverageTracker.instrumentExecution:(Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;Lcom/oracle/truffle/api/instrumentation/Instrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 7 1 config Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;
0 7 2 instrumenter Lcom/oracle/truffle/api/instrumentation/Instrumenter;
1 7 3 f Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
MethodParameters:
Name Flags
config
instrumenter
private void instrumentExecution(com.oracle.truffle.tools.coverage.CoverageTracker$Config, com.oracle.truffle.api.instrumentation.Instrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter);
descriptor: (Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;Lcom/oracle/truffle/api/instrumentation/Instrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
aastore
dup
iconst_1
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.and:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
astore 4
start local 4 1: aload 0
aload 2
aload 4
new com.oracle.truffle.tools.coverage.CoverageTracker$2
dup
aload 0
aload 1
invokespecial com.oracle.truffle.tools.coverage.CoverageTracker$2.<init>:(Lcom/oracle/truffle/tools/coverage/CoverageTracker;Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;)V
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventFactory:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
putfield com.oracle.truffle.tools.coverage.CoverageTracker.coveredBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
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/tools/coverage/CoverageTracker;
0 3 1 config Lcom/oracle/truffle/tools/coverage/CoverageTracker$Config;
0 3 2 instrumenter Lcom/oracle/truffle/api/instrumentation/Instrumenter;
0 3 3 f Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
1 3 4 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
MethodParameters:
Name Flags
config
instrumenter
f
private synchronized void addCoverageNode(com.oracle.truffle.tools.coverage.AbstractCoverageNode);
descriptor: (Lcom/oracle/truffle/tools/coverage/AbstractCoverageNode;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.coverageNodes:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 2 1 coverageNode Lcom/oracle/truffle/tools/coverage/AbstractCoverageNode;
MethodParameters:
Name Flags
coverageNode
private void instrumentLoadedStatements(com.oracle.truffle.api.instrumentation.Instrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter);
descriptor: (Lcom/oracle/truffle/api/instrumentation/Instrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.and:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
astore 3
start local 3 1: aload 0
aload 1
aload 3
new com.oracle.truffle.tools.coverage.CoverageTracker$3
dup
aload 0
invokespecial com.oracle.truffle.tools.coverage.CoverageTracker$3.<init>:(Lcom/oracle/truffle/tools/coverage/CoverageTracker;)V
2: iconst_1
3: invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachLoadSourceSectionListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
putfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedStatementBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
4: 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/tools/coverage/CoverageTracker;
0 5 1 instrumenter Lcom/oracle/truffle/api/instrumentation/Instrumenter;
0 5 2 f Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
1 5 3 statementFilter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
MethodParameters:
Name Flags
instrumenter
f
private void instrumentLoadedRoots(com.oracle.truffle.api.instrumentation.Instrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter);
descriptor: (Lcom/oracle/truffle/api/instrumentation/Instrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.and:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
astore 3
start local 3 1: aload 0
aload 1
aload 3
new com.oracle.truffle.tools.coverage.CoverageTracker$4
dup
aload 0
invokespecial com.oracle.truffle.tools.coverage.CoverageTracker$4.<init>:(Lcom/oracle/truffle/tools/coverage/CoverageTracker;)V
2: iconst_1
3: invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachLoadSourceSectionListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
putfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedRootsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
4: 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/tools/coverage/CoverageTracker;
0 5 1 instrumenter Lcom/oracle/truffle/api/instrumentation/Instrumenter;
0 5 2 f Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
1 5 3 rootFilter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
MethodParameters:
Name Flags
instrumenter
f
private synchronized void addRoot(com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent);
descriptor: (Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionEvent;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedRoots:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 2 1 event Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionEvent;
MethodParameters:
Name Flags
event
private synchronized void addStatement(com.oracle.truffle.api.instrumentation.LoadSourceSectionEvent);
descriptor: (Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionEvent;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedStatements:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
0 2 1 event Lcom/oracle/truffle/api/instrumentation/LoadSourceSectionEvent;
MethodParameters:
Name Flags
event
private void disposeBindings();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedRootsBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
1: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.loadedStatementBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
2: aload 0
getfield com.oracle.truffle.tools.coverage.CoverageTracker.coveredBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/tools/coverage/CoverageTracker;
private static java.util.Map lambda$0(com.oracle.truffle.api.source.Source);
descriptor: (Lcom/oracle/truffle/api/source/Source;)Ljava/util/Map;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Lcom/oracle/truffle/api/source/Source;
private static com.oracle.truffle.tools.coverage.CoverageTracker$RootData lambda$1(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/tools/coverage/CoverageTracker$RootData;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=2, args_size=2
start local 1 0: new com.oracle.truffle.tools.coverage.CoverageTracker$RootData
dup
aload 1
aload 0
invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
invokespecial com.oracle.truffle.tools.coverage.CoverageTracker$RootData.<init>:(Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)V
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 s Lcom/oracle/truffle/api/source/SourceSection;
private static java.util.Map lambda$2(com.oracle.truffle.api.source.Source);
descriptor: (Lcom/oracle/truffle/api/source/Source;)Ljava/util/Map;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Lcom/oracle/truffle/api/source/Source;
}
SourceFile: "CoverageTracker.java"
NestMembers:
com.oracle.truffle.tools.coverage.CoverageTracker$1 com.oracle.truffle.tools.coverage.CoverageTracker$2 com.oracle.truffle.tools.coverage.CoverageTracker$3 com.oracle.truffle.tools.coverage.CoverageTracker$4 com.oracle.truffle.tools.coverage.CoverageTracker$Config com.oracle.truffle.tools.coverage.CoverageTracker$RootData
InnerClasses:
public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags
public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
com.oracle.truffle.tools.coverage.CoverageTracker$1
com.oracle.truffle.tools.coverage.CoverageTracker$2
com.oracle.truffle.tools.coverage.CoverageTracker$3
com.oracle.truffle.tools.coverage.CoverageTracker$4
public Config = com.oracle.truffle.tools.coverage.CoverageTracker$Config of com.oracle.truffle.tools.coverage.CoverageTracker
private RootData = com.oracle.truffle.tools.coverage.CoverageTracker$RootData of com.oracle.truffle.tools.coverage.CoverageTracker
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map