final class com.oracle.truffle.polyglot.LanguageCache implements java.lang.Comparable<com.oracle.truffle.polyglot.LanguageCache>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.polyglot.LanguageCache
super_class: java.lang.Object
{
private static final java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache> nativeImageCache;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
private static final java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache> nativeImageMimes;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
private static final java.util.Map<java.util.Collection<com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier>, java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache>> runtimeCaches;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/util/Collection<Lcom/oracle/truffle/polyglot/EngineAccessor$AbstractClassLoaderSupplier;>;Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;>;
private static volatile java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache> runtimeMimes;
descriptor: Ljava/util/Map;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
private final java.lang.String className;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.String> mimeTypes;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private final java.util.Set<java.lang.String> characterMimeTypes;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private final java.lang.String defaultMimeType;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.String> dependentLanguages;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private final java.lang.String id;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String implementationName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String version;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean interactive;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean internal;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.String> services;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private final com.oracle.truffle.polyglot.LanguageCache$LanguageReflection languageReflection;
descriptor: Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.String languageHome;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/LanguageCache;
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.LanguageCache.$assertionsDisabled:Z
3: getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifeq 4
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
goto 5
StackMap locals:
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: java.util.HashMap
5: putstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
6: getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifeq 7
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
goto 8
StackMap locals:
StackMap stack:
7: aconst_null
StackMap locals:
StackMap stack: java.util.HashMap
8: putstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageMimes:Ljava/util/Map;
9: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic com.oracle.truffle.polyglot.LanguageCache.runtimeCaches:Ljava/util/Map;
10: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Set<java.lang.String>, java.util.Set<java.lang.String>, java.lang.String, java.util.Set<java.lang.String>, boolean, boolean, java.util.Set<java.lang.String>, com.oracle.truffle.polyglot.LanguageCache$LanguageReflection);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;ZZLjava/util/Set;Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=15, 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
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 14
putfield com.oracle.truffle.polyglot.LanguageCache.languageReflection:Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
2: aload 0
aload 5
putfield com.oracle.truffle.polyglot.LanguageCache.className:Ljava/lang/String;
3: aload 0
aload 2
putfield com.oracle.truffle.polyglot.LanguageCache.name:Ljava/lang/String;
4: aload 0
aload 3
putfield com.oracle.truffle.polyglot.LanguageCache.implementationName:Ljava/lang/String;
5: aload 0
aload 4
putfield com.oracle.truffle.polyglot.LanguageCache.version:Ljava/lang/String;
6: aload 0
aload 7
putfield com.oracle.truffle.polyglot.LanguageCache.characterMimeTypes:Ljava/util/Set;
7: aload 0
new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
putfield com.oracle.truffle.polyglot.LanguageCache.mimeTypes:Ljava/util/Set;
8: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.mimeTypes:Ljava/util/Set;
aload 7
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
9: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.mimeTypes:Ljava/util/Set;
aload 8
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
10: aload 0
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.mimeTypes:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
iconst_1
if_icmpne 11
aload 9
ifnonnull 11
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.mimeTypes:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
goto 12
StackMap locals: com.oracle.truffle.polyglot.LanguageCache java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.util.Set java.util.Set java.lang.String java.util.Set int int java.util.Set com.oracle.truffle.polyglot.LanguageCache$LanguageReflection
StackMap stack: com.oracle.truffle.polyglot.LanguageCache
11: aload 9
StackMap locals: com.oracle.truffle.polyglot.LanguageCache java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.util.Set java.util.Set java.lang.String java.util.Set int int java.util.Set com.oracle.truffle.polyglot.LanguageCache$LanguageReflection
StackMap stack: com.oracle.truffle.polyglot.LanguageCache java.lang.String
12: putfield com.oracle.truffle.polyglot.LanguageCache.defaultMimeType:Ljava/lang/String;
13: aload 0
aload 10
putfield com.oracle.truffle.polyglot.LanguageCache.dependentLanguages:Ljava/util/Set;
14: aload 0
aload 1
putfield com.oracle.truffle.polyglot.LanguageCache.id:Ljava/lang/String;
15: aload 0
iload 11
putfield com.oracle.truffle.polyglot.LanguageCache.interactive:Z
16: aload 0
iload 12
putfield com.oracle.truffle.polyglot.LanguageCache.internal:Z
17: aload 0
aload 6
putfield com.oracle.truffle.polyglot.LanguageCache.languageHome:Ljava/lang/String;
18: aload 0
aload 13
putfield com.oracle.truffle.polyglot.LanguageCache.services:Ljava/util/Set;
19: getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifeq 21
20: aload 14
invokevirtual com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.aotInitializeAtBuildTime:()Ljava/lang/Class;
pop
21: StackMap locals:
StackMap stack:
return
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 22 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
0 22 1 id Ljava/lang/String;
0 22 2 name Ljava/lang/String;
0 22 3 implementationName Ljava/lang/String;
0 22 4 version Ljava/lang/String;
0 22 5 className Ljava/lang/String;
0 22 6 languageHome Ljava/lang/String;
0 22 7 characterMimeTypes Ljava/util/Set<Ljava/lang/String;>;
0 22 8 byteMimeTypes Ljava/util/Set<Ljava/lang/String;>;
0 22 9 defaultMimeType Ljava/lang/String;
0 22 10 dependentLanguages Ljava/util/Set<Ljava/lang/String;>;
0 22 11 interactive Z
0 22 12 internal Z
0 22 13 services Ljava/util/Set<Ljava/lang/String;>;
0 22 14 languageReflection Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;ZZLjava/util/Set<Ljava/lang/String;>;Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;)V
MethodParameters:
Name Flags
id
name
implementationName
version
className
languageHome
characterMimeTypes
byteMimeTypes
defaultMimeType
dependentLanguages
interactive
internal
services
languageReflection
static com.oracle.truffle.polyglot.LanguageCache createHostLanguageCache(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Lcom/oracle/truffle/polyglot/LanguageCache;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=18, locals=3, args_size=1
start local 0 0: new com.oracle.truffle.polyglot.HostLanguage
dup
invokespecial com.oracle.truffle.polyglot.HostLanguage.<init>:()V
astore 1
start local 1 1: aload 0
arraylength
ifne 4
2: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 2
start local 2 3: goto 7
end local 2 4: StackMap locals: com.oracle.truffle.api.TruffleLanguage
StackMap stack:
new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 2
start local 2 5: aload 2
aload 0
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
6: aload 2
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
astore 2
7: StackMap locals: java.util.Set
StackMap stack:
new com.oracle.truffle.polyglot.LanguageCache
dup
8: ldc "host"
9: ldc "Host"
10: ldc "Host"
11: ldc "java.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
12: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
13: aconst_null
14: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
15: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
16: aconst_null
17: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
18: iconst_0
iconst_0
aload 2
19: new com.oracle.truffle.polyglot.HostLanguage
dup
invokespecial com.oracle.truffle.polyglot.HostLanguage.<init>:()V
getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.SHARED:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
iconst_0
anewarray com.oracle.truffle.api.TruffleFile$FileTypeDetector
invokestatic com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.forLanguageInstance:(Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;[Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;)Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
20: invokespecial com.oracle.truffle.polyglot.LanguageCache.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;ZZLjava/util/Set;Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 services [Ljava/lang/String;
1 21 1 languageInstance Lcom/oracle/truffle/api/TruffleLanguage<*>;
3 4 2 servicesClassNames Ljava/util/Set<Ljava/lang/String;>;
5 21 2 servicesClassNames Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
services
static java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache> languageMimes();
descriptor: ()Ljava/util/Map;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifeq 2
1: getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageMimes:Ljava/util/Map;
areturn
2: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.LanguageCache.runtimeMimes:Ljava/util/Map;
astore 0
start local 0 3: aload 0
ifnonnull 12
4: ldc Lcom/oracle/truffle/polyglot/LanguageCache;
dup
astore 1
monitorenter
5: getstatic com.oracle.truffle.polyglot.LanguageCache.runtimeMimes:Ljava/util/Map;
astore 0
6: aload 0
ifnonnull 8
7: invokestatic com.oracle.truffle.polyglot.LanguageCache.createMimes:()Ljava/util/Map;
dup
astore 0
putstatic com.oracle.truffle.polyglot.LanguageCache.runtimeMimes:Ljava/util/Map;
8: StackMap locals: java.util.Map java.lang.Class
StackMap stack:
aload 1
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 1
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
3 13 0 cache Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
Exception table:
from to target type
5 9 10 any
10 11 10 any
Signature: ()Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
private static java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache> createMimes();
descriptor: ()Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=0
0: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 0
start local 0 1: 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 2
goto 7
StackMap locals: java.util.Map top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 1
start local 1 3: aload 1
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getMimeTypes:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: java.util.Map com.oracle.truffle.polyglot.LanguageCache java.util.Iterator top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 5: aload 0
aload 3
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 1 7: StackMap locals: java.util.Map top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
8: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 9 0 mimes Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
3 7 1 cache Lcom/oracle/truffle/polyglot/LanguageCache;
5 6 3 mime Ljava/lang/String;
Signature: ()Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
static java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache> languages();
descriptor: ()Ljava/util/Map;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.truffle.polyglot.EngineAccessor.locatorOrDefaultLoaders:()Ljava/util/List;
invokestatic com.oracle.truffle.polyglot.LanguageCache.loadLanguages:(Ljava/util/List;)Ljava/util/Map;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
private static java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache> loadLanguages(java.util.List<com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier>);
descriptor: (Ljava/util/List;)Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifeq 2
1: getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
areturn
2: StackMap locals:
StackMap stack:
ldc Lcom/oracle/truffle/polyglot/LanguageCache;
dup
astore 1
monitorenter
3: getstatic com.oracle.truffle.polyglot.LanguageCache.runtimeCaches:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 2
start local 2 4: aload 2
ifnonnull 7
5: aload 0
invokestatic com.oracle.truffle.polyglot.LanguageCache.createLanguages:(Ljava/util/List;)Ljava/util/Map;
astore 2
6: getstatic com.oracle.truffle.polyglot.LanguageCache.runtimeCaches:Ljava/util/Map;
aload 0
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: StackMap locals: java.lang.Class java.util.Map
StackMap stack:
aload 2
aload 1
monitorexit
8: areturn
end local 2 9: StackMap locals: java.util.List java.lang.Class
StackMap stack: java.lang.Throwable
aload 1
monitorexit
10: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 classLoaders Ljava/util/List<Lcom/oracle/truffle/polyglot/EngineAccessor$AbstractClassLoaderSupplier;>;
4 9 2 cache Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
Exception table:
from to target type
3 8 9 any
9 10 9 any
Signature: (Ljava/util/List<Lcom/oracle/truffle/polyglot/EngineAccessor$AbstractClassLoaderSupplier;>;)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
MethodParameters:
Name Flags
classLoaders
private static java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache> createLanguages(java.util.List<com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier>);
descriptor: (Ljava/util/List;)Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: java.util.List java.util.List top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.function.Supplier
astore 2
start local 2 3: aload 2
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast java.lang.ClassLoader
aload 1
invokestatic com.oracle.truffle.polyglot.LanguageCache$Loader.load:(Ljava/lang/ClassLoader;Ljava/util/Collection;)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 6: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 16
StackMap locals: java.util.List java.util.List java.util.Map top java.util.Iterator
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 3
start local 3 8: aload 2
aload 3
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 5
start local 5 9: aload 5
ifnull 16
aload 5
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
aload 3
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
aload 5
getfield com.oracle.truffle.polyglot.LanguageCache.languageReflection:Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
aload 3
getfield com.oracle.truffle.polyglot.LanguageCache.languageReflection:Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
invokevirtual com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.hasSameCodeSource:(Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;)Z
ifne 16
10: StackMap locals: java.util.List java.util.List java.util.Map com.oracle.truffle.polyglot.LanguageCache java.util.Iterator com.oracle.truffle.polyglot.LanguageCache
StackMap stack:
ldc "Duplicate language id %s. First language [%s]. Second language [%s]."
iconst_3
anewarray java.lang.Object
dup
iconst_0
11: aload 3
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
aastore
dup
iconst_1
12: aload 5
invokestatic com.oracle.truffle.polyglot.LanguageCache.formatLanguageLocation:(Lcom/oracle/truffle/polyglot/LanguageCache;)Ljava/lang/String;
aastore
dup
iconst_2
13: aload 3
invokestatic com.oracle.truffle.polyglot.LanguageCache.formatLanguageLocation:(Lcom/oracle/truffle/polyglot/LanguageCache;)Ljava/lang/String;
aastore
14: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 6
start local 6 15: new java.lang.IllegalStateException
dup
aload 6
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 6 end local 5 end local 3 16: StackMap locals: java.util.List java.util.List java.util.Map top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
17: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 suppliers Ljava/util/List<Lcom/oracle/truffle/polyglot/EngineAccessor$AbstractClassLoaderSupplier;>;
1 18 1 caches Ljava/util/List<Lcom/oracle/truffle/polyglot/LanguageCache;>;
3 4 2 supplier Ljava/util/function/Supplier<Ljava/lang/ClassLoader;>;
6 18 2 cacheToId Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
8 16 3 languageCache Lcom/oracle/truffle/polyglot/LanguageCache;
9 16 5 prev Lcom/oracle/truffle/polyglot/LanguageCache;
15 16 6 message Ljava/lang/String;
Signature: (Ljava/util/List<Lcom/oracle/truffle/polyglot/EngineAccessor$AbstractClassLoaderSupplier;>;)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
MethodParameters:
Name Flags
suppliers
private static java.lang.String formatLanguageLocation(com.oracle.truffle.polyglot.LanguageCache);
descriptor: (Lcom/oracle/truffle/polyglot/LanguageCache;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
ldc "Language class "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.languageReflection:Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
invokevirtual com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.getCodeSource:()Ljava/net/URL;
astore 2
start local 2 3: aload 2
ifnull 5
4: aload 1
new java.lang.StringBuilder
dup
ldc ", Loaded from "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: StackMap locals: java.lang.StringBuilder java.net.URL
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 languageCache Lcom/oracle/truffle/polyglot/LanguageCache;
1 6 1 sb Ljava/lang/StringBuilder;
3 6 2 url Ljava/net/URL;
MethodParameters:
Name Flags
languageCache
public int compareTo(com.oracle.truffle.polyglot.LanguageCache);
descriptor: (Lcom/oracle/truffle/polyglot/LanguageCache;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.id:Ljava/lang/String;
aload 1
getfield com.oracle.truffle.polyglot.LanguageCache.id:Ljava/lang/String;
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
0 1 1 o Lcom/oracle/truffle/polyglot/LanguageCache;
MethodParameters:
Name Flags
o
java.lang.String getId();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.id:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
java.util.Set<java.lang.String> getMimeTypes();
descriptor: ()Ljava/util/Set;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.mimeTypes:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
java.lang.String getDefaultMimeType();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.defaultMimeType:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
boolean isCharacterMimeType(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.characterMimeTypes:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
0 1 1 mimeType Ljava/lang/String;
MethodParameters:
Name Flags
mimeType
boolean isByteMimeType(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.characterMimeTypes:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
0 1 1 mimeType Ljava/lang/String;
MethodParameters:
Name Flags
mimeType
java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
java.lang.String getImplementationName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.implementationName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
java.util.Set<java.lang.String> getDependentLanguages();
descriptor: ()Ljava/util/Set;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.dependentLanguages:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
java.lang.String getVersion();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.version:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
java.lang.String getClassName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.className:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
boolean isInternal();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.internal:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
boolean isInteractive();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.interactive:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
java.lang.String getLanguageHome();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.languageHome:Ljava/lang/String;
ifnonnull 2
1: aload 0
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.id:Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.LanguageCache.getLanguageHomeImpl:(Ljava/lang/String;)Ljava/lang/String;
putfield com.oracle.truffle.polyglot.LanguageCache.languageHome:Ljava/lang/String;
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.languageHome:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
private static java.lang.String getLanguageHomeImpl(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "org.graalvm.language."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".home"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".home"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
3: StackMap locals: java.lang.String
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 languageId Ljava/lang/String;
1 4 1 home Ljava/lang/String;
MethodParameters:
Name Flags
languageId
com.oracle.truffle.api.TruffleLanguage<?> loadLanguage();
descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.languageReflection:Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
invokevirtual com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.newInstance:()Lcom/oracle/truffle/api/TruffleLanguage;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
Signature: ()Lcom/oracle/truffle/api/TruffleLanguage<*>;
java.util.Set<? extends java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>> getProvidedTags();
descriptor: ()Ljava/util/Set;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.languageReflection:Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
invokevirtual com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.getProvidedTags:()Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
Signature: ()Ljava/util/Set<+Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
com.oracle.truffle.api.TruffleLanguage$ContextPolicy getPolicy();
descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.languageReflection:Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
invokevirtual com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.getContextPolicy:()Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
java.util.Collection<java.lang.String> getServices();
descriptor: ()Ljava/util/Collection;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.services:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
Signature: ()Ljava/util/Collection<Ljava/lang/String;>;
boolean supportsService(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.services:Ljava/util/Set;
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.services:Ljava/util/Set;
aload 1
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
0 2 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
java.util.List<? extends com.oracle.truffle.api.TruffleFile$FileTypeDetector> getFileTypeDetectors();
descriptor: ()Ljava/util/List;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.languageReflection:Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
invokevirtual com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.getFileTypeDetectors:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
Signature: ()Ljava/util/List<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "LanguageCache [id="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.id:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", name="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", implementationName="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.implementationName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", version="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.version:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", className="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.className:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", services="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.oracle.truffle.polyglot.LanguageCache.services:Ljava/util/Set;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/LanguageCache;
static void resetNativeImageCacheLanguageHomes();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/LanguageCache;
dup
astore 0
monitorenter
1: getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
ifnull 3
2: getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
invokestatic com.oracle.truffle.polyglot.LanguageCache.resetNativeImageCacheLanguageHomes:(Ljava/util/Map;)V
3: StackMap locals: java.lang.Class
StackMap stack:
getstatic com.oracle.truffle.polyglot.LanguageCache.runtimeCaches:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 6
StackMap locals: java.lang.Class top java.util.Iterator
StackMap stack:
4: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map
astore 1
start local 1 5: aload 1
invokestatic com.oracle.truffle.polyglot.LanguageCache.resetNativeImageCacheLanguageHomes:(Ljava/util/Map;)V
end local 1 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 0
monitorexit
8: goto 11
StackMap locals: java.lang.Class
StackMap stack: java.lang.Throwable
9: aload 0
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
5 6 1 caches Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
Exception table:
from to target type
1 8 9 any
9 10 9 any
private static void resetNativeImageCacheLanguageHomes(java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache>);
descriptor: (Ljava/util/Map;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: java.util.Map top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 1
start local 1 2: aload 1
aconst_null
putfield com.oracle.truffle.polyglot.LanguageCache.languageHome:Ljava/lang/String;
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 caches Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
2 3 1 cache Lcom/oracle/truffle/polyglot/LanguageCache;
Signature: (Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;)V
MethodParameters:
Name Flags
caches
private static void initializeNativeImageState(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.LanguageCache.$assertionsDisabled:Z
ifne 1
getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifne 1
new java.lang.AssertionError
dup
ldc "Only supported during image generation"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
iconst_1
anewarray com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier
dup
iconst_0
new com.oracle.truffle.polyglot.EngineAccessor$StrongClassLoaderSupplier
dup
aload 0
invokespecial com.oracle.truffle.polyglot.EngineAccessor$StrongClassLoaderSupplier.<init>:(Ljava/lang/ClassLoader;)V
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokestatic com.oracle.truffle.polyglot.LanguageCache.createLanguages:(Ljava/util/List;)Ljava/util/Map;
invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
2: getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageMimes:Ljava/util/Map;
invokestatic com.oracle.truffle.polyglot.LanguageCache.createMimes:()Ljava/util/Map;
invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 imageClassLoader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
imageClassLoader
private static void resetNativeImageState();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: getstatic com.oracle.truffle.polyglot.LanguageCache.$assertionsDisabled:Z
ifne 1
getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifne 1
new java.lang.AssertionError
dup
ldc "Only supported during image generation"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
2: getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageMimes:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
3: return
LocalVariableTable:
Start End Slot Name Signature
private static void removeLanguageFromNativeImage(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.LanguageCache.$assertionsDisabled:Z
ifne 1
getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifne 1
new java.lang.AssertionError
dup
ldc "Only supported during image generation"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.LanguageCache.$assertionsDisabled:Z
ifne 2
getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 1
start local 1 3: aload 1
ifnull 9
4: aload 1
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getMimeTypes:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: java.lang.String com.oracle.truffle.polyglot.LanguageCache top java.util.Iterator
StackMap stack:
5: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 6: getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 8
7: getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageMimes:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: StackMap locals: java.lang.String com.oracle.truffle.polyglot.LanguageCache
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 languageId Ljava/lang/String;
3 10 1 cache Lcom/oracle/truffle/polyglot/LanguageCache;
6 8 2 mime Ljava/lang/String;
MethodParameters:
Name Flags
languageId
private static java.util.Collection<java.lang.Class<?>> getLanguageClasses();
descriptor: ()Ljava/util/Collection;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=0
0: getstatic com.oracle.truffle.polyglot.LanguageCache.$assertionsDisabled:Z
ifne 1
getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifne 1
new java.lang.AssertionError
dup
ldc "Only supported during image generation"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 0
start local 0 2: getstatic com.oracle.truffle.polyglot.LanguageCache.nativeImageCache:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 7
StackMap locals: java.util.ArrayList top java.util.Iterator
StackMap stack:
3: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 1
start local 1 4: aload 1
getfield com.oracle.truffle.polyglot.LanguageCache.languageReflection:Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
invokevirtual com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.aotInitializeAtBuildTime:()Ljava/lang/Class;
astore 3
start local 3 5: aload 3
ifnull 7
6: aload 0
aload 3
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 3 end local 1 7: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
2 9 0 list Ljava/util/ArrayList<Ljava/lang/Class<*>;>;
4 7 1 cache Lcom/oracle/truffle/polyglot/LanguageCache;
5 7 3 clz Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
Signature: ()Ljava/util/Collection<Ljava/lang/Class<*>;>;
public int compareTo(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast com.oracle.truffle.polyglot.LanguageCache
invokevirtual com.oracle.truffle.polyglot.LanguageCache.compareTo:(Lcom/oracle/truffle/polyglot/LanguageCache;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/lang/Comparable<Lcom/oracle/truffle/polyglot/LanguageCache;>;
SourceFile: "LanguageCache.java"
NestMembers:
com.oracle.truffle.polyglot.LanguageCache$LanguageReflection com.oracle.truffle.polyglot.LanguageCache$LanguageReflection$LanguageInstanceReflection com.oracle.truffle.polyglot.LanguageCache$Loader com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection
InnerClasses:
public abstract FileTypeDetector = com.oracle.truffle.api.TruffleFile$FileTypeDetector of com.oracle.truffle.api.TruffleFile
public final ContextPolicy = com.oracle.truffle.api.TruffleLanguage$ContextPolicy of com.oracle.truffle.api.TruffleLanguage
abstract AbstractClassLoaderSupplier = com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier of com.oracle.truffle.polyglot.EngineAccessor
final StrongClassLoaderSupplier = com.oracle.truffle.polyglot.EngineAccessor$StrongClassLoaderSupplier of com.oracle.truffle.polyglot.EngineAccessor
private abstract LanguageReflection = com.oracle.truffle.polyglot.LanguageCache$LanguageReflection of com.oracle.truffle.polyglot.LanguageCache
private abstract Loader = com.oracle.truffle.polyglot.LanguageCache$Loader of com.oracle.truffle.polyglot.LanguageCache