final class com.oracle.truffle.polyglot.PolyglotEngineImpl extends org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl implements com.oracle.truffle.polyglot.PolyglotImpl$VMObject
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.polyglot.PolyglotEngineImpl
super_class: org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl
{
static final int HOST_LANGUAGE_INDEX;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final java.lang.String HOST_LANGUAGE_ID;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "host"
static final java.lang.String OPTION_GROUP_ENGINE;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "engine"
static final java.lang.String OPTION_GROUP_LOG;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "log"
static final java.lang.String OPTION_GROUP_IMAGE_BUILD_TIME;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "image-build-time"
static final java.lang.String LOG_FILE_OPTION;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "log.file"
private static final java.util.Set<java.lang.String> RESERVED_IDS;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static final java.util.Map<com.oracle.truffle.polyglot.PolyglotEngineImpl, java.lang.Void> ENGINES;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Void;>;
private static volatile boolean shutdownHookInitialized;
descriptor: Z
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private static final boolean DEBUG_MISSING_CLOSE;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] EMPTY_LOCATIONS;
descriptor: [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
flags: (0x0018) ACC_STATIC, ACC_FINAL
final java.lang.Object lock;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
org.graalvm.polyglot.Engine creatorApi;
descriptor: Lorg/graalvm/polyglot/Engine;
flags: (0x0000)
org.graalvm.polyglot.Engine currentApi;
descriptor: Lorg/graalvm/polyglot/Engine;
flags: (0x0000)
final java.lang.Object instrumentationHandler;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.polyglot.PolyglotImpl impl;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotImpl;
flags: (0x0010) ACC_FINAL
com.oracle.truffle.api.impl.DispatchOutputStream out;
descriptor: Lcom/oracle/truffle/api/impl/DispatchOutputStream;
flags: (0x0000)
com.oracle.truffle.api.impl.DispatchOutputStream err;
descriptor: Lcom/oracle/truffle/api/impl/DispatchOutputStream;
flags: (0x0000)
java.io.InputStream in;
descriptor: Ljava/io/InputStream;
flags: (0x0000)
final java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotLanguage> idToLanguage;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
final java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotLanguage> classToLanguage;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
final java.util.Map<java.lang.String, org.graalvm.polyglot.Language> idToPublicLanguage;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Language;>;
final java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo> idToInternalLanguageInfo;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
final java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotInstrument> idToInstrument;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
final java.util.Map<java.lang.String, org.graalvm.polyglot.Instrument> idToPublicInstrument;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Instrument;>;
final java.util.Map<java.lang.String, com.oracle.truffle.api.InstrumentInfo> idToInternalInstrumentInfo;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;
com.oracle.truffle.polyglot.OptionValuesImpl engineOptionValues;
descriptor: Lcom/oracle/truffle/polyglot/OptionValuesImpl;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
java.lang.ClassLoader contextClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0000)
boolean boundEngine;
descriptor: Z
flags: (0x0000)
boolean storeEngine;
descriptor: Z
flags: (0x0000)
java.util.logging.Handler logHandler;
descriptor: Ljava/util/logging/Handler;
flags: (0x0000)
final java.lang.Exception createdLocation;
descriptor: Ljava/lang/Exception;
flags: (0x0010) ACC_FINAL
private final org.graalvm.collections.EconomicSet<com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference> contexts;
descriptor: Lorg/graalvm/collections/EconomicSet;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/graalvm/collections/EconomicSet<Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;>;
final java.lang.ref.ReferenceQueue<com.oracle.truffle.polyglot.PolyglotContextImpl> contextsReferenceQueue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/lang/ref/ReferenceQueue<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
private final java.util.concurrent.atomic.AtomicReference<com.oracle.truffle.polyglot.PolyglotContextImpl> preInitializedContext;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
com.oracle.truffle.polyglot.PolyglotLanguage hostLanguage;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguage;
flags: (0x0000)
com.oracle.truffle.api.Assumption singleContext;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
final com.oracle.truffle.api.Assumption singleThreadPerContext;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.api.Assumption noInnerContexts;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.api.Assumption customHostClassLoader;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.api.Assumption neverInterrupted;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0010) ACC_FINAL
volatile org.graalvm.options.OptionDescriptors allOptions;
descriptor: Lorg/graalvm/options/OptionDescriptors;
flags: (0x0040) ACC_VOLATILE
volatile boolean closed;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
private volatile com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler cancelHandler;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
final java.lang.Object runtimeData;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
java.util.Map<java.lang.String, java.util.logging.Level> logLevels;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
com.oracle.truffle.polyglot.HostClassCache hostClassCache;
descriptor: Lcom/oracle/truffle/polyglot/HostClassCache;
flags: (0x0000)
private volatile java.lang.Object engineLoggers;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.util.function.Supplier<java.util.Map<java.lang.String, java.util.Collection<? extends com.oracle.truffle.api.TruffleFile$FileTypeDetector>>> ;
descriptor: Ljava/util/function/Supplier;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;>;>;
final int contextLength;
descriptor: I
flags: (0x0010) ACC_FINAL
private volatile com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits limits;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
final boolean conservativeContextReferences;
descriptor: Z
flags: (0x0010) ACC_FINAL
private final org.graalvm.polyglot.io.MessageTransport messageInterceptor;
descriptor: Lorg/graalvm/polyglot/io/MessageTransport;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile int asynchronousStackDepth;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private com.oracle.truffle.polyglot.HostToGuestCodeCache hostToGuestCodeCache;
descriptor: Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
final com.oracle.truffle.api.dsl.SpecializationStatistics specializationStatistics;
descriptor: Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
flags: (0x0010) ACC_FINAL
final java.util.function.Function<java.lang.String, com.oracle.truffle.api.TruffleLogger> engineLoggerSupplier;
descriptor: Ljava/util/function/Function;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Function<Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger;>;
private volatile com.oracle.truffle.api.TruffleLogger engineLogger;
descriptor: Lcom/oracle/truffle/api/TruffleLogger;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
volatile com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations contextLocalLocations;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
volatile com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations contextThreadLocalLocations;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private static final java.lang.String DISABLE_PRIVILEGES_VALUE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String[] DISABLED_PRIVILEGES;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean ALLOW_CREATE_PROCESS;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean ALLOW_ENVIRONMENT_ACCESS;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean ALLOW_IO;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final java.lang.Object NO_ENTER;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static volatile com.oracle.truffle.polyglot.PolyglotEngineImpl fallbackEngine;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
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=6, locals=8, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
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.PolyglotEngineImpl.$assertionsDisabled:Z
3: new java.util.HashSet
dup
bipush 14
anewarray java.lang.String
dup
iconst_0
4: ldc "host"
aastore
dup
iconst_1
ldc "graal"
aastore
dup
iconst_2
ldc "truffle"
aastore
dup
iconst_3
ldc "language"
aastore
dup
iconst_4
ldc "instrument"
aastore
dup
iconst_5
ldc "graalvm"
aastore
dup
bipush 6
ldc "context"
aastore
dup
bipush 7
ldc "polyglot"
aastore
dup
bipush 8
ldc "compiler"
aastore
dup
bipush 9
ldc "vm"
aastore
dup
bipush 10
ldc "file"
aastore
dup
bipush 11
5: ldc "engine"
aastore
dup
bipush 12
ldc "log"
aastore
dup
bipush 13
ldc "image-build-time"
aastore
6: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
7: invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.RESERVED_IDS:Ljava/util/Set;
8: new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
9: iconst_0
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.shutdownHookInitialized:Z
10: ldc "polyglotimpl.DebugMissingClose"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DEBUG_MISSING_CLOSE:Z
11: iconst_0
anewarray com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
12: ldc "DisablePrivileges"
invokestatic com.oracle.truffle.polyglot.ImageBuildTimeOptions.get:(Ljava/lang/String;)Ljava/lang/String;
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLE_PRIVILEGES_VALUE:Ljava/lang/String;
13: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLE_PRIVILEGES_VALUE:Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifeq 14
iconst_0
anewarray java.lang.String
goto 15
StackMap locals:
StackMap stack:
14: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLE_PRIVILEGES_VALUE:Ljava/lang/String;
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String[]
15: putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLED_PRIVILEGES:[Ljava/lang/String;
16: iconst_1
istore 0
start local 0 17: iconst_1
istore 1
start local 1 18: iconst_1
istore 2
start local 2 19: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLED_PRIVILEGES:[Ljava/lang/String;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 33
StackMap locals: int int int top int int java.lang.String[]
StackMap stack:
20: aload 6
iload 4
aaload
astore 3
start local 3 21: aload 3
dup
astore 7
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 3
-413746857: 22
3366: 23
1936998867: 24
default: 31
}
StackMap locals: int int int java.lang.String int int java.lang.String[] java.lang.String
StackMap stack:
22: aload 7
ldc "environmentAccess"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 27
goto 31
StackMap locals:
StackMap stack:
23: aload 7
ldc "io"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 31
StackMap locals:
StackMap stack:
24: aload 7
ldc "createProcess"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 25
goto 31
25: StackMap locals:
StackMap stack:
iconst_0
istore 0
26: goto 32
27: StackMap locals:
StackMap stack:
iconst_0
istore 1
28: goto 32
29: StackMap locals:
StackMap stack:
iconst_0
istore 2
30: goto 32
31: StackMap locals:
StackMap stack:
new java.lang.Error
dup
new java.lang.StringBuilder
dup
ldc "Invalid privilege name for DisablePrivileges: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 3 32: StackMap locals: int int int top int int java.lang.String[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
33: iload 4
iload 5
if_icmplt 20
34: iload 0
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_CREATE_PROCESS:Z
35: iload 1
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_ENVIRONMENT_ACCESS:Z
36: iload 2
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_IO:Z
end local 2 end local 1 end local 0 37: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.NO_ENTER:Ljava/lang/Object;
38: return
LocalVariableTable:
Start End Slot Name Signature
17 37 0 createProcess Z
18 37 1 environmentAccess Z
19 37 2 io Z
21 32 3 privilege Ljava/lang/String;
void <init>(com.oracle.truffle.polyglot.PolyglotImpl, com.oracle.truffle.api.impl.DispatchOutputStream, com.oracle.truffle.api.impl.DispatchOutputStream, java.io.InputStream, com.oracle.truffle.polyglot.OptionValuesImpl, java.util.Map<java.lang.String, java.util.logging.Level>, com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider, java.util.Map<java.lang.String, java.lang.String>, boolean, java.lang.ClassLoader, boolean, boolean, org.graalvm.polyglot.io.MessageTransport, java.util.logging.Handler);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;Ljava/util/Map;ZLjava/lang/ClassLoader;ZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/util/logging/Handler;)V
flags: (0x0000)
Code:
stack=8, locals=23, args_size=15
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 start local 12 start local 13 start local 14 0: aload 0
aload 1
invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
2: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DEBUG_MISSING_CLOSE:Z
ifeq 3
new java.lang.Exception
dup
invokespecial java.lang.Exception.<init>:()V
goto 4
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineImpl
3: aconst_null
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Exception
4: putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.createdLocation:Ljava/lang/Exception;
5: aload 0
getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
invokestatic org.graalvm.collections.EconomicSet.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicSet;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
6: aload 0
new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextsReferenceQueue:Ljava/lang/ref/ReferenceQueue;
7: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.preInitializedContext:Ljava/util/concurrent/atomic/AtomicReference;
8: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single context per engine."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
9: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single thread per context of an engine."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
10: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No inner contexts."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.noInnerContexts:Lcom/oracle/truffle/api/Assumption;
11: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No custom host class loader needed."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.customHostClassLoader:Lcom/oracle/truffle/api/Assumption;
12: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No context interrupted."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
13: aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.asynchronousStackDepth:I
14: aload 0
new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
dup
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
15: aload 0
new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
dup
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
16: aload 0
aload 13
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
17: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
18: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
19: aload 0
aload 3
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
20: aload 0
aload 4
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
21: aload 0
aload 10
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
22: aload 0
aload 14
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
23: aload 0
aload 6
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
24: aload 0
iload 11
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
25: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 5
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.isStoreEnabled:(Lorg/graalvm/options/OptionValues;)Z
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
26: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 15
start local 15 27: aload 0
aload 0
aload 15
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeLanguages:(Ljava/util/Map;)Ljava/util/Map;
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
28: aload 0
aload 15
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalLanguageInfo:Ljava/util/Map;
29: aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
iconst_1
iadd
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
30: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 16
start local 16 31: aload 0
aload 0
aload 16
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeInstruments:(Ljava/util/Map;)Ljava/util/Map;
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
32: aload 0
aload 16
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalInstrumentInfo:Ljava/util/Map;
33: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 5
aload 7
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.createRuntimeData:(Lorg/graalvm/options/OptionValues;Ljava/util/function/Function;)Ljava/lang/Object;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
34: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
35: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 18
goto 38
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
36: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 17
start local 17 37: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
aload 17
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
aload 17
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 17 38: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 36
39: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 18
goto 46
StackMap locals:
StackMap stack:
40: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 17
start local 17 41: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
aload 17
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 46
42: aload 17
43: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 17
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
44: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
aload 17
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
45: invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.failDuplicateId:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 17 46: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 40
47: aload 0
aload 7
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
48: aload 0
aload 5
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
49: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 17
start local 17 50: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 19
goto 55
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
51: aload 19
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 18
start local 18 52: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 18
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 20
start local 20 53: aload 20
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
ifne 55
54: aload 17
aload 18
aload 20
getfield com.oracle.truffle.polyglot.PolyglotLanguage.api:Lorg/graalvm/polyglot/Language;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 20 end local 18 55: StackMap locals:
StackMap stack:
aload 19
invokeinterface java.util.Iterator.hasNext:()Z
ifne 51
56: aload 0
aload 17
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
57: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 18
start local 18 58: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 20
goto 63
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
59: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 19
start local 19 60: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
aload 19
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 21
start local 21 61: aload 21
getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.isInternal:()Z
ifne 63
62: aload 18
aload 19
aload 21
getfield com.oracle.truffle.polyglot.PolyglotInstrument.api:Lorg/graalvm/polyglot/Instrument;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 21 end local 19 63: StackMap locals:
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 59
64: aload 0
aload 18
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
65: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
aload 2
aload 3
aload 4
aload 13
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createInstrumentationHandler:(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;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
66: iload 11
ifne 68
67: aload 0
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeMultiContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
68: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map java.util.Map
StackMap stack:
aload 0
iconst_0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.intitializeStore:(ZZ)V
69: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 19
start local 19 70: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 20
start local 20 71: aload 0
aload 8
aload 19
aload 20
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.parseOptions:(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
72: aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.UseConservativeContextReferences:Lorg/graalvm/options/OptionKey;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.conservativeContextReferences:Z
73: aload 19
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 22
goto 76
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
74: aload 22
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 21
start local 21 75: aload 21
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
aload 19
aload 21
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
iload 9
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.putAll:(Ljava/util/Map;Z)V
end local 21 76: StackMap locals:
StackMap stack:
aload 22
invokeinterface java.util.Iterator.hasNext:()Z
ifne 74
77: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.SpecializationStatistics:Lorg/graalvm/options/OptionKey;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 80
78: aload 0
invokestatic com.oracle.truffle.api.dsl.SpecializationStatistics.create:()Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
79: goto 81
80: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map
StackMap stack:
aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
81: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.notifyCreated:()V
82: iload 12
ifne 85
83: aload 20
iload 9
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.createInstruments:(Ljava/util/Map;Z)V
84: invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.registerShutDownHook:()V
85: StackMap locals:
StackMap stack:
return
end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 86 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 86 1 impl Lcom/oracle/truffle/polyglot/PolyglotImpl;
0 86 2 out Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 86 3 err Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 86 4 in Ljava/io/InputStream;
0 86 5 engineOptions Lcom/oracle/truffle/polyglot/OptionValuesImpl;
0 86 6 logLevels Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
0 86 7 engineLogger Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;
0 86 8 options Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 86 9 allowExperimentalOptions Z
0 86 10 contextClassLoader Ljava/lang/ClassLoader;
0 86 11 boundEngine Z
0 86 12 preInitialization Z
0 86 13 messageInterceptor Lorg/graalvm/polyglot/io/MessageTransport;
0 86 14 logHandler Ljava/util/logging/Handler;
27 86 15 languageInfos Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
31 86 16 instrumentInfos Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;
37 38 17 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
41 46 17 id Ljava/lang/String;
50 86 17 publicLanguages Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Language;>;
52 55 18 key Ljava/lang/String;
53 55 20 languageImpl Lcom/oracle/truffle/polyglot/PolyglotLanguage;
58 86 18 publicInstruments Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Instrument;>;
60 63 19 key Ljava/lang/String;
61 63 21 instrumentImpl Lcom/oracle/truffle/polyglot/PolyglotInstrument;
70 86 19 languagesOptions Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotLanguage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
71 86 20 instrumentsOptions Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
75 76 21 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Signature: (Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZLjava/lang/ClassLoader;ZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/util/logging/Handler;)V
MethodParameters:
Name Flags
impl
out
err
in
engineOptions
logLevels
engineLogger
options
allowExperimentalOptions
contextClassLoader
boundEngine
preInitialization
messageInterceptor
logHandler
com.oracle.truffle.polyglot.HostToGuestCodeCache getHostToGuestCodeCache();
descriptor: ()Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostToGuestCodeCache:Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
astore 1
start local 1 1: aload 1
ifnonnull 4
2: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: aload 0
new com.oracle.truffle.polyglot.HostToGuestCodeCache
dup
invokespecial com.oracle.truffle.polyglot.HostToGuestCodeCache.<init>:()V
dup
astore 1
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostToGuestCodeCache:Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
4: StackMap locals: com.oracle.truffle.polyglot.HostToGuestCodeCache
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 5 1 cache Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
void notifyCreated();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
aload 0
aconst_null
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.onEngineCreate:(Ljava/lang/Object;Ljava/lang/Object;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
void <init>(com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
flags: (0x0000)
Code:
stack=8, locals=11, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
2: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DEBUG_MISSING_CLOSE:Z
ifeq 3
new java.lang.Exception
dup
invokespecial java.lang.Exception.<init>:()V
goto 4
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineImpl
3: aconst_null
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Exception
4: putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.createdLocation:Ljava/lang/Exception;
5: aload 0
getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
invokestatic org.graalvm.collections.EconomicSet.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicSet;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
6: aload 0
new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextsReferenceQueue:Ljava/lang/ref/ReferenceQueue;
7: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.preInitializedContext:Ljava/util/concurrent/atomic/AtomicReference;
8: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single context per engine."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
9: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single thread per context of an engine."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
10: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No inner contexts."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.noInnerContexts:Lcom/oracle/truffle/api/Assumption;
11: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No custom host class loader needed."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.customHostClassLoader:Lcom/oracle/truffle/api/Assumption;
12: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "No context interrupted."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
13: aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.asynchronousStackDepth:I
14: aload 0
new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
dup
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
15: aload 0
new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
dup
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
16: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
17: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
18: aload 0
19: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDispatchOutput:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/impl/DispatchOutputStream;
20: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDispatchOutput:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/impl/DispatchOutputStream;
21: aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
22: aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
23: invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createInstrumentationHandler:(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;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
24: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
25: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
26: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
27: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
28: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
29: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
30: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
31: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.createRuntimeData:(Lorg/graalvm/options/OptionValues;Ljava/util/function/Function;)Ljava/lang/Object;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
32: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
33: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 2
start local 2 34: aload 0
aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeLanguages:(Ljava/util/Map;)Ljava/util/Map;
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
35: aload 0
aload 2
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalLanguageInfo:Ljava/util/Map;
36: aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
iconst_1
iadd
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
37: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 3
start local 3 38: aload 0
aload 0
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeInstruments:(Ljava/util/Map;)Ljava/util/Map;
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
39: aload 0
aload 3
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalInstrumentInfo:Ljava/util/Map;
40: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
41: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 44
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
42: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 4
start local 4 43: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 44: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 42
45: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 52
StackMap locals:
StackMap stack:
46: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 47: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 52
48: aload 4
49: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
50: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
51: invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.failDuplicateId:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 4 52: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 46
53: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 4
start local 4 54: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 59
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
55: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 56: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 7
start local 7 57: aload 7
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
ifne 59
58: aload 4
aload 5
aload 7
getfield com.oracle.truffle.polyglot.PolyglotLanguage.api:Lorg/graalvm/polyglot/Language;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 5 59: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 55
60: aload 0
aload 4
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
61: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 5
start local 5 62: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 67
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
63: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 64: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 8
start local 8 65: aload 8
getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.isInternal:()Z
ifne 67
66: aload 5
aload 6
aload 8
getfield com.oracle.truffle.polyglot.PolyglotInstrument.api:Lorg/graalvm/polyglot/Instrument;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 end local 6 67: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 63
68: aload 0
aload 5
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
69: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
70: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.copy:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
71: aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.UseConservativeContextReferences:Lorg/graalvm/options/OptionKey;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.conservativeContextReferences:Z
72: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
ifne 74
73: aload 0
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeMultiContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
74: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map
StackMap stack:
aload 0
iconst_0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.intitializeStore:(ZZ)V
75: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 80
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
76: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 77: aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValuesIfExists:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
astore 8
start local 8 78: aload 8
ifnull 80
79: aload 8
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.copyInto:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)V
end local 8 end local 6 80: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 76
81: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.SpecializationStatistics:Lorg/graalvm/options/OptionKey;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 84
82: aload 0
invokestatic com.oracle.truffle.api.dsl.SpecializationStatistics.create:()Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
83: goto 85
84: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map
StackMap stack:
aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
85: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 86: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 93
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map java.util.Collection top java.util.Iterator
StackMap stack:
87: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 88: aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
aload 7
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getOptionValuesIfExists:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
astore 9
start local 9 89: aload 9
ifnull 93
90: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
aload 7
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 10
start local 10 91: aload 9
aload 10
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getEngineOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.copyInto:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)V
92: aload 6
aload 10
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 9 end local 7 93: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 87
94: aload 6
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
95: invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.registerShutDownHook:()V
96: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.notifyCreated:()V
97: 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 98 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 98 1 prototype Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
34 98 2 languageInfos Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
38 98 3 instrumentInfos Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;
43 44 4 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
47 52 4 id Ljava/lang/String;
54 98 4 publicLanguages Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Language;>;
56 59 5 key Ljava/lang/String;
57 59 7 languageImpl Lcom/oracle/truffle/polyglot/PolyglotLanguage;
62 98 5 publicInstruments Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Instrument;>;
64 67 6 key Ljava/lang/String;
65 67 8 instrumentImpl Lcom/oracle/truffle/polyglot/PolyglotInstrument;
77 80 6 languageId Ljava/lang/String;
78 80 8 prototypeOptions Lcom/oracle/truffle/polyglot/OptionValuesImpl;
86 98 6 instrumentsToCreate Ljava/util/Collection<Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
88 93 7 instrumentId Ljava/lang/String;
89 93 9 prototypeOptions Lcom/oracle/truffle/polyglot/OptionValuesImpl;
91 93 10 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
MethodParameters:
Name Flags
prototype
com.oracle.truffle.api.TruffleLogger getEngineLogger();
descriptor: ()Lcom/oracle/truffle/api/TruffleLogger;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLogger:Lcom/oracle/truffle/api/TruffleLogger;
astore 1
start local 1 1: aload 1
ifnonnull 10
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLogger:Lcom/oracle/truffle/api/TruffleLogger;
astore 1
4: aload 1
ifnonnull 6
5: aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
ldc "engine"
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.TruffleLogger
dup
astore 1
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLogger:Lcom/oracle/truffle/api/TruffleLogger;
6: StackMap locals: com.oracle.truffle.api.TruffleLogger java.lang.Object
StackMap stack:
aload 2
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 11 1 result Lcom/oracle/truffle/api/TruffleLogger;
Exception table:
from to target type
3 7 8 any
8 9 8 any
static org.graalvm.options.OptionDescriptors createEngineOptionDescriptors();
descriptor: ()Lorg/graalvm/options/OptionDescriptors;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tPolyglotEngineOptionsOptionDescriptors cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
static java.util.Collection<org.graalvm.polyglot.Engine> findActiveEngines();
descriptor: ()Ljava/util/Collection;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=0
0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
dup
astore 0
monitorenter
1: new java.util.ArrayList
dup
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 1
start local 1 2: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: java.util.Map java.util.List top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
astore 2
start local 2 4: aload 1
aload 2
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 1
aload 0
monitorexit
7: areturn
end local 1 8: StackMap locals: java.util.Map
StackMap stack: java.lang.Throwable
aload 0
monitorexit
9: athrow
LocalVariableTable:
Start End Slot Name Signature
2 8 1 engines Ljava/util/List<Lorg/graalvm/polyglot/Engine;>;
4 5 2 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
Exception table:
from to target type
1 7 8 any
8 9 8 any
Signature: ()Ljava/util/Collection<Lorg/graalvm/polyglot/Engine;>;
boolean patch(com.oracle.truffle.api.impl.DispatchOutputStream, com.oracle.truffle.api.impl.DispatchOutputStream, java.io.InputStream, com.oracle.truffle.polyglot.OptionValuesImpl, com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig, java.util.function.Function<java.lang.String, com.oracle.truffle.api.TruffleLogger>, java.util.Map<java.lang.String, java.lang.String>, boolean, java.lang.ClassLoader, boolean, java.util.logging.Handler);
descriptor: (Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Ljava/util/function/Function;Ljava/util/Map;ZLjava/lang/ClassLoader;ZLjava/util/logging/Handler;)Z
flags: (0x0000)
Code:
stack=5, locals=17, args_size=12
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
iload 10
if_icmpeq 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
4: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
5: aload 0
aload 3
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
6: aload 0
aload 9
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
7: aload 0
iload 10
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
8: aload 0
aload 11
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
9: aload 0
aload 4
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
10: aload 0
aload 5
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logLevels:Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
11: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
istore 12
start local 12 12: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 4
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.isStoreEnabled:(Lorg/graalvm/options/OptionValues;)Z
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
13: aload 0
iload 12
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.intitializeStore:(ZZ)V
14: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.patchInstrumentationHandler:(Ljava/lang/Object;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;)V
15: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 13
start local 13 16: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 14
start local 14 17: aload 0
aload 7
aload 13
aload 14
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.parseOptions:(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
18: getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
aload 4
aload 6
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.onEnginePatch:(Ljava/lang/Object;Lorg/graalvm/options/OptionValues;Ljava/util/function/Function;)V
19: aload 13
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 16
goto 22
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig java.util.function.Function java.util.Map int java.lang.ClassLoader int java.util.logging.Handler int java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
20: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 15
start local 15 21: aload 15
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
aload 13
aload 15
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
iload 8
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.putAll:(Ljava/util/Map;Z)V
end local 15 22: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
23: aload 14
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 16
goto 26
StackMap locals:
StackMap stack:
24: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 15
start local 15 25: aload 15
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getEngineOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
aload 14
aload 15
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
iload 8
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.putAll:(Ljava/util/Map;Z)V
end local 15 26: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
27: invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.registerShutDownHook:()V
28: iconst_1
ireturn
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 29 1 newOut Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 29 2 newErr Lcom/oracle/truffle/api/impl/DispatchOutputStream;
0 29 3 newIn Ljava/io/InputStream;
0 29 4 engineOptions Lcom/oracle/truffle/polyglot/OptionValuesImpl;
0 29 5 newLogConfig Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;
0 29 6 logSupplier Ljava/util/function/Function<Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger;>;
0 29 7 newOptions Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 29 8 newAllowExperimentalOptions Z
0 29 9 newContextClassLoader Ljava/lang/ClassLoader;
0 29 10 newBoundEngine Z
0 29 11 newLogHandler Ljava/util/logging/Handler;
12 29 12 wasStore Z
16 29 13 languagesOptions Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotLanguage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
17 29 14 instrumentsOptions Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
21 22 15 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
25 26 15 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
Signature: (Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Ljava/util/function/Function<Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZLjava/lang/ClassLoader;ZLjava/util/logging/Handler;)Z
MethodParameters:
Name Flags
newOut
newErr
newIn
engineOptions
newLogConfig
logSupplier
newOptions
newAllowExperimentalOptions
newContextClassLoader
newBoundEngine
newLogHandler
static java.util.logging.Handler createLogHandler(com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig, com.oracle.truffle.api.impl.DispatchOutputStream);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/util/logging/Handler;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logFile:Ljava/lang/String;
ifnull 4
1: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_IO:Z
ifeq 3
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logFile:Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.getFileHandler:(Ljava/lang/String;)Ljava/util/logging/Handler;
areturn
3: StackMap locals:
StackMap stack:
ldc "The `log.file` option is not allowed when the allowIO() privilege is removed at image build time."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
4: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.createDefaultHandler:(Ljava/io/OutputStream;)Ljava/util/logging/Handler;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 logConfig Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;
0 5 1 errDispatchOutputStream Lcom/oracle/truffle/api/impl/DispatchOutputStream;
MethodParameters:
Name Flags
logConfig
errDispatchOutputStream
private static void createInstruments(java.util.Map<com.oracle.truffle.polyglot.PolyglotInstrument, java.util.Map<java.lang.String, java.lang.String>>, );
descriptor: (Ljava/util/Map;Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: java.util.Map int top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getEngineOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
aload 0
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
iload 1
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.putAll:(Ljava/util/Map;Z)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 instrumentsOptions Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
0 6 1 allowExperimentalOptions Z
2 3 2 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
Signature: (Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;Z)V
MethodParameters:
Name Flags
instrumentsOptions
allowExperimentalOptions
static void ensureInstrumentsCreated(java.util.Collection<? extends com.oracle.truffle.polyglot.PolyglotInstrument>);
descriptor: (Ljava/util/Collection;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: java.util.Collection top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 1
start local 1 2: aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.ensureCreated:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 instruments Ljava/util/Collection<+Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
2 3 1 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
Signature: (Ljava/util/Collection<+Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;)V
MethodParameters:
Name Flags
instruments
private static void registerShutDownHook();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=0
0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.shutdownHookInitialized:Z
ifne 9
1: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
dup
astore 0
monitorenter
2: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.shutdownHookInitialized:Z
ifne 5
3: iconst_1
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.shutdownHookInitialized:Z
4: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
new java.lang.Thread
dup
new com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook
dup
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook.<init>:()V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
5: StackMap locals: java.util.Map
StackMap stack:
aload 0
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 0
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 6 7 any
7 8 7 any
void initializeMultiContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
flags: (0x0000)
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 14
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
ldc "More than one context introduced."
invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
3: aload 1
ifnull 10
4: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 9
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
5: aload 6
iload 4
aaload
astore 3
start local 3 6: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 8
7: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.ensureMultiContextInitialized:()V
end local 3 8: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 5
if_icmplt 5
10: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 13
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object top java.util.Iterator
StackMap stack:
11: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 3
start local 3 12: aload 3
getfield com.oracle.truffle.polyglot.PolyglotLanguage.profile:Lcom/oracle/truffle/polyglot/PolyglotLanguage$ContextProfile;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile.prepareForMultiContext:()V
end local 3 13: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object
StackMap stack:
aload 2
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 2
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 19 1 existingContext Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
6 8 3 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
12 13 3 lang Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Exception table:
from to target type
1 15 16 any
16 17 16 any
MethodParameters:
Name Flags
existingContext
static void parseEngineOptions(java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.String>, com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig);
descriptor: (Ljava/util/Map;Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
start local 3 1: goto 16
2: StackMap locals: java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 3: aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 4: aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 5: aload 5
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.parseOptionGroup:(Ljava/lang/String;)Ljava/lang/String;
astore 7
start local 7 6: aload 7
ldc "engine"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
7: aload 1
aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.String
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 3
invokeinterface java.util.Iterator.remove:()V
9: goto 16
10: StackMap locals: java.util.Map java.util.Map com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig java.util.Iterator java.util.Map$Entry java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 7
ldc "log"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
11: ldc "log.file"
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
12: aload 2
aload 6
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logFile:Ljava/lang/String;
13: goto 15
14: StackMap locals:
StackMap stack:
aload 2
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logLevels:Ljava/util/Map;
aload 5
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.parseLoggerName:(Ljava/lang/String;)Ljava/lang/String;
aload 6
invokestatic java.util.logging.Level.parse:(Ljava/lang/String;)Ljava/util/logging/Level;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.remove:()V
end local 7 end local 6 end local 5 end local 4 16: StackMap locals: java.util.Map java.util.Map com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 allOptions Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 18 1 engineOptions Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 18 2 logOptions Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;
1 18 3 iterator Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;>;
3 16 4 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
4 16 5 key Ljava/lang/String;
5 16 6 value Ljava/lang/String;
6 16 7 group Ljava/lang/String;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;)V
MethodParameters:
Name Flags
allOptions
engineOptions
logOptions
private void parseOptions(java.util.Map<java.lang.String, java.lang.String>, java.util.Map<com.oracle.truffle.polyglot.PolyglotLanguage, java.util.Map<java.lang.String, java.lang.String>>, java.util.Map<com.oracle.truffle.polyglot.PolyglotInstrument, java.util.Map<java.lang.String, java.lang.String>>);
descriptor: (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 27
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
1: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 2: aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.parseOptionGroup:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 3: aload 1
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 8
start local 8 5: aload 8
ifnull 12
aload 8
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
ifne 12
6: aload 2
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 9
start local 9 7: aload 9
ifnonnull 10
8: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 9
9: aload 2
aload 8
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.lang.String java.util.Iterator java.lang.String java.lang.String com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map
StackMap stack:
aload 9
aload 4
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: goto 27
end local 9 12: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 9
start local 9 13: aload 9
ifnull 20
aload 9
getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.isInternal:()Z
ifne 20
14: aload 3
aload 9
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 10
start local 10 15: aload 10
ifnonnull 18
16: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 10
17: aload 3
aload 9
aload 10
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: StackMap locals: com.oracle.truffle.polyglot.PolyglotInstrument java.util.Map
StackMap stack:
aload 10
aload 4
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: goto 27
end local 10 20: StackMap locals:
StackMap stack:
aload 6
dup
astore 10
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 3
-1298662846: 21
107332: 22
1770024574: 23
default: 26
}
StackMap locals: java.lang.String
StackMap stack:
21: aload 10
ldc "engine"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
goto 26
StackMap locals:
StackMap stack:
22: aload 10
ldc "log"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
goto 26
StackMap locals:
StackMap stack:
23: aload 10
ldc "image-build-time"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 25
goto 26
24: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "Log or engine options should already be parsed."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
25: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Image build-time option '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' cannot be set at runtime"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
26: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAllOptions:()Lorg/graalvm/options/OptionDescriptors;
aload 4
invokestatic com.oracle.truffle.polyglot.OptionValuesImpl.failNotFound:(Lorg/graalvm/options/OptionDescriptors;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 9 end local 8 end local 7 end local 6 end local 4 27: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
28: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 29 1 options Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 29 2 languagesOptions Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotLanguage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
0 29 3 instrumentsOptions Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
2 27 4 key Ljava/lang/String;
3 27 6 group Ljava/lang/String;
4 27 7 value Ljava/lang/String;
5 27 8 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
7 12 9 languageOptions Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
13 27 9 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
15 20 10 instrumentOptions Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotLanguage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;)V
MethodParameters:
Name Flags
options
languagesOptions
instrumentsOptions
static java.util.Map<java.lang.String, java.lang.String> readOptionsFromSystemProperties(java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/util/Map;)Ljava/util/Map;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
astore 1
start local 1 1: aload 1
dup
astore 2
monitorenter
2: aload 1
invokevirtual java.util.Properties.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: java.util.Map java.util.Properties java.util.Properties top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 3
start local 3 4: ldc "polyglot.engine.AllowExperimentalOptions"
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: goto 12
6: StackMap locals: java.util.Map java.util.Properties java.util.Properties java.lang.Object java.util.Iterator
StackMap stack:
aload 3
checkcast java.lang.String
astore 5
start local 5 7: aload 5
ldc "polyglot."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
8: aload 5
ldc "polyglot."
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 6
start local 6 9: aload 6
ldc "image-build-time"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 12
10: aload 0
aload 6
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 12
11: aload 0
aload 6
aload 5
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 end local 3 12: StackMap locals: java.util.Map java.util.Properties java.util.Properties top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
13: aload 2
monitorexit
14: goto 17
StackMap locals: java.util.Map java.util.Properties java.util.Properties
StackMap stack: java.lang.Throwable
15: aload 2
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 options Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
1 18 1 properties Ljava/util/Properties;
4 12 3 systemKey Ljava/lang/Object;
7 12 5 key Ljava/lang/String;
9 12 6 optionKey Ljava/lang/String;
Exception table:
from to target type
2 14 15 any
15 16 15 any
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
MethodParameters:
Name Flags
options
static java.lang.String parseOptionGroup(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
bipush 46
invokevirtual java.lang.String.indexOf:(I)I
istore 1
start local 1 1: iload 1
iconst_m1
if_icmpeq 4
2: aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
start local 2 3: goto 5
end local 2 4: StackMap locals: int
StackMap stack:
aload 0
astore 2
start local 2 5: StackMap locals: java.lang.String
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 key Ljava/lang/String;
1 6 1 groupIndex I
3 4 2 group Ljava/lang/String;
5 6 2 group Ljava/lang/String;
MethodParameters:
Name Flags
key
static java.lang.String parseLoggerName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
ldc "log."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 1
aload 0
ldc ".level"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 2
1: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
2: StackMap locals:
StackMap stack:
ldc "log."
invokevirtual java.lang.String.length:()I
istore 1
start local 1 3: aload 0
invokevirtual java.lang.String.length:()I
ldc ".level"
invokevirtual java.lang.String.length:()I
isub
istore 2
start local 2 4: iload 1
iload 2
if_icmpge 5
aload 0
iload 1
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 6
StackMap locals: int int
StackMap stack:
5: ldc ""
StackMap locals:
StackMap stack: java.lang.String
6: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 optionKey Ljava/lang/String;
3 7 1 start I
4 7 2 end I
MethodParameters:
Name Flags
optionKey
public com.oracle.truffle.polyglot.PolyglotEngineImpl getEngine();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
com.oracle.truffle.polyglot.PolyglotLanguage findLanguage(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.String, java.lang.String, boolean, boolean);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
flags: (0x0000)
Code:
stack=5, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 1
aload 2
ifnonnull 1
aload 3
ifnonnull 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
aload 2
invokestatic java.util.Objects.toString:(Ljava/lang/Object;)Ljava/lang/String;
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;
aload 3
invokestatic java.util.Objects.toString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
ifnull 4
2: aload 1
iload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAccessibleLanguages:(Z)Ljava/util/Map;
astore 6
start local 6 3: goto 6
end local 6 4: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 5
iload 5
ifne 5
new java.lang.AssertionError
dup
ldc "non internal access is not yet supported for instrument lookups"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalLanguageInfo:Ljava/util/Map;
astore 6
start local 6 6: StackMap locals: java.util.Map
StackMap stack:
aconst_null
astore 7
start local 7 7: aload 2
ifnull 9
8: aload 6
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.LanguageInfo
astore 7
9: StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack:
aload 3
ifnull 18
aload 7
ifnonnull 18
10: aload 6
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.LanguageInfo
astore 7
11: aload 7
ifnonnull 18
12: aload 6
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 9
goto 17
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo top java.util.Iterator
StackMap stack:
13: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.LanguageInfo
astore 8
start local 8 14: aload 8
invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getMimeTypes:()Ljava/util/Set;
aload 3
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 17
15: aload 8
astore 7
16: goto 18
end local 8 17: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
18: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 20
iload 5
ifne 20
aload 7
ifnull 20
aload 7
invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.isInternal:()Z
ifne 19
aload 1
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isPolyglotEvalAllowed:(Ljava/lang/String;)Z
ifne 20
StackMap locals:
StackMap stack:
19: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
20: StackMap locals:
StackMap stack:
aload 7
ifnull 22
21: getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 7
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
areturn
22: StackMap locals:
StackMap stack:
iload 4
ifeq 36
23: aload 2
ifnull 30
24: new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
astore 8
start local 8 25: aload 6
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 10
goto 28
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo java.util.Set top java.util.Iterator
StackMap stack:
26: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.LanguageInfo
astore 9
start local 9 27: aload 8
aload 9
invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 9 28: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
29: new java.lang.StringBuilder
dup
ldc "No language for id "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " found. Supported languages are: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 8 30: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack:
new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
astore 8
start local 8 31: aload 6
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 10
goto 34
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo java.util.Set top java.util.Iterator
StackMap stack:
32: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.LanguageInfo
astore 9
start local 9 33: aload 8
aload 9
invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getMimeTypes:()Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
end local 9 34: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 32
35: new java.lang.StringBuilder
dup
ldc "No language for MIME type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " found. Supported languages are: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 8 36: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack:
aconst_null
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 37 1 accessingLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 37 2 languageId Ljava/lang/String;
0 37 3 mimeType Ljava/lang/String;
0 37 4 failIfNotFound Z
0 37 5 allowInternalAndDependent Z
3 4 6 languages Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
6 37 6 languages Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
7 37 7 foundLanguage Lcom/oracle/truffle/api/nodes/LanguageInfo;
14 17 8 searchLanguage Lcom/oracle/truffle/api/nodes/LanguageInfo;
25 30 8 ids Ljava/util/Set<Ljava/lang/String;>;
27 28 9 language Lcom/oracle/truffle/api/nodes/LanguageInfo;
31 36 8 mimeTypes Ljava/util/Set<Ljava/lang/String;>;
33 34 9 language Lcom/oracle/truffle/api/nodes/LanguageInfo;
MethodParameters:
Name Flags
accessingLanguage
languageId
mimeType
failIfNotFound
allowInternalAndDependent
private java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotInstrument> initializeInstruments(java.util.Map<java.lang.String, com.oracle.truffle.api.InstrumentInfo>);
descriptor: (Ljava/util/Map;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 2
start local 2 1: invokestatic com.oracle.truffle.polyglot.InstrumentCache.load:()Ljava/util/List;
astore 3
start local 3 2: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 14
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.List top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.InstrumentCache
astore 4
start local 4 4: new com.oracle.truffle.polyglot.PolyglotInstrument
dup
aload 0
aload 4
invokespecial com.oracle.truffle.polyglot.PolyglotInstrument.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/InstrumentCache;)V
astore 6
start local 6 5: aload 6
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 6
aload 4
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getId:()Ljava/lang/String;
aload 4
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getName:()Ljava/lang/String;
aload 4
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getVersion:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createInstrument:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/InstrumentInfo;
putfield com.oracle.truffle.polyglot.PolyglotInstrument.info:Lcom/oracle/truffle/api/InstrumentInfo;
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 6
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newInstrument:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractInstrumentImpl;)Lorg/graalvm/polyglot/Instrument;
astore 7
start local 7 7: aload 6
aload 7
putfield com.oracle.truffle.polyglot.PolyglotInstrument.api:Lorg/graalvm/polyglot/Instrument;
8: aload 6
getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getId:()Ljava/lang/String;
astore 8
start local 8 9: aload 8
aload 4
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.verifyId:(Ljava/lang/String;Ljava/lang/String;)V
10: aload 2
aload 8
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 12
11: aload 8
aload 6
getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
aload 2
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.failDuplicateId:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
12: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.List com.oracle.truffle.polyglot.InstrumentCache java.util.Iterator com.oracle.truffle.polyglot.PolyglotInstrument org.graalvm.polyglot.Instrument java.lang.String
StackMap stack:
aload 2
aload 8
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 1
aload 8
aload 6
getfield com.oracle.truffle.polyglot.PolyglotInstrument.info:Lcom/oracle/truffle/api/InstrumentInfo;
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 4 14: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
15: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 16 1 infos Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;
1 16 2 instruments Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
2 16 3 cachedInstruments Ljava/util/List<Lcom/oracle/truffle/polyglot/InstrumentCache;>;
4 14 4 instrumentCache Lcom/oracle/truffle/polyglot/InstrumentCache;
5 14 6 instrumentImpl Lcom/oracle/truffle/polyglot/PolyglotInstrument;
7 14 7 instrument Lorg/graalvm/polyglot/Instrument;
9 14 8 id Ljava/lang/String;
Signature: (Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
MethodParameters:
Name Flags
infos
private java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotLanguage> initializeLanguages(java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo>);
descriptor: (Ljava/util/Map;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=2
start local 0 start local 1 0: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 2
start local 2 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 3
start local 3 2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 3: invokestatic com.oracle.truffle.polyglot.LanguageCache.languages:()Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 5
start local 5 5: aload 5
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
astore 7
start local 7 6: aload 3
aload 7
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 9
7: aload 4
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aload 3
aload 7
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 5 9: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
10: aload 4
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
11: new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
astore 5
start local 5 12: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 6
start local 6 13: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 7
start local 7 14: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 17
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List java.util.LinkedHashSet java.util.Set java.util.Map top java.util.Iterator
StackMap stack:
15: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 8
start local 8 16: aload 6
aload 8
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getDependentLanguages:()Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
end local 8 17: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
18: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 22
StackMap locals:
StackMap stack:
19: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 8
start local 8 20: aload 8
invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
ifeq 22
aload 6
aload 8
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 22
21: aload 0
aload 7
aload 3
aload 5
aload 8
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.visitLanguage:(Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
end local 8 22: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
23: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 27
StackMap locals:
StackMap stack:
24: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 8
start local 8 25: aload 8
invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
ifne 27
aload 6
aload 8
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 27
26: aload 0
aload 7
aload 3
aload 5
aload 8
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.visitLanguage:(Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
end local 8 27: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
28: aload 0
aload 0
iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.polyglot.LanguageCache.createHostLanguageCache:([Ljava/lang/String;)Lcom/oracle/truffle/polyglot/LanguageCache;
iconst_0
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.createLanguage:(Lcom/oracle/truffle/polyglot/LanguageCache;ILjava/lang/RuntimeException;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
29: iconst_1
istore 8
start local 8 30: aload 5
invokevirtual java.util.LinkedHashSet.iterator:()Ljava/util/Iterator;
astore 10
goto 40
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List java.util.LinkedHashSet java.util.Set java.util.Map int top java.util.Iterator
StackMap stack:
31: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 9
start local 9 32: aload 0
aload 9
iload 8
aload 7
aload 9
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.RuntimeException
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.createLanguage:(Lcom/oracle/truffle/polyglot/LanguageCache;ILjava/lang/RuntimeException;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
astore 11
start local 11 33: aload 11
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
astore 12
start local 12 34: aload 12
aload 9
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.verifyId:(Ljava/lang/String;Ljava/lang/String;)V
35: aload 2
aload 12
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 37
36: aload 12
aload 11
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
aload 2
aload 12
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.failDuplicateId:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
37: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List java.util.LinkedHashSet java.util.Set java.util.Map int com.oracle.truffle.polyglot.LanguageCache java.util.Iterator com.oracle.truffle.polyglot.PolyglotLanguage java.lang.String
StackMap stack:
aload 2
aload 12
aload 11
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
38: aload 1
aload 12
aload 11
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
39: iinc 8 1
end local 12 end local 11 end local 9 40: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List java.util.LinkedHashSet java.util.Set java.util.Map int top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 31
41: aload 2
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 42 1 infos Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
1 42 2 polyglotLanguages Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
2 42 3 cachedLanguages Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
3 42 4 sortedLanguages Ljava/util/List<Lcom/oracle/truffle/polyglot/LanguageCache;>;
5 9 5 lang Lcom/oracle/truffle/polyglot/LanguageCache;
6 9 7 id Ljava/lang/String;
12 42 5 serializedLanguages Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;
13 42 6 languageReferences Ljava/util/Set<Ljava/lang/String;>;
14 42 7 initErrors Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;
16 17 8 language Lcom/oracle/truffle/polyglot/LanguageCache;
20 22 8 language Lcom/oracle/truffle/polyglot/LanguageCache;
25 27 8 language Lcom/oracle/truffle/polyglot/LanguageCache;
30 42 8 index I
32 40 9 cache Lcom/oracle/truffle/polyglot/LanguageCache;
33 40 11 languageImpl Lcom/oracle/truffle/polyglot/PolyglotLanguage;
34 40 12 id Ljava/lang/String;
Signature: (Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
MethodParameters:
Name Flags
infos
private void visitLanguage(java.util.Map<java.lang.String, java.lang.RuntimeException>, java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache>, java.util.LinkedHashSet<com.oracle.truffle.polyglot.LanguageCache>, com.oracle.truffle.polyglot.LanguageCache);
descriptor: (Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
aload 1
aload 2
aload 3
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.visitLanguageImpl:(Ljava/util/Set;Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)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/polyglot/PolyglotEngineImpl;
0 2 1 initErrors Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;
0 2 2 cachedLanguages Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
0 2 3 serializedLanguages Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;
0 2 4 language Lcom/oracle/truffle/polyglot/LanguageCache;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;Lcom/oracle/truffle/polyglot/LanguageCache;)V
MethodParameters:
Name Flags
initErrors
cachedLanguages
serializedLanguages
language
private void visitLanguageImpl(java.util.Set<java.lang.String>, java.util.Map<java.lang.String, java.lang.RuntimeException>, java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache>, java.util.LinkedHashSet<com.oracle.truffle.polyglot.LanguageCache>, com.oracle.truffle.polyglot.LanguageCache);
descriptor: (Ljava/util/Set;Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getDependentLanguages:()Ljava/util/Set;
astore 6
start local 6 1: aload 6
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 12
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.Map java.util.Map java.util.LinkedHashSet com.oracle.truffle.polyglot.LanguageCache java.util.Set top java.util.Iterator
StackMap stack:
2: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 3: aload 3
aload 7
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 9
start local 9 4: aload 9
ifnonnull 6
5: goto 12
6: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.Map java.util.Map java.util.LinkedHashSet com.oracle.truffle.polyglot.LanguageCache java.util.Set java.lang.String java.util.Iterator com.oracle.truffle.polyglot.LanguageCache
StackMap stack:
aload 1
aload 7
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 9
7: aload 2
aload 5
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "Illegal cyclic language dependency found:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " -> "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: goto 12
9: StackMap locals:
StackMap stack:
aload 1
aload 7
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
10: aload 0
aload 1
aload 2
aload 3
aload 4
aload 9
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.visitLanguageImpl:(Ljava/util/Set;Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
11: aload 1
aload 7
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
end local 9 end local 7 12: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.Map java.util.Map java.util.LinkedHashSet com.oracle.truffle.polyglot.LanguageCache java.util.Set top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
13: aload 4
aload 5
invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
pop
14: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 15 1 visitedIds Ljava/util/Set<Ljava/lang/String;>;
0 15 2 initErrors Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;
0 15 3 cachedLanguages Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
0 15 4 serializedLanguages Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;
0 15 5 language Lcom/oracle/truffle/polyglot/LanguageCache;
1 15 6 dependencies Ljava/util/Set<Ljava/lang/String;>;
3 12 7 dependency Ljava/lang/String;
4 12 9 dependentLanguage Lcom/oracle/truffle/polyglot/LanguageCache;
Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;Lcom/oracle/truffle/polyglot/LanguageCache;)V
MethodParameters:
Name Flags
visitedIds
initErrors
cachedLanguages
serializedLanguages
language
private com.oracle.truffle.polyglot.PolyglotLanguage createLanguage(com.oracle.truffle.polyglot.LanguageCache, int, java.lang.RuntimeException);
descriptor: (Lcom/oracle/truffle/polyglot/LanguageCache;ILjava/lang/RuntimeException;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new com.oracle.truffle.polyglot.PolyglotLanguage
dup
aload 0
aload 1
iload 2
iload 2
ifne 1
iconst_1
goto 2
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.LanguageCache int java.lang.RuntimeException
StackMap stack: new 0 new 0 com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.LanguageCache int
1: iconst_0
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.LanguageCache int java.lang.RuntimeException
StackMap stack: new 0 new 0 com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.LanguageCache int int
2: aload 3
invokespecial com.oracle.truffle.polyglot.PolyglotLanguage.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/LanguageCache;IZLjava/lang/RuntimeException;)V
astore 4
start local 4 3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 4
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newLanguage:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractLanguageImpl;)Lorg/graalvm/polyglot/Language;
astore 5
start local 5 4: aload 4
aload 5
putfield com.oracle.truffle.polyglot.PolyglotLanguage.api:Lorg/graalvm/polyglot/Language;
5: aload 4
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 6 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 6 1 cache Lcom/oracle/truffle/polyglot/LanguageCache;
0 6 2 index I
0 6 3 initError Ljava/lang/RuntimeException;
3 6 4 languageImpl Lcom/oracle/truffle/polyglot/PolyglotLanguage;
4 6 5 language Lorg/graalvm/polyglot/Language;
MethodParameters:
Name Flags
cache
index
initError
private static void verifyId(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.RESERVED_IDS:Ljava/util/Set;
aload 0
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 4
1: new java.lang.IllegalStateException
dup
ldc "The language or instrument with class '%s' uses a reserved id '%s'. Resolve this by using a not reserved id for the language or instrument. The following ids are reserved %s for internal use."
iconst_3
anewarray java.lang.Object
dup
iconst_0
2: aload 1
aastore
dup
iconst_1
aload 0
aastore
dup
iconst_2
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.RESERVED_IDS:Ljava/util/Set;
aastore
3: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
ldc "."
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 8
5: new java.lang.IllegalStateException
dup
ldc "The language '%s' must not contain a period in its id '%s'. Remove all periods from the id to resolve this issue. "
iconst_2
anewarray java.lang.Object
dup
iconst_0
6: aload 1
aastore
dup
iconst_1
aload 0
aastore
7: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 id Ljava/lang/String;
0 9 1 className Ljava/lang/String;
MethodParameters:
Name Flags
id
className
private static java.lang.RuntimeException failDuplicateId(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.IllegalStateException
dup
1: ldc "Duplicate id '%s' specified by language or instrument with class '%s' and '%s'. Resolve this by specifying a unique id for each language or instrument."
iconst_3
anewarray java.lang.Object
dup
iconst_0
2: aload 0
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 2
aastore
3: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
4: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 duplicateId Ljava/lang/String;
0 5 1 className1 Ljava/lang/String;
0 5 2 className2 Ljava/lang/String;
MethodParameters:
Name Flags
duplicateId
className1
className2
void checkState();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.closed:Z
ifeq 2
1: ldc "Engine is already closed."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
private void addContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 1
aload 0
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:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 2
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
ifnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 3
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentApi:Lorg/graalvm/polyglot/Context;
ifnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 1
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newContext:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractContextImpl;)Lorg/graalvm/polyglot/Context;
astore 2
start local 2 4: aload 1
aload 2
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
5: aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 1
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newContext:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractContextImpl;)Lorg/graalvm/polyglot/Context;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentApi:Lorg/graalvm/polyglot/Context;
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
ifnull 8
7: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
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;
invokevirtual com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.validate:(Lcom/oracle/truffle/polyglot/PolyglotLimits;)V
8: StackMap locals: org.graalvm.polyglot.Context
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.workContextReferenceQueue:()V
9: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
invokeinterface org.graalvm.collections.EconomicSet.add:(Ljava/lang/Object;)Z
pop
10: 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;
ifnull 15
11: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
astore 3
start local 3 12: aload 3
ifnonnull 14
13: aload 0
new com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
dup
astore 3
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
14: StackMap locals: com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits
StackMap stack:
aload 3
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;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.initialize:(Lcom/oracle/truffle/polyglot/PolyglotLimits;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
end local 3 15: StackMap locals:
StackMap stack:
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostClassLoader:Ljava/lang/ClassLoader;
ifnull 17
16: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.customHostClassLoader:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
17: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 19
18: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.invalidateStaticContextAssumption:()V
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 20 1 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
4 20 2 api Lorg/graalvm/polyglot/Context;
12 15 3 l Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
MethodParameters:
Name Flags
context
void removeContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 2
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.removed:Z
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.lang.Object
StackMap stack:
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.removed:Z
3: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.freeInstances:Ljava/util/List;
invokeinterface java.util.List.clear:()V
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
invokeinterface org.graalvm.collections.EconomicSet.remove:(Ljava/lang/Object;)V
5: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.workContextReferenceQueue:()V
6: aload 2
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 11 1 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Exception table:
from to target type
1 7 8 any
8 9 8 any
MethodParameters:
Name Flags
context
private void workContextReferenceQueue();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=1
start local 0 0: goto 10
start local 1 1: StackMap locals: java.lang.ref.Reference
StackMap stack:
aload 1
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
astore 2
start local 2 2: aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.removed:Z
ifne 10
3: aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.freeInstances:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.ref.Reference com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
astore 3
start local 3 5: aload 3
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.freeInstance:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.freeInstances:Ljava/util/List;
invokeinterface java.util.List.clear:()V
8: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
aload 2
invokeinterface org.graalvm.collections.EconomicSet.remove:(Ljava/lang/Object;)V
9: aload 2
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.removed:Z
end local 2 end local 1 10: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextsReferenceQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
dup
astore 1
start local 1 11: ifnonnull 1
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 10 1 ref Ljava/lang/ref/Reference<*>;
11 13 1 ref Ljava/lang/ref/Reference<*>;
2 10 2 contextRef Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
5 6 3 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
void reportAllLanguageContexts(com.oracle.truffle.api.instrumentation.ContextsListener);
descriptor: (Lcom/oracle/truffle/api/instrumentation/ContextsListener;)V
flags: (0x0000)
Code:
stack=3, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
invokeinterface org.graalvm.collections.EconomicSet.isEmpty:()Z
ifeq 4
2: aload 3
monitorexit
3: return
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener top java.lang.Object
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
astore 2
start local 2 5: aload 3
monitorexit
6: goto 9
end local 2 StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
start local 2 9: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener java.util.List
StackMap stack:
aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 23
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener java.util.List top java.util.Iterator
StackMap stack:
10: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 3
start local 3 11: aload 1
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onContextCreated:(Lcom/oracle/truffle/api/TruffleContext;)V
12: aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 22
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
13: aload 8
iload 6
aaload
astore 5
start local 5 14: aload 5
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
astore 9
start local 9 15: aload 5
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
ifeq 21
aload 5
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ifnull 21
16: aload 1
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 9
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextCreated:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
17: aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 21
18: aload 1
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 9
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextInitialized:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
19: aload 5
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.finalized:Z
ifeq 21
20: aload 1
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 9
invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextFinalized:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
end local 9 end local 5 21: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
22: iload 6
iload 7
if_icmplt 13
end local 3 23: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
24: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 25 1 listener Lcom/oracle/truffle/api/instrumentation/ContextsListener;
5 7 2 allContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
9 25 2 allContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
11 23 3 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
14 21 5 lc Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
15 21 9 language Lcom/oracle/truffle/api/nodes/LanguageInfo;
Exception table:
from to target type
1 3 7 any
4 6 7 any
7 8 7 any
MethodParameters:
Name Flags
listener
void reportAllContextThreads(com.oracle.truffle.api.instrumentation.ThreadsListener);
descriptor: (Lcom/oracle/truffle/api/instrumentation/ThreadsListener;)V
flags: (0x0000)
Code:
stack=3, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
invokeinterface org.graalvm.collections.EconomicSet.isEmpty:()Z
ifeq 4
2: aload 3
monitorexit
3: return
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener top java.lang.Object
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
astore 2
start local 2 5: aload 3
monitorexit
6: goto 9
end local 2 StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
start local 2 9: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List
StackMap stack:
aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 22
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List top java.util.Iterator
StackMap stack:
10: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 3
start local 3 11: aload 3
dup
astore 6
monitorenter
12: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
iconst_0
anewarray java.lang.Thread
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Thread[]
astore 5
start local 5 13: aload 6
monitorexit
14: goto 17
end local 5 StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
15: aload 6
monitorexit
16: athrow
start local 5 17: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator java.lang.Thread[]
StackMap stack:
aload 5
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 21
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator java.lang.Thread[] top int int java.lang.Thread[]
StackMap stack:
18: aload 9
iload 7
aaload
astore 6
start local 6 19: aload 1
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 6
invokeinterface com.oracle.truffle.api.instrumentation.ThreadsListener.onThreadInitialized:(Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
end local 6 20: iinc 7 1
StackMap locals:
StackMap stack:
21: iload 7
iload 8
if_icmplt 18
end local 5 end local 3 22: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
23: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 24 1 listener Lcom/oracle/truffle/api/instrumentation/ThreadsListener;
5 7 2 allContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
9 24 2 allContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
11 22 3 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
13 15 5 threads [Ljava/lang/Thread;
17 22 5 threads [Ljava/lang/Thread;
19 20 6 thread Ljava/lang/Thread;
Exception table:
from to target type
1 3 7 any
4 6 7 any
7 8 7 any
12 14 15 any
15 16 15 any
MethodParameters:
Name Flags
listener
public org.graalvm.polyglot.Language requirePublicLanguage(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Language;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Language
astore 2
start local 2 2: aload 2
ifnonnull 8
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.matchSpellingError:(Ljava/util/Set;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 4: ldc ""
astore 4
start local 4 5: aload 3
ifnull 7
6: ldc "Did you mean '%s'? "
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 4
7: StackMap locals: org.graalvm.polyglot.Language java.lang.String java.lang.String
StackMap stack:
ldc "A language with id '%s' is not installed. %sInstalled languages are: %s."
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguages:()Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 4 end local 3 8: StackMap locals:
StackMap stack:
aload 2
9: areturn
end local 2 10: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.String
StackMap stack: java.lang.Throwable
astore 2
start local 2 11: aload 0
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 12 1 id Ljava/lang/String;
2 10 2 language Lorg/graalvm/polyglot/Language;
4 8 3 misspelledGuess Ljava/lang/String;
5 8 4 didYouMean Ljava/lang/String;
11 12 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 9 10 Class java.lang.Throwable
MethodParameters:
Name Flags
id
private static java.lang.String matchSpellingError(java.util.Set<java.lang.String>, java.lang.String);
descriptor: (Ljava/util/Set;Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: java.util.Set java.lang.String java.lang.String top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 3: aload 3
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: aload 3
areturn
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 allIds Ljava/util/Set<Ljava/lang/String;>;
0 7 1 enteredId Ljava/lang/String;
1 7 2 lowerCaseEnteredId Ljava/lang/String;
3 5 3 id Ljava/lang/String;
Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;)Ljava/lang/String;
MethodParameters:
Name Flags
allIds
enteredId
public org.graalvm.polyglot.Instrument requirePublicInstrument(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Instrument;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
astore 2
start local 2 2: aload 2
ifnonnull 8
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.matchSpellingError:(Ljava/util/Set;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 4: ldc ""
astore 4
start local 4 5: aload 3
ifnull 7
6: ldc "Did you mean '%s'? "
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 4
7: StackMap locals: org.graalvm.polyglot.Instrument java.lang.String java.lang.String
StackMap stack:
ldc "An instrument with id '%s' is not installed. %sInstalled instruments are: %s."
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getInstruments:()Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 4 end local 3 8: StackMap locals:
StackMap stack:
aload 2
9: areturn
end local 2 10: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.String
StackMap stack: java.lang.Throwable
astore 2
start local 2 11: aload 0
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 12 1 id Ljava/lang/String;
2 10 2 instrument Lorg/graalvm/polyglot/Instrument;
4 8 3 misspelledGuess Ljava/lang/String;
5 8 4 didYouMean Ljava/lang/String;
11 12 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 9 10 Class java.lang.Throwable
MethodParameters:
Name Flags
id
public void close(org.graalvm.polyglot.Engine, boolean);
descriptor: (Lorg/graalvm/polyglot/Engine;Z)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
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
if_acmpeq 2
1: ldc "Engine instances that were indirectly received using Context.get() cannot be closed."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 2
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 3
start local 3 5: aload 0
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 3 6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 7 1 sourceEngine Lorg/graalvm/polyglot/Engine;
0 7 2 cancelIfExecuting Z
5 6 3 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
MethodParameters:
Name Flags
sourceEngine
cancelIfExecuting
<T extends com.oracle.truffle.api.TruffleLanguage<?>> com.oracle.truffle.polyglot.PolyglotLanguage getLanguage(java.lang.Class<T>, boolean);
descriptor: (Ljava/lang/Class;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 3
start local 3 1: aload 3
ifnonnull 7
2: aload 1
ldc Lcom/oracle/truffle/polyglot/HostLanguage;
if_acmpne 4
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
areturn
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
StackMap stack:
iload 2
ifeq 7
5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
astore 4
start local 4 6: new java.lang.StringBuilder
dup
ldc "Cannot find language "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " among "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 4 7: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 8 1 languageClass Ljava/lang/Class<TT;>;
0 8 2 fail Z
1 8 3 foundLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
6 7 4 languageNames Ljava/util/Set<Ljava/lang/String;>;
Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<*>;>(Ljava/lang/Class<TT;>;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
languageClass
fail
<T extends com.oracle.truffle.api.TruffleLanguage<?>> com.oracle.truffle.polyglot.PolyglotLanguageInstance getCurrentLanguageInstance(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguage:(Ljava/lang/Class;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
astore 2
start local 2 1: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getCurrentLanguageContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
ifne 5
3: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
4: ldc "A context for language %s was not yet created."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
5: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
areturn
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/polyglot/PolyglotEngineImpl;
0 6 1 languageClass Ljava/lang/Class<TT;>;
1 6 2 foundLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
2 6 3 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<*>;>(Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
MethodParameters:
Name Flags
languageClass
void ensureClosed(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0000)
Code:
stack=7, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.closed:Z
ifne 88
2: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.workContextReferenceQueue:()V
3: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
astore 4
start local 4 4: iload 2
ifne 27
5: iload 1
ifne 17
6: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 16
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
7: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 5
start local 5 8: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 9
aload 5
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator
StackMap stack:
aload 5
dup
astore 7
monitorenter
10: aload 5
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
ifeq 12
aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
ifnonnull 12
11: ldc "One of the context instances is currently executing. Set cancelIfExecuting to true to stop the execution on this thread."
iconst_0
anewarray java.lang.Object
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
12: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 7
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 7
monitorexit
15: athrow
end local 5 16: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
17: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List
StackMap stack:
aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 24
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
18: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 5
start local 5 19: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 20
aload 5
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
20: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator
StackMap stack:
aload 5
iload 1
iload 1
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
istore 7
start local 7 21: iload 7
ifne 23
iload 1
ifne 23
22: ldc "One of the context instances is currently executing. Set cancelIfExecuting to true to stop the execution on this thread."
iconst_0
anewarray java.lang.Object
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
23: StackMap locals: int
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkSubProcessFinished:()V
end local 7 end local 5 24: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
25: iload 1
ifeq 27
26: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCancelHandler:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler.cancel:(Ljava/util/List;)V
27: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List
StackMap stack:
iload 2
ifne 37
28: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
ifne 33
29: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 32
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
30: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 5
start local 5 31: aload 5
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
end local 5 32: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
33: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
invokeinterface org.graalvm.collections.EconomicSet.clear:()V
34: getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.onEngineClosing:(Ljava/lang/Object;)Z
ifeq 37
35: aload 3
monitorexit
36: return
37: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 44
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
38: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 5
start local 5 39: aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.notifyClosing:()V
40: goto 44
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List com.oracle.truffle.polyglot.PolyglotInstrument java.util.Iterator
StackMap stack: java.lang.Throwable
41: astore 7
start local 7 42: iload 2
ifne 44
43: aload 7
athrow
end local 7 end local 5 44: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 38
45: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 52
StackMap locals:
StackMap stack:
46: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 5
start local 5 47: aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.ensureClosed:()V
48: goto 52
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List com.oracle.truffle.polyglot.PolyglotInstrument java.util.Iterator
StackMap stack: java.lang.Throwable
49: astore 7
start local 7 50: iload 2
ifne 52
51: aload 7
athrow
end local 7 end local 5 52: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 46
53: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
ifnull 70
54: new java.io.StringWriter
dup
invokespecial java.io.StringWriter.<init>:()V
astore 5
start local 5 55: aconst_null
astore 6
aconst_null
astore 7
56: new java.io.PrintWriter
dup
aload 5
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
astore 8
start local 8 57: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
invokevirtual com.oracle.truffle.api.dsl.SpecializationStatistics.hasData:()Z
ifne 62
58: aload 8
ldc "No specialization statistics data was collected. Either no node with @%s annotations was executed or the interpreter was not compiled with -J-Dtruffle.dsl.GenerateSpecializationStatistics=true e.g as parameter to the javac tool."
iconst_1
anewarray java.lang.Object
dup
iconst_0
59: ldc Lcom/oracle/truffle/api/dsl/Specialization;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
60: invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
61: goto 63
62: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List java.io.StringWriter java.lang.Throwable java.lang.Throwable java.io.PrintWriter
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
aload 8
invokevirtual com.oracle.truffle.api.dsl.SpecializationStatistics.printHistogram:(Ljava/io/PrintWriter;)V
63: StackMap locals:
StackMap stack:
aload 8
ifnull 69
aload 8
invokevirtual java.io.PrintWriter.close:()V
goto 69
StackMap locals:
StackMap stack: java.lang.Throwable
64: astore 6
aload 8
ifnull 65
aload 8
invokevirtual java.io.PrintWriter.close:()V
end local 8 StackMap locals:
StackMap stack:
65: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
66: astore 7
aload 6
ifnonnull 67
aload 7
astore 6
goto 68
StackMap locals:
StackMap stack:
67: aload 6
aload 7
if_acmpeq 68
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
68: aload 6
athrow
69: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getEngineLogger:()Lcom/oracle/truffle/api/TruffleLogger;
getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
ldc "Specialization histogram: %n%s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
end local 5 70: StackMap locals:
StackMap stack:
iload 2
ifne 86
71: getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.onEngineClosed:(Ljava/lang/Object;)V
72: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getEngineLoggers:()Ljava/lang/Object;
astore 5
start local 5 73: aload 5
ifnull 75
74: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 5
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.closeEngineLoggers:(Ljava/lang/Object;)V
75: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
ifnull 77
76: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
invokevirtual java.util.logging.Handler.close:()V
77: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.closed:Z
78: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 81
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List java.lang.Object top java.util.Iterator
StackMap stack:
79: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 6
start local 6 80: aload 6
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.close:()V
end local 6 81: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 79
82: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
ifnull 84
83: getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.flushCompileQueue:(Ljava/lang/Object;)V
84: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List java.lang.Object
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 85: goto 88
StackMap locals:
StackMap stack:
86: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
ifnull 88
87: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
invokevirtual java.util.logging.Handler.flush:()V
end local 4 88: StackMap locals:
StackMap stack:
aload 3
monitorexit
89: goto 92
StackMap locals:
StackMap stack: java.lang.Throwable
90: aload 3
monitorexit
91: athrow
92: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 93 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 93 1 cancelIfExecuting Z
0 93 2 inShutdownHook Z
4 88 4 localContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
8 16 5 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
19 24 5 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
21 24 7 closeCompleted Z
31 32 5 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
39 44 5 instrumentImpl Lcom/oracle/truffle/polyglot/PolyglotInstrument;
42 44 7 e Ljava/lang/Throwable;
47 52 5 instrumentImpl Lcom/oracle/truffle/polyglot/PolyglotInstrument;
50 52 7 e Ljava/lang/Throwable;
55 70 5 logMessage Ljava/io/StringWriter;
57 65 8 writer Ljava/io/PrintWriter;
73 85 5 loggers Ljava/lang/Object;
80 81 6 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Exception table:
from to target type
10 13 14 any
14 15 14 any
39 40 41 Class java.lang.Throwable
47 48 49 Class java.lang.Throwable
57 63 64 any
56 66 66 any
1 36 90 any
37 89 90 any
90 91 90 any
MethodParameters:
Name Flags
cancelIfExecuting
inShutdownHook
java.util.List<com.oracle.truffle.polyglot.PolyglotContextImpl> collectAliveContexts();
descriptor: ()Ljava/util/List;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
pop
1: new java.util.ArrayList
dup
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
invokeinterface org.graalvm.collections.EconomicSet.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 1
start local 1 2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
invokeinterface org.graalvm.collections.EconomicSet.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
astore 2
start local 2 4: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 4
start local 4 5: aload 4
ifnull 8
6: aload 1
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: goto 9
8: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference java.util.Iterator com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
aload 2
invokeinterface org.graalvm.collections.EconomicSet.remove:(Ljava/lang/Object;)V
end local 4 end local 2 9: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
10: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
2 11 1 localContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
4 9 2 ref Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
5 9 4 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Signature: ()Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
public java.util.Map<java.lang.String, org.graalvm.polyglot.Instrument> getInstruments();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 4: aload 0
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
4 5 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Instrument;>;
public java.util.Map<java.lang.String, org.graalvm.polyglot.Language> getLanguages();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 4: aload 0
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
4 5 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Language;>;
public org.graalvm.options.OptionDescriptors getOptions();
descriptor: ()Lorg/graalvm/options/OptionDescriptors;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.getDescriptors:()Lorg/graalvm/options/OptionDescriptors;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 4: aload 0
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
4 5 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
public java.util.Set<org.graalvm.polyglot.Source> getCachedSources();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=10, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 2: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
astore 2
start local 2 3: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 3
start local 3 5: aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 11
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
6: aload 8
iload 6
aaload
astore 5
start local 5 7: aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstanceOrNull:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
astore 9
start local 9 8: aload 9
ifnull 10
9: aload 9
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.listCachedSources:(Ljava/util/Collection;)V
end local 9 end local 5 10: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
11: iload 6
iload 7
if_icmplt 6
end local 3 12: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
13: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
14: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 20
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List java.lang.Object top java.util.Iterator
StackMap stack:
15: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 4
start local 4 16: aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getInstancePool:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 19
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage java.util.Iterator top java.util.Iterator
StackMap stack:
17: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
astore 6
start local 6 18: aload 6
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.listCachedSources:(Ljava/util/Collection;)V
end local 6 19: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
end local 4 20: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List java.lang.Object top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
21: aload 3
monitorexit
22: goto 25
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List java.lang.Object
StackMap stack: java.lang.Throwable
23: aload 3
monitorexit
24: athrow
25: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
2 26 1 sources Ljava/util/Set<Lorg/graalvm/polyglot/Source;>;
3 26 2 activeContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
5 12 3 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
7 10 5 language Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
8 10 9 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
16 20 4 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
18 19 6 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
Exception table:
from to target type
14 22 23 any
23 24 23 any
Signature: ()Ljava/util/Set<Lorg/graalvm/polyglot/Source;>;
java.util.Collection<com.oracle.truffle.api.CallTarget> getCallTargets();
descriptor: ()Ljava/util/Collection;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getLoadedCallTargets:(Ljava/lang/Object;)Ljava/util/Collection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
Signature: ()Ljava/util/Collection<Lcom/oracle/truffle/api/CallTarget;>;
org.graalvm.options.OptionDescriptors getAllOptions();
descriptor: ()Lorg/graalvm/options/OptionDescriptors;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.allOptions:Lorg/graalvm/options/OptionDescriptors;
ifnonnull 19
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.allOptions:Lorg/graalvm/options/OptionDescriptors;
ifnonnull 15
4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 5: aload 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.getDescriptors:()Lorg/graalvm/options/OptionDescriptors;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 3
start local 3 8: aload 2
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionsInternal:()Lorg/graalvm/options/OptionDescriptors;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 9: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 13
StackMap locals:
StackMap stack:
11: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 3
start local 3 12: aload 2
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getAllOptionsInternal:()Lorg/graalvm/options/OptionDescriptors;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 13: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: aload 0
aload 2
iconst_0
anewarray org.graalvm.options.OptionDescriptors
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.graalvm.options.OptionDescriptors[]
invokestatic org.graalvm.options.OptionDescriptors.createUnion:([Lorg/graalvm/options/OptionDescriptors;)Lorg/graalvm/options/OptionDescriptors;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.allOptions:Lorg/graalvm/options/OptionDescriptors;
end local 2 15: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object
StackMap stack:
aload 1
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 1
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.allOptions:Lorg/graalvm/options/OptionDescriptors;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
5 15 2 allDescriptors Ljava/util/List<Lorg/graalvm/options/OptionDescriptors;>;
8 9 3 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
12 13 3 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
Exception table:
from to target type
3 16 17 any
17 18 17 any
void preInitialize();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.preInitializedContext:Ljava/util/concurrent/atomic/AtomicReference;
aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.preInitialize:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
2: aload 1
monitorexit
3: goto 6
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
Exception table:
from to target type
1 3 4 any
4 5 4 any
void intitializeStore(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 6
1: iload 1
ifeq 4
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
ifeq 4
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 4
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeMultiContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
5: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.enableStore:()V
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 7 1 previousStore Z
0 7 2 newStore Z
MethodParameters:
Name Flags
previousStore
newStore
void finalizeStore();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 1
aload 0
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 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
2: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
3: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
4: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
5: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.finalizeStoreInstrumentationHandler:(Ljava/lang/Object;)V
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
ifeq 8
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
ifeq 8
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 8
7: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single context after preinitialization."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
static void resetPreInitializedEngine();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
1: return
LocalVariableTable:
Start End Slot Name Signature
void initializeHostAccess(org.graalvm.polyglot.HostAccess);
descriptor: (Lorg/graalvm/polyglot/HostAccess;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 1
aload 0
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:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 2
aload 1
ifnonnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
invokestatic com.oracle.truffle.polyglot.HostClassCache.findOrInitialize:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;Lorg/graalvm/polyglot/HostAccess;Ljava/lang/ClassLoader;)Lcom/oracle/truffle/polyglot/HostClassCache;
astore 2
start local 2 3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostClassCache:Lcom/oracle/truffle/polyglot/HostClassCache;
ifnull 6
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostClassCache:Lcom/oracle/truffle/polyglot/HostClassCache;
getfield com.oracle.truffle.polyglot.HostClassCache.hostAccess:Lorg/graalvm/polyglot/HostAccess;
aload 2
getfield com.oracle.truffle.polyglot.HostClassCache.hostAccess:Lorg/graalvm/polyglot/HostAccess;
invokevirtual org.graalvm.polyglot.HostAccess.equals:(Ljava/lang/Object;)Z
ifne 7
5: ldc "Found different host access configuration for a context with a shared engine. The host access configuration must be the same for all contexts of an engine. Provide the same host access configuration using the Context.Builder.allowHostAccess method when constructing the context."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
6: StackMap locals: com.oracle.truffle.polyglot.HostClassCache
StackMap stack:
aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostClassCache:Lcom/oracle/truffle/polyglot/HostClassCache;
7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 8 1 policy Lorg/graalvm/polyglot/HostAccess;
3 8 2 cache Lcom/oracle/truffle/polyglot/HostClassCache;
MethodParameters:
Name Flags
policy
com.oracle.truffle.polyglot.HostClassCache getHostClassCache();
descriptor: ()Lcom/oracle/truffle/polyglot/HostClassCache;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostClassCache:Lcom/oracle/truffle/polyglot/HostClassCache;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
int getAsynchronousStackDepth();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.asynchronousStackDepth:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
void setAsynchronousStackDepth(com.oracle.truffle.polyglot.PolyglotInstrument, int);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotInstrument;I)V
flags: (0x0000)
Code:
stack=7, locals=7, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 1
iload 2
ifge 1
new java.lang.AssertionError
dup
ldc "Wrong depth: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 1
iload 2
putfield com.oracle.truffle.polyglot.PolyglotInstrument.requestedAsyncStackDepth:I
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 8
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotInstrument int int java.lang.Object top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 5
start local 5 6: aload 5
getfield com.oracle.truffle.polyglot.PolyglotInstrument.requestedAsyncStackDepth:I
iload 3
if_icmple 8
7: aload 5
getfield com.oracle.truffle.polyglot.PolyglotInstrument.requestedAsyncStackDepth:I
istore 3
end local 5 8: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: aload 4
monitorexit
10: goto 13
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotInstrument int int java.lang.Object
StackMap stack: java.lang.Throwable
11: aload 4
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
aload 0
iload 3
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.asynchronousStackDepth:I
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 15 1 polyglotInstrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
0 15 2 depth I
2 15 3 newDepth I
6 8 5 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
Exception table:
from to target type
3 10 11 any
11 12 11 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
polyglotInstrument
depth
com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler getCancelHandler();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.cancelHandler:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
ifnonnull 8
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.cancelHandler:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
ifnonnull 4
3: aload 0
new com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.cancelHandler:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
4: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.cancelHandler:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
Exception table:
from to target type
2 5 6 any
6 7 6 any
public java.lang.String getImplementationName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
invokeinterface com.oracle.truffle.api.TruffleRuntime.getName:()Ljava/lang/String;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 3: aload 0
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
3 4 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
public org.graalvm.polyglot.Context createContext(java.io.OutputStream, java.io.OutputStream, java.io.InputStream, boolean, org.graalvm.polyglot.HostAccess, org.graalvm.polyglot.PolyglotAccess, boolean, boolean, boolean, boolean, boolean, java.util.function.Predicate<java.lang.String>, java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.String[]>, java.lang.String[], org.graalvm.polyglot.io.FileSystem, , boolean, org.graalvm.polyglot.io.ProcessHandler, org.graalvm.polyglot.EnvironmentAccess, java.util.Map<java.lang.String, java.lang.String>, java.time.ZoneId, , java.lang.String, java.lang.ClassLoader);
descriptor: (Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;ZLorg/graalvm/polyglot/HostAccess;Lorg/graalvm/polyglot/PolyglotAccess;ZZZZZLjava/util/function/Predicate;Ljava/util/Map;Ljava/util/Map;[Ljava/lang/String;Lorg/graalvm/polyglot/io/FileSystem;Ljava/lang/Object;ZLorg/graalvm/polyglot/io/ProcessHandler;Lorg/graalvm/polyglot/EnvironmentAccess;Ljava/util/Map;Ljava/time/ZoneId;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/ClassLoader;)Lorg/graalvm/polyglot/Context;
flags: (0x0001) ACC_PUBLIC
Code:
stack=26, locals=41, args_size=26
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 start local 12 start local 13 start local 14 start local 15 start local 16 start local 17 start local 18 start local 19 start local 20 start local 21 start local 22 start local 23 start local 24 start local 25 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 29
monitorenter
1: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
ifeq 4
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
invokeinterface org.graalvm.collections.EconomicSet.isEmpty:()Z
ifne 4
3: ldc "Automatically created engines cannot be used to create more than one context. Use Engine.newBuilder().build() to construct a new engine and pass it using Context.newBuilder().engine(engine).build()."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader top top top java.lang.Object
StackMap stack:
aload 0
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeHostAccess:(Lorg/graalvm/polyglot/HostAccess;)V
5: aload 29
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 29
monitorexit
8: athrow
9: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader
StackMap stack:
invokestatic org.graalvm.collections.EconomicSet.create:()Lorg/graalvm/collections/EconomicSet;
astore 29
start local 29 10: aload 15
arraylength
ifne 13
11: aload 29
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguages:()Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface org.graalvm.collections.EconomicSet.addAll:(Ljava/lang/Iterable;)V
12: goto 14
13: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader top top top org.graalvm.collections.EconomicSet
StackMap stack:
aload 29
aload 15
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface org.graalvm.collections.EconomicSet.addAll:(Ljava/lang/Iterable;)V
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 6
aload 29
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.validatePolyglotAccess:(Lorg/graalvm/polyglot/PolyglotAccess;Lorg/graalvm/collections/UnmodifiableEconomicSet;)Ljava/lang/String;
astore 30
start local 30 15: aload 30
ifnull 17
16: aload 30
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
17: StackMap locals: java.lang.String
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_IO:Z
ifne 23
18: aload 16
ifnonnull 20
19: invokestatic com.oracle.truffle.polyglot.FileSystems.newNoIOFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
astore 16
20: StackMap locals:
StackMap stack:
aload 16
astore 31
start local 31 21: aload 16
astore 32
start local 32 22: goto 31
end local 32 end local 31 StackMap locals:
StackMap stack:
23: iload 9
ifeq 29
24: aload 16
ifnull 25
aload 16
goto 26
StackMap locals:
StackMap stack:
25: invokestatic com.oracle.truffle.polyglot.FileSystems.newDefaultFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
StackMap locals:
StackMap stack: org.graalvm.polyglot.io.FileSystem
26: astore 31
start local 31 27: aload 31
astore 32
start local 32 28: goto 31
end local 32 end local 31 29: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.polyglot.FileSystems.newNoIOFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
astore 31
start local 31 30: invokestatic com.oracle.truffle.polyglot.FileSystems.newLanguageHomeFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
astore 32
start local 32 31: StackMap locals: org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem
StackMap stack:
aload 24
ifnull 34
32: aload 31
aload 31
aload 24
invokeinterface org.graalvm.polyglot.io.FileSystem.parsePath:(Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface org.graalvm.polyglot.io.FileSystem.setCurrentWorkingDirectory:(Ljava/nio/file/Path;)V
33: aload 32
aload 32
aload 24
invokeinterface org.graalvm.polyglot.io.FileSystem.parsePath:(Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface org.graalvm.polyglot.io.FileSystem.setCurrentWorkingDirectory:(Ljava/nio/file/Path;)V
34: StackMap locals:
StackMap stack:
aload 1
ifnull 35
aload 1
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
if_acmpne 37
35: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
astore 33
start local 33 36: goto 38
end local 33 37: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDelegatingOutput:(Ljava/io/OutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Lcom/oracle/truffle/api/impl/DelegatingOutputStream;
astore 33
start local 33 38: StackMap locals: java.io.OutputStream
StackMap stack:
aload 2
ifnull 39
aload 2
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
if_acmpne 41
39: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
astore 34
start local 34 40: goto 42
end local 34 41: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDelegatingOutput:(Ljava/io/OutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Lcom/oracle/truffle/api/impl/DelegatingOutputStream;
astore 34
start local 34 42: StackMap locals: java.io.OutputStream
StackMap stack:
aload 17
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.asHandler:(Ljava/lang/Object;)Ljava/util/logging/Handler;
astore 35
start local 35 43: aload 35
ifnull 44
aload 35
goto 45
StackMap locals: java.util.logging.Handler
StackMap stack:
44: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
StackMap locals:
StackMap stack: java.util.logging.Handler
45: astore 35
46: aload 35
ifnull 47
aload 35
goto 50
47: StackMap locals:
StackMap stack:
aload 2
ifnonnull 48
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
goto 49
StackMap locals:
StackMap stack:
48: aload 2
49: StackMap locals:
StackMap stack: java.io.OutputStream
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.createDefaultHandler:(Ljava/io/OutputStream;)Ljava/util/logging/Handler;
50: StackMap locals:
StackMap stack: java.util.logging.Handler
astore 35
51: aload 3
ifnonnull 52
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
goto 53
StackMap locals:
StackMap stack:
52: aload 3
StackMap locals:
StackMap stack: java.io.InputStream
53: astore 36
start local 36 54: iload 18
ifeq 61
55: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_CREATE_PROCESS:Z
ifne 57
56: ldc "Cannot allowCreateProcess() because the privilege is removed at image build time"
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
57: StackMap locals: java.io.InputStream
StackMap stack:
aload 19
ifnull 58
aload 19
goto 59
StackMap locals:
StackMap stack:
58: invokestatic com.oracle.truffle.polyglot.ProcessHandlers.newDefaultProcessHandler:()Lorg/graalvm/polyglot/io/ProcessHandler;
StackMap locals:
StackMap stack: org.graalvm.polyglot.io.ProcessHandler
59: astore 37
start local 37 60: goto 62
end local 37 61: StackMap locals:
StackMap stack:
aconst_null
astore 37
start local 37 62: StackMap locals: org.graalvm.polyglot.io.ProcessHandler
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_ENVIRONMENT_ACCESS:Z
ifne 64
aload 20
getstatic org.graalvm.polyglot.EnvironmentAccess.NONE:Lorg/graalvm/polyglot/EnvironmentAccess;
if_acmpeq 64
63: ldc "Cannot allow EnvironmentAccess because the privilege is removed at image build time"
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
64: StackMap locals:
StackMap stack:
aload 23
checkcast com.oracle.truffle.polyglot.PolyglotLimits
astore 38
start local 38 65: new com.oracle.truffle.polyglot.PolyglotContextConfig
dup
aload 0
aload 33
aload 34
aload 36
66: iload 4
aload 6
iload 7
iload 8
iload 10
67: iload 11
aload 12
aload 14
aload 29
aload 13
aload 31
aload 32
aload 35
iload 18
aload 37
68: aload 20
aload 21
aload 22
aload 38
aload 25
69: invokespecial com.oracle.truffle.polyglot.PolyglotContextConfig.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;ZLorg/graalvm/polyglot/PolyglotAccess;ZZZZLjava/util/function/Predicate;Ljava/util/Map;Lorg/graalvm/collections/EconomicSet;Ljava/util/Map;Lorg/graalvm/polyglot/io/FileSystem;Lorg/graalvm/polyglot/io/FileSystem;Ljava/util/logging/Handler;ZLorg/graalvm/polyglot/io/ProcessHandler;Lorg/graalvm/polyglot/EnvironmentAccess;Ljava/util/Map;Ljava/time/ZoneId;Lcom/oracle/truffle/polyglot/PolyglotLimits;Ljava/lang/ClassLoader;)V
astore 39
start local 39 70: aload 0
aload 39
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.loadPreinitializedContext:(Lcom/oracle/truffle/polyglot/PolyglotContextConfig;Lorg/graalvm/polyglot/HostAccess;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 26
start local 26 71: iconst_0
istore 27
start local 27 72: iconst_0
istore 28
start local 28 73: aload 26
ifnonnull 83
74: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 40
monitorenter
75: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
76: new com.oracle.truffle.polyglot.PolyglotContextImpl
dup
aload 0
aload 39
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
astore 26
77: aload 0
aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
78: iconst_1
istore 28
79: aload 40
monitorexit
80: goto 88
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int org.graalvm.collections.EconomicSet java.lang.String org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.io.OutputStream java.io.OutputStream java.util.logging.Handler java.io.InputStream org.graalvm.polyglot.io.ProcessHandler com.oracle.truffle.polyglot.PolyglotLimits com.oracle.truffle.polyglot.PolyglotContextConfig java.lang.Object
StackMap stack: java.lang.Throwable
81: aload 40
monitorexit
82: athrow
83: StackMap locals:
StackMap stack:
aload 26
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
if_acmpne 88
84: iconst_1
istore 27
end local 39 end local 38 end local 37 end local 36 end local 35 end local 34 end local 33 end local 32 end local 31 end local 30 end local 29 85: goto 88
end local 28 end local 27 end local 26 StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader
StackMap stack: java.lang.Throwable
86: astore 29
start local 29 87: aload 0
aload 29
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 29 start local 26 start local 27 start local 28 88: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int
StackMap stack:
iload 27
ifne 104
89: aload 26
dup
astore 30
monitorenter
90: aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initializeContextLocals:()V
91: aload 30
monitorexit
92: goto 104
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
93: aload 30
monitorexit
94: athrow
95: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int
StackMap stack: java.lang.Throwable
astore 30
start local 30 96: iload 28
ifeq 103
97: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 31
monitorenter
98: aload 0
aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.removeContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
99: aload 31
monitorexit
100: goto 103
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int top java.lang.Throwable java.lang.Object
StackMap stack: java.lang.Throwable
101: aload 31
monitorexit
102: athrow
103: StackMap locals:
StackMap stack:
aload 30
athrow
end local 30 104: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.hasContextBindings:(Ljava/lang/Object;)Z
istore 29
start local 29 105: goto 108
end local 29 StackMap locals:
StackMap stack: java.lang.Throwable
106: astore 30
start local 30 107: aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 30
iconst_0
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 30 start local 29 108: StackMap locals: int
StackMap stack:
iload 27
ifeq 127
iload 29
ifeq 127
109: aload 0
aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 30
start local 30 110: goto 113
end local 30 StackMap locals:
StackMap stack: java.lang.Throwable
111: astore 31
start local 31 112: aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 31
iconst_0
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 31 start local 30 113: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.replayInstrumentationEvents:()V
114: goto 123
StackMap locals:
StackMap stack: java.lang.Throwable
115: astore 31
start local 31 116: aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 31
iconst_1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 31 117: StackMap locals:
StackMap stack: java.lang.Throwable
astore 32
118: aload 0
aload 30
aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
119: goto 122
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int int com.oracle.truffle.polyglot.PolyglotContextImpl top java.lang.Throwable
StackMap stack: java.lang.Throwable
120: astore 33
start local 33 121: aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 33
iconst_0
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 33 122: StackMap locals:
StackMap stack:
aload 32
athrow
123: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
aload 30
aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
124: goto 127
StackMap locals:
StackMap stack: java.lang.Throwable
125: astore 33
start local 33 126: aload 26
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 33
iconst_0
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 33 end local 30 127: StackMap locals:
StackMap stack:
aload 26
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
areturn
end local 29 end local 28 end local 27 end local 26 end local 25 end local 24 end local 23 end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 128 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 128 1 configOut Ljava/io/OutputStream;
0 128 2 configErr Ljava/io/OutputStream;
0 128 3 configIn Ljava/io/InputStream;
0 128 4 allowHostLookup Z
0 128 5 hostAccess Lorg/graalvm/polyglot/HostAccess;
0 128 6 polyglotAccess Lorg/graalvm/polyglot/PolyglotAccess;
0 128 7 allowNativeAccess Z
0 128 8 allowCreateThread Z
0 128 9 allowHostIO Z
0 128 10 allowHostClassLoading Z
0 128 11 allowExperimentalOptions Z
0 128 12 classFilter Ljava/util/function/Predicate<Ljava/lang/String;>;
0 128 13 options Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 128 14 arguments Ljava/util/Map<Ljava/lang/String;[Ljava/lang/String;>;
0 128 15 onlyLanguages [Ljava/lang/String;
0 128 16 fileSystem Lorg/graalvm/polyglot/io/FileSystem;
0 128 17 logHandlerOrStream Ljava/lang/Object;
0 128 18 allowCreateProcess Z
0 128 19 processHandler Lorg/graalvm/polyglot/io/ProcessHandler;
0 128 20 environmentAccess Lorg/graalvm/polyglot/EnvironmentAccess;
0 128 21 environment Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 128 22 zone Ljava/time/ZoneId;
0 128 23 limitsImpl Ljava/lang/Object;
0 128 24 currentWorkingDirectory Ljava/lang/String;
0 128 25 hostClassLoader Ljava/lang/ClassLoader;
71 86 26 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
88 128 26 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
72 86 27 replayEvents Z
88 128 27 replayEvents Z
73 86 28 contextAddedToEngine Z
88 128 28 contextAddedToEngine Z
10 85 29 allowedLanguages Lorg/graalvm/collections/EconomicSet<Ljava/lang/String;>;
15 85 30 error Ljava/lang/String;
21 23 31 fs Lorg/graalvm/polyglot/io/FileSystem;
27 29 31 fs Lorg/graalvm/polyglot/io/FileSystem;
30 85 31 fs Lorg/graalvm/polyglot/io/FileSystem;
22 23 32 internalFs Lorg/graalvm/polyglot/io/FileSystem;
28 29 32 internalFs Lorg/graalvm/polyglot/io/FileSystem;
31 85 32 internalFs Lorg/graalvm/polyglot/io/FileSystem;
36 37 33 useOut Ljava/io/OutputStream;
38 85 33 useOut Ljava/io/OutputStream;
40 41 34 useErr Ljava/io/OutputStream;
42 85 34 useErr Ljava/io/OutputStream;
43 85 35 useHandler Ljava/util/logging/Handler;
54 85 36 useIn Ljava/io/InputStream;
60 61 37 useProcessHandler Lorg/graalvm/polyglot/io/ProcessHandler;
62 85 37 useProcessHandler Lorg/graalvm/polyglot/io/ProcessHandler;
65 85 38 polyglotLimits Lcom/oracle/truffle/polyglot/PolyglotLimits;
70 85 39 config Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
87 88 29 t Ljava/lang/Throwable;
105 106 29 hasContextBindings Z
108 128 29 hasContextBindings Z
96 104 30 t Ljava/lang/Throwable;
107 108 30 t Ljava/lang/Throwable;
110 111 30 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
113 127 30 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
112 113 31 t Ljava/lang/Throwable;
116 117 31 t Ljava/lang/Throwable;
121 122 33 t Ljava/lang/Throwable;
126 127 33 t Ljava/lang/Throwable;
Exception table:
from to target type
1 6 7 any
7 8 7 any
75 80 81 any
81 82 81 any
0 85 86 Class java.lang.Throwable
90 92 93 any
93 94 93 any
89 95 95 Class java.lang.Throwable
98 100 101 any
101 102 101 any
88 105 106 Class java.lang.Throwable
109 110 111 Class java.lang.Throwable
113 114 115 Class java.lang.Throwable
113 117 117 any
118 119 120 Class java.lang.Throwable
123 124 125 Class java.lang.Throwable
Signature: (Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;ZLorg/graalvm/polyglot/HostAccess;Lorg/graalvm/polyglot/PolyglotAccess;ZZZZZLjava/util/function/Predicate<Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;[Ljava/lang/String;>;[Ljava/lang/String;Lorg/graalvm/polyglot/io/FileSystem;Ljava/lang/Object;ZLorg/graalvm/polyglot/io/ProcessHandler;Lorg/graalvm/polyglot/EnvironmentAccess;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/time/ZoneId;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/ClassLoader;)Lorg/graalvm/polyglot/Context;
MethodParameters:
Name Flags
configOut
configErr
configIn
allowHostLookup
hostAccess
polyglotAccess
allowNativeAccess
allowCreateThread
allowHostIO
allowHostClassLoading
allowExperimentalOptions
classFilter
options
arguments
onlyLanguages
fileSystem
logHandlerOrStream
allowCreateProcess
processHandler
environmentAccess
environment
zone
limitsImpl
currentWorkingDirectory
hostClassLoader
private com.oracle.truffle.polyglot.PolyglotContextImpl loadPreinitializedContext(com.oracle.truffle.polyglot.PolyglotContextConfig, org.graalvm.polyglot.HostAccess);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextConfig;Lorg/graalvm/polyglot/HostAccess;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
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.polyglot.PolyglotEngineImpl.preInitializedContext:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 3
start local 3 1: aload 3
ifnull 81
2: aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
checkcast com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
astore 4
start local 4 3: aload 4
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onLoadPreinitializedContext:(Lorg/graalvm/polyglot/io/FileSystem;)V
4: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
astore 5
start local 5 5: aload 1
aload 4
putfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
6: aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
checkcast com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
astore 4
7: aload 4
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onLoadPreinitializedContext:(Lorg/graalvm/polyglot/io/FileSystem;)V
8: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
astore 6
start local 6 9: aload 1
aload 4
putfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
10: iconst_0
istore 7
start local 7 11: aload 3
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.patch:(Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)Z
istore 7
12: goto 48
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int
StackMap stack: java.lang.Throwable
13: astore 8
14: iload 7
ifeq 31
15: aconst_null
astore 9
start local 9 16: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 11
goto 22
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection top java.util.Iterator
StackMap stack:
17: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 10
start local 10 18: aload 10
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getOptionValuesIfExists:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
ifnull 22
19: aload 9
ifnonnull 21
20: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 9
21: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection com.oracle.truffle.polyglot.PolyglotInstrument java.util.Iterator
StackMap stack:
aload 9
aload 10
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 10 22: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
23: aload 9
ifnull 25
24: aload 9
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
25: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 10
monitorenter
26: aload 0
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
27: aload 10
monitorexit
28: goto 47
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection java.lang.Object
StackMap stack: java.lang.Throwable
29: aload 10
monitorexit
30: athrow
end local 9 31: StackMap locals:
StackMap stack:
aload 3
iconst_0
iconst_0
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
pop
32: aconst_null
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
33: aload 1
aload 5
putfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
34: aload 1
aload 6
putfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
35: new com.oracle.truffle.polyglot.PolyglotEngineImpl
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
astore 9
start local 9 36: aload 0
iconst_1
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
37: aload 9
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 10
monitorenter
38: aload 9
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 9
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
39: aload 9
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 9
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.currentApi:Lorg/graalvm/polyglot/Engine;
40: aload 9
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeHostAccess:(Lorg/graalvm/polyglot/HostAccess;)V
41: new com.oracle.truffle.polyglot.PolyglotContextImpl
dup
aload 9
aload 1
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
astore 3
42: aload 9
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
43: aload 10
monitorexit
44: goto 47
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object
StackMap stack: java.lang.Throwable
45: aload 10
monitorexit
46: athrow
end local 9 47: StackMap locals:
StackMap stack:
aload 8
athrow
48: StackMap locals:
StackMap stack:
iload 7
ifeq 65
49: aconst_null
astore 9
start local 9 50: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 11
goto 56
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection top java.util.Iterator
StackMap stack:
51: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 10
start local 10 52: aload 10
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getOptionValuesIfExists:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
ifnull 56
53: aload 9
ifnonnull 55
54: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 9
55: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection com.oracle.truffle.polyglot.PolyglotInstrument java.util.Iterator
StackMap stack:
aload 9
aload 10
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 10 56: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 51
57: aload 9
ifnull 59
58: aload 9
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
59: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 10
monitorenter
60: aload 0
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
61: aload 10
monitorexit
62: goto 81
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection java.lang.Object
StackMap stack: java.lang.Throwable
63: aload 10
monitorexit
64: athrow
end local 9 65: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int
StackMap stack:
aload 3
iconst_0
iconst_0
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
pop
66: aconst_null
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
67: aload 1
aload 5
putfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
68: aload 1
aload 6
putfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
69: new com.oracle.truffle.polyglot.PolyglotEngineImpl
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
astore 9
start local 9 70: aload 0
iconst_1
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
71: aload 9
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 10
monitorenter
72: aload 9
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 9
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
73: aload 9
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 9
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.currentApi:Lorg/graalvm/polyglot/Engine;
74: aload 9
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeHostAccess:(Lorg/graalvm/polyglot/HostAccess;)V
75: new com.oracle.truffle.polyglot.PolyglotContextImpl
dup
aload 9
aload 1
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
astore 3
76: aload 9
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
77: aload 10
monitorexit
78: goto 81
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object
StackMap stack: java.lang.Throwable
79: aload 10
monitorexit
80: athrow
end local 9 end local 7 end local 6 end local 5 end local 4 81: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 82 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 82 1 config Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
0 82 2 hostAccess Lorg/graalvm/polyglot/HostAccess;
1 82 3 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
3 81 4 preInitFs Lcom/oracle/truffle/polyglot/FileSystems$PreInitializeContextFileSystem;
5 81 5 oldFileSystem Lorg/graalvm/polyglot/io/FileSystem;
9 81 6 oldInternalFileSystem Lorg/graalvm/polyglot/io/FileSystem;
11 81 7 patchResult Z
16 31 9 toCreate Ljava/util/Collection<Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
50 65 9 toCreate Ljava/util/Collection<Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
18 22 10 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
52 56 10 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
36 47 9 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
70 81 9 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
Exception table:
from to target type
11 13 13 any
26 28 29 any
29 30 29 any
38 44 45 any
45 46 45 any
60 62 63 any
63 64 63 any
72 78 79 any
79 80 79 any
MethodParameters:
Name Flags
config
hostAccess
com.oracle.truffle.polyglot.OptionValuesImpl getEngineOptionValues();
descriptor: ()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
java.lang.Object getOrCreateEngineLoggers();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=7, locals=6, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggers:Ljava/lang/Object;
astore 1
start local 1 1: aload 1
ifnonnull 17
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggers:Ljava/lang/Object;
astore 1
4: aload 1
ifnonnull 13
5: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.createEngineSPI:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Lcom/oracle/truffle/polyglot/PolyglotLoggers$LoggerCache;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createEngineLoggers:(Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;
astore 1
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
invokeinterface org.graalvm.collections.EconomicSet.iterator:()Ljava/util/Iterator;
astore 4
goto 11
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object java.lang.Object top java.util.Iterator
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
astore 3
start local 3 8: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 5
start local 5 9: aload 5
ifnull 11
aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 11
10: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 5
aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
end local 5 end local 3 11: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
12: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggers:Ljava/lang/Object;
13: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object java.lang.Object
StackMap stack:
aload 2
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 2
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 18 1 res Ljava/lang/Object;
8 11 3 contextRef Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
9 11 5 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Exception table:
from to target type
3 14 15 any
15 16 15 any
java.lang.Object getEngineLoggers();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggers:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
java.util.function.Supplier<java.util.Map<java.lang.String, java.util.Collection<? extends com.oracle.truffle.api.TruffleFile$FileTypeDetector>>> getFileTypeDetectorsSupplier();
descriptor: ()Ljava/util/function/Supplier;
flags: (0x0000)
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.fileTypeDetectorsSupplier:Ljava/util/function/Supplier;
astore 1
start local 1 1: aload 1
ifnonnull 16
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.fileTypeDetectorsSupplier:Ljava/util/function/Supplier;
astore 1
4: aload 1
ifnonnull 12
5: new java.util.ArrayList
dup
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.function.Supplier java.lang.Object java.util.Collection top java.util.Iterator
StackMap stack:
7: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 4
start local 4 8: aload 3
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 4 9: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 3
invokestatic com.oracle.truffle.polyglot.FileSystems.newFileTypeDetectorsSupplier:(Ljava/lang/Iterable;)Ljava/util/function/Supplier;
astore 1
11: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.fileTypeDetectorsSupplier:Ljava/util/function/Supplier;
end local 3 12: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.function.Supplier java.lang.Object
StackMap stack:
aload 2
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 17 1 res Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;>;>;
6 12 3 languageCaches Ljava/util/Collection<Lcom/oracle/truffle/polyglot/LanguageCache;>;
8 9 4 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Exception table:
from to target type
3 13 14 any
14 15 14 any
Signature: ()Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;>;>;
boolean needsEnter(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getSingleContextState:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getSingleContextAssumption:()Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 4
1: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.isSet:()Z
ifeq 2
iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: ireturn
4: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
aload 1
if_acmpeq 5
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 6 1 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
MethodParameters:
Name Flags
context
java.lang.Object enterIfNeeded(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.needsEnter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
ifeq 2
1: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
areturn
2: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 3
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.NO_ENTER:Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 4 1 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
MethodParameters:
Name Flags
context
void leaveIfNeeded(java.lang.Object, com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.NO_ENTER:Ljava/lang/Object;
if_acmpeq 2
1: aload 0
aload 1
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 3 1 prev Ljava/lang/Object;
0 3 2 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
MethodParameters:
Name Flags
prev
context
com.oracle.truffle.polyglot.PolyglotContextImpl enter(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 3
start local 3 1: ldc 0.75
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 2
iconst_1
goto 3
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack: double
2: iconst_0
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack: double int
3: invokestatic com.oracle.truffle.api.CompilerDirectives.injectBranchProbability:(DZ)Z
ifeq 10
4: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getSingleContextState:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.setReturnParent:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 2
start local 2 5: aload 3
aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.enter:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
6: goto 13
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack: java.lang.Throwable
7: astore 4
start local 4 8: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getSingleContextState:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.set:(Ljava/lang/Object;)V
9: aload 4
athrow
end local 4 end local 2 10: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 12
11: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
12: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.enterThreadChanged:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 2
start local 2 13: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 14
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.verifyContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
ifne 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 15 1 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
5 10 2 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
13 15 2 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 15 3 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
8 10 4 t Ljava/lang/Throwable;
Exception table:
from to target type
5 6 7 Class java.lang.Throwable
MethodParameters:
Name Flags
context
private static boolean verifyContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
if_acmpeq 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
MethodParameters:
Name Flags
context
void leave(com.oracle.truffle.polyglot.PolyglotContextImpl, com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
ifne 2
aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifne 2
aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 2
1: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
aload 2
if_acmpeq 2
new java.lang.AssertionError
dup
ldc "Cannot leave context that is currently not entered. Forgot to enter or leave a context?"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 3
start local 3 3: ldc 0.75
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 4
iconst_1
goto 5
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack: double
4: iconst_0
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack: double int
5: invokestatic com.oracle.truffle.api.CompilerDirectives.injectBranchProbability:(DZ)Z
ifeq 8
6: aload 3
aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.leave:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
7: goto 15
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 10
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 10
9: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
10: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.leaveThreadChanged:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
pop
11: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 4
13: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getSingleContextState:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.set:(Ljava/lang/Object;)V
14: aload 4
athrow
15: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getSingleContextState:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.set:(Ljava/lang/Object;)V
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 17 1 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 17 2 polyglotContext Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
3 17 3 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
Exception table:
from to target type
3 12 12 any
MethodParameters:
Name Flags
prev
polyglotContext
com.oracle.truffle.polyglot.PolyglotThreadInfo getCachedThreadInfo(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 2
1: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
areturn
2: StackMap locals:
StackMap stack:
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 3 1 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
MethodParameters:
Name Flags
context
com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] addContextLocals(java.util.List<? extends com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal<?>>);
descriptor: (Ljava/util/List;)[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
flags: (0x0000)
Code:
stack=4, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
astore 6
start local 6 2: aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
istore 7
start local 7 3: aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
aload 1
invokeinterface java.util.List.size:()I
iadd
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
astore 8
start local 8 4: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 9
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top top top java.lang.Object com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations int com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] top java.util.Iterator
StackMap stack:
5: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal
astore 9
start local 9 6: aload 8
iload 7
aload 9
iload 7
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal.createLocation:(I)Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
aastore
7: aload 9
aload 8
iload 7
aaload
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal.initializeLocation:(Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
8: iinc 7 1
end local 9 9: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
10: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
astore 2
start local 2 11: aload 0
new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
dup
aload 8
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
dup
astore 4
start local 4 12: putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
13: aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.assumption:Lcom/oracle/truffle/api/Assumption;
ldc "Context local added"
invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
14: aload 8
aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
iload 7
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
astore 3
end local 8 end local 7 end local 6 start local 3 15: aload 5
monitorexit
16: goto 19
end local 4 end local 3 end local 2 StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top top top java.lang.Object
StackMap stack: java.lang.Throwable
17: aload 5
monitorexit
18: athrow
start local 2 start local 3 start local 4 19: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
StackMap stack:
aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 30
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
StackMap stack:
20: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 5
start local 5 21: aload 5
dup
astore 7
monitorenter
22: aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifne 23
aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
ifeq 25
23: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 7
monitorexit
24: goto 30
25: StackMap locals:
StackMap stack:
aload 5
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.resizeContextLocals:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;)V
26: aload 7
monitorexit
27: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
28: aload 7
monitorexit
29: athrow
end local 5 30: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
31: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 32 1 newLocals Ljava/util/List<+Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextLocal<*>;>;
11 17 2 aliveContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
19 32 2 aliveContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
15 17 3 newLocations [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
19 32 3 newLocations [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
12 17 4 newStableLocations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
19 32 4 newStableLocations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
2 15 6 stableLocations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
3 15 7 index I
4 15 8 locationsCopy [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
6 9 9 newLocal Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextLocal<*>;
21 30 5 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Exception table:
from to target type
1 16 17 any
17 18 17 any
22 24 28 any
25 27 28 any
28 29 28 any
Signature: (Ljava/util/List<+Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextLocal<*>;>;)[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
MethodParameters:
Name Flags
newLocals
com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] addContextThreadLocals(java.util.List<? extends com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal<?>>);
descriptor: (Ljava/util/List;)[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
flags: (0x0000)
Code:
stack=4, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
astore 6
start local 6 2: aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
istore 7
start local 7 3: aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
aload 1
invokeinterface java.util.List.size:()I
iadd
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
astore 8
start local 8 4: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 9
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top top top java.lang.Object com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations int com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] top java.util.Iterator
StackMap stack:
5: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal
astore 9
start local 9 6: aload 8
iload 7
aload 9
iload 7
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal.createLocation:(I)Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
aastore
7: aload 9
aload 8
iload 7
aaload
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal.initializeLocation:(Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
8: iinc 7 1
end local 9 9: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
10: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
astore 2
start local 2 11: aload 0
new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
dup
aload 8
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
dup
astore 4
start local 4 12: putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
13: aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.assumption:Lcom/oracle/truffle/api/Assumption;
ldc "Context thread local added"
invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
14: aload 8
aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
iload 7
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
astore 3
end local 8 end local 7 end local 6 start local 3 15: aload 5
monitorexit
16: goto 19
end local 4 end local 3 end local 2 StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top top top java.lang.Object
StackMap stack: java.lang.Throwable
17: aload 5
monitorexit
18: athrow
start local 2 start local 3 start local 4 19: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
StackMap stack:
aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 30
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
StackMap stack:
20: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 5
start local 5 21: aload 5
dup
astore 7
monitorenter
22: aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifne 23
aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
ifeq 25
23: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 7
monitorexit
24: goto 30
25: StackMap locals:
StackMap stack:
aload 5
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.resizeContextThreadLocals:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;)V
26: aload 7
monitorexit
27: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
28: aload 7
monitorexit
29: athrow
end local 5 30: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
31: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 32 1 newLocals Ljava/util/List<+Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextThreadLocal<*>;>;
11 17 2 aliveContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
19 32 2 aliveContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
15 17 3 newLocations [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
19 32 3 newLocations [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
12 17 4 newStableLocations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
19 32 4 newStableLocations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
2 15 6 stableLocations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
3 15 7 index I
4 15 8 locationsCopy [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
6 9 9 newLocal Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextThreadLocal<*>;
21 30 5 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Exception table:
from to target type
1 16 17 any
17 18 17 any
22 24 28 any
25 27 28 any
28 29 28 any
Signature: (Ljava/util/List<+Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextThreadLocal<*>;>;)[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
MethodParameters:
Name Flags
newLocals
static com.oracle.truffle.polyglot.PolyglotEngineImpl getFallbackEngine();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
ifnonnull 8
1: ldc Lcom/oracle/truffle/polyglot/PolyglotImpl;
dup
astore 0
monitorenter
2: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
ifnonnull 4
3: invokestatic com.oracle.truffle.polyglot.PolyglotImpl.getInstance:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.createDefaultEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
4: StackMap locals: java.lang.Class
StackMap stack:
aload 0
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 0
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 5 6 any
6 7 6 any
static void resetFallbackEngine();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/PolyglotImpl;
dup
astore 0
monitorenter
1: aconst_null
putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
2: aload 0
monitorexit
3: goto 6
StackMap locals: java.lang.Class
StackMap stack: java.lang.Throwable
4: aload 0
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
1 3 4 any
4 5 4 any
}
SourceFile: "PolyglotEngineImpl.java"
NestMembers:
com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler$1 com.oracle.truffle.polyglot.PolyglotEngineImpl$InterruptExecution com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
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
public abstract RuntimeSupport = com.oracle.truffle.api.impl.Accessor$RuntimeSupport of com.oracle.truffle.api.impl.Accessor
final PreInitializeContextFileSystem = com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem of com.oracle.truffle.polyglot.FileSystems
ContextWeakReference = com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference of com.oracle.truffle.polyglot.PolyglotContextImpl
final SingleContextState = com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState of com.oracle.truffle.polyglot.PolyglotContextImpl
final CancelExecution = com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution of com.oracle.truffle.polyglot.PolyglotEngineImpl
final CancelHandler = com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler of com.oracle.truffle.polyglot.PolyglotEngineImpl
final InterruptExecution = com.oracle.truffle.polyglot.PolyglotEngineImpl$InterruptExecution of com.oracle.truffle.polyglot.PolyglotEngineImpl
final LogConfig = com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig of com.oracle.truffle.polyglot.PolyglotEngineImpl
private final PolyglotShutDownHook = com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook of com.oracle.truffle.polyglot.PolyglotEngineImpl
final StableLocalLocations = com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations of com.oracle.truffle.polyglot.PolyglotEngineImpl
abstract VMObject = com.oracle.truffle.polyglot.PolyglotImpl$VMObject of com.oracle.truffle.polyglot.PolyglotImpl
final ContextProfile = com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile of com.oracle.truffle.polyglot.PolyglotLanguage
final EngineLimits = com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits of com.oracle.truffle.polyglot.PolyglotLimits
abstract AbstractContextLocal = com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal of com.oracle.truffle.polyglot.PolyglotLocals
abstract AbstractContextThreadLocal = com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal of com.oracle.truffle.polyglot.PolyglotLocals
abstract LocalLocation = com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation of com.oracle.truffle.polyglot.PolyglotLocals
final EngineLoggerProvider = com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider of com.oracle.truffle.polyglot.PolyglotLoggers
abstract LoggerCache = com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache of com.oracle.truffle.polyglot.PolyglotLoggers
public abstract Entry = java.util.Map$Entry of java.util.Map
public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
public abstract AbstractContextImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
public abstract AbstractEngineImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
public abstract AbstractInstrumentImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractInstrumentImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
public abstract AbstractLanguageImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl