final class com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits
super_class: java.lang.Object
{
private static final java.util.function.Predicate<org.graalvm.polyglot.Source> NO_PREDICATE;
descriptor: Ljava/util/function/Predicate;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/function/Predicate<Lorg/graalvm/polyglot/Source;>;
final com.oracle.truffle.polyglot.PolyglotEngineImpl engine;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
flags: (0x0010) ACC_FINAL
long statementLimit;
descriptor: J
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
com.oracle.truffle.api.Assumption sameStatementLimit;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
java.util.function.Predicate<org.graalvm.polyglot.Source> statementLimitSourcePredicate;
descriptor: Ljava/util/function/Predicate;
flags: (0x0000)
Signature: Ljava/util/function/Predicate<Lorg/graalvm/polyglot/Source;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
com.oracle.truffle.api.instrumentation.EventBinding<?> statementLimitBinding;
descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0000)
Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
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=2, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/PolyglotLimits;
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.polyglot.PolyglotLimits$EngineLimits.$assertionsDisabled:Z
3: new com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits$1
dup
invokespecial com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits$1.<init>:()V
putstatic com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.NO_PREDICATE:Ljava/util/function/Predicate;
4: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc -1
putfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimit:J
2: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
0 4 1 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
MethodParameters:
Name Flags
engine
void validate(com.oracle.truffle.polyglot.PolyglotLimits);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLimits;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 6
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimit:J
lconst_0
lcmp
ifeq 6
1: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimitSourcePredicate:Ljava/util/function/Predicate;
astore 2
start local 2 2: aload 2
ifnonnull 4
3: getstatic com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.NO_PREDICATE:Ljava/util/function/Predicate;
astore 2
4: StackMap locals: java.util.function.Predicate
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimitSourcePredicate:Ljava/util/function/Predicate;
ifnull 6
aload 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimitSourcePredicate:Ljava/util/function/Predicate;
if_acmpeq 6
5: ldc "Using multiple source predicates per engine is not supported. The same statement limit source predicate must be used for all polyglot contexts that are assigned to the same engine. Resolve this by using the same predicate instance when constructing the limits object with ResourceLimits.Builder.statementLimit(long, Predicate)."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
0 7 1 limits Lcom/oracle/truffle/polyglot/PolyglotLimits;
2 6 2 newPredicate Ljava/util/function/Predicate<Lorg/graalvm/polyglot/Source;>;
MethodParameters:
Name Flags
limits
void initialize(com.oracle.truffle.polyglot.PolyglotLimits, com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLimits;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
flags: (0x0000)
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimit:J
lconst_0
lcmp
ifeq 21
2: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimitSourcePredicate:Ljava/util/function/Predicate;
astore 3
start local 3 3: aload 3
ifnonnull 5
4: getstatic com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.NO_PREDICATE:Ljava/util/function/Predicate;
astore 3
5: StackMap locals: java.util.function.Predicate
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimitSourcePredicate:Ljava/util/function/Predicate;
ifnonnull 7
6: aload 0
aload 3
putfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimitSourcePredicate:Ljava/util/function/Predicate;
7: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.$assertionsDisabled:Z
ifne 8
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimitSourcePredicate:Ljava/util/function/Predicate;
aload 3
if_acmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.sameStatementLimit:Lcom/oracle/truffle/api/Assumption;
astore 4
start local 4 9: aload 4
ifnull 12
aload 4
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 12
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimit:J
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimit:J
lcmp
ifeq 12
10: aload 4
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
11: goto 15
StackMap locals: com.oracle.truffle.api.Assumption
StackMap stack:
12: aload 4
ifnonnull 15
13: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Same statement limit."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.sameStatementLimit:Lcom/oracle/truffle/api/Assumption;
14: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimit:J
putfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimit:J
15: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimitBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
ifnonnull 21
16: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getEngineInstrumenter:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.Instrumenter
astore 5
start local 5 17: 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;
astore 6
start local 6 18: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimitSourcePredicate:Ljava/util/function/Predicate;
ifnull 20
19: aload 6
new com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits$2
dup
aload 0
aload 2
invokespecial com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits$2.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.sourceIs:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$SourcePredicate;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
pop
20: StackMap locals: com.oracle.truffle.api.instrumentation.Instrumenter com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder
StackMap stack:
aload 0
aload 5
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
new com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits$3
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits$3.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;)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.polyglot.PolyglotLimits$EngineLimits.statementLimitBinding:Lcom/oracle/truffle/api/instrumentation/EventBinding;
end local 6 end local 5 end local 4 end local 3 21: StackMap locals: com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits com.oracle.truffle.polyglot.PolyglotLimits com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotLimits.reset:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
22: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
0 23 1 limits Lcom/oracle/truffle/polyglot/PolyglotLimits;
0 23 2 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
3 21 3 newPredicate Ljava/util/function/Predicate<Lorg/graalvm/polyglot/Source;>;
9 21 4 sameLimit Lcom/oracle/truffle/api/Assumption;
17 21 5 instrumenter Lcom/oracle/truffle/api/instrumentation/Instrumenter;
18 21 6 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
MethodParameters:
Name Flags
limits
context
long getStatementLimit();
descriptor: ()J
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.statementLimit:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
java.lang.RuntimeException notifyEvent(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/RuntimeException;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotLimits
StackMap stack:
aload 2
getfield com.oracle.truffle.polyglot.PolyglotLimits.onEvent:Ljava/util/function/Consumer;
astore 3
start local 3 4: aload 3
ifnonnull 6
5: aconst_null
areturn
6: StackMap locals: java.util.function.Consumer
StackMap stack:
aload 3
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newResourceLimitsEvent:(Ljava/lang/Object;)Lorg/graalvm/polyglot/ResourceLimitEvent;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 4
start local 4 9: aload 1
aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.hostToGuestException:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
areturn
end local 4 10: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
0 11 1 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 11 2 limits Lcom/oracle/truffle/polyglot/PolyglotLimits;
4 11 3 onEvent Ljava/util/function/Consumer<Lorg/graalvm/polyglot/ResourceLimitEvent;>;
9 10 4 t Ljava/lang/Throwable;
Exception table:
from to target type
6 7 8 Class java.lang.Throwable
MethodParameters:
Name Flags
context
}
SourceFile: "PolyglotLimits.java"
NestHost: com.oracle.truffle.polyglot.PolyglotLimits
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract InstrumentSupport = com.oracle.truffle.api.impl.Accessor$InstrumentSupport of com.oracle.truffle.api.impl.Accessor
public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
public abstract SourcePredicate = com.oracle.truffle.api.instrumentation.SourceSectionFilter$SourcePredicate of com.oracle.truffle.api.instrumentation.SourceSectionFilter
public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
final EngineLimits = com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits of com.oracle.truffle.polyglot.PolyglotLimits
com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits$1
com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits$2
com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits$3
public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl