final class com.oracle.truffle.polyglot.PolyglotLanguage extends org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl 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.PolyglotLanguage
super_class: org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl
{
final com.oracle.truffle.polyglot.PolyglotEngineImpl engine;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.polyglot.LanguageCache cache;
descriptor: Lcom/oracle/truffle/polyglot/LanguageCache;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.api.nodes.LanguageInfo info;
descriptor: Lcom/oracle/truffle/api/nodes/LanguageInfo;
flags: (0x0010) ACC_FINAL
org.graalvm.polyglot.Language api;
descriptor: Lorg/graalvm/polyglot/Language;
flags: (0x0000)
final int index;
descriptor: I
flags: (0x0010) ACC_FINAL
private final boolean host;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final java.lang.RuntimeException initError;
descriptor: Ljava/lang/RuntimeException;
flags: (0x0010) ACC_FINAL
private volatile org.graalvm.options.OptionDescriptors options;
descriptor: Lorg/graalvm/options/OptionDescriptors;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile com.oracle.truffle.polyglot.OptionValuesImpl optionValues;
descriptor: Lcom/oracle/truffle/polyglot/OptionValuesImpl;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean initialized;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile com.oracle.truffle.polyglot.PolyglotLanguageInstance initLanguage;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.LinkedList<com.oracle.truffle.polyglot.PolyglotLanguageInstance> instancePool;
descriptor: Ljava/util/LinkedList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/LinkedList<Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;>;
final com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile profile;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguage$ContextProfile;
flags: (0x0010) ACC_FINAL
private final com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.api.TruffleLanguage<java.lang.Object>> multiLanguageReference;
descriptor: Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/api/TruffleLanguage<Ljava/lang/Object;>;>;
private final com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.api.TruffleLanguage<java.lang.Object>> singleOrMultiLanguageReference;
descriptor: Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/api/TruffleLanguage<Ljava/lang/Object;>;>;
private final com.oracle.truffle.polyglot.PolyglotReferences$AbstractContextReference multiContextReference;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.polyglot.PolyglotReferences$AbstractContextReference singleOrMultiContextReference;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final com.oracle.truffle.api.Assumption singleInstance;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0010) ACC_FINAL
private boolean firstInstance;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
volatile java.lang.Class<?> contextClass;
descriptor: Ljava/lang/Class;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
volatile com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] previousContextLocalLocations;
descriptor: [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
flags: (0x0040) ACC_VOLATILE
volatile com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] previousContextThreadLocalLocations;
descriptor: [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
flags: (0x0040) ACC_VOLATILE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$api$TruffleLanguage$ContextPolicy;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/PolyglotLanguage;
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.PolyglotLanguage.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.polyglot.PolyglotEngineImpl, com.oracle.truffle.polyglot.LanguageCache, int, boolean, java.lang.RuntimeException);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/LanguageCache;IZLjava/lang/RuntimeException;)V
flags: (0x0000)
Code:
stack=10, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
1: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single language instance per engine."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotLanguage.singleInstance:Lcom/oracle/truffle/api/Assumption;
2: aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotLanguage.firstInstance:Z
3: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
4: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
5: aload 0
aload 5
putfield com.oracle.truffle.polyglot.PolyglotLanguage.initError:Ljava/lang/RuntimeException;
6: aload 0
iload 3
putfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
7: aload 0
iload 4
putfield com.oracle.truffle.polyglot.PolyglotLanguage.host:Z
8: aload 0
new com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
putfield com.oracle.truffle.polyglot.PolyglotLanguage.profile:Lcom/oracle/truffle/polyglot/PolyglotLanguage$ContextProfile;
9: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotLanguage.instancePool:Ljava/util/LinkedList;
10: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
aload 2
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getName:()Ljava/lang/String;
aload 2
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getVersion:()Ljava/lang/String;
aload 2
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getDefaultMimeType:()Ljava/lang/String;
aload 2
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getMimeTypes:()Ljava/util/Set;
aload 2
invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
aload 2
invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInteractive:()Z
invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.createLanguage:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ZZ)Lcom/oracle/truffle/api/nodes/LanguageInfo;
putfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
11: aload 0
aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotReferences.createAlwaysMultiLanguage:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
putfield com.oracle.truffle.polyglot.PolyglotLanguage.multiLanguageReference:Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
12: aload 0
aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotReferences.createAlwaysMultiContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
putfield com.oracle.truffle.polyglot.PolyglotLanguage.multiContextReference:Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
13: aload 0
aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
aconst_null
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.multiContextReference:Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
iconst_0
invokestatic com.oracle.truffle.polyglot.PolyglotReferences.createAssumeSingleContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/api/Assumption;Lcom/oracle/truffle/api/Assumption;Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;Z)Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
putfield com.oracle.truffle.polyglot.PolyglotLanguage.singleOrMultiContextReference:Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
14: aload 0
aload 0
aconst_null
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.singleInstance:Lcom/oracle/truffle/api/Assumption;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.multiLanguageReference:Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
invokestatic com.oracle.truffle.polyglot.PolyglotReferences.createAssumeSingleLanguage:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;Lcom/oracle/truffle/api/Assumption;Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
putfield com.oracle.truffle.polyglot.PolyglotLanguage.singleOrMultiLanguageReference:Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
15: return
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 16 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 16 1 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 16 2 cache Lcom/oracle/truffle/polyglot/LanguageCache;
0 16 3 index I
0 16 4 host Z
0 16 5 initError Ljava/lang/RuntimeException;
MethodParameters:
Name Flags
engine
cache
index
host
initError
java.util.List<com.oracle.truffle.polyglot.PolyglotLanguageInstance> getInstancePool();
descriptor: ()Ljava/util/List;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: new java.util.ArrayList
dup
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.instancePool:Ljava/util/LinkedList;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
aload 1
monitorexit
2: areturn
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Exception table:
from to target type
1 2 3 any
3 4 3 any
Signature: ()Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;>;
com.oracle.truffle.api.TruffleLanguage$ContextPolicy getEffectiveContextPolicy(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
flags: (0x0000)
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 3
1: getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.EXCLUSIVE:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
astore 2
start local 2 2: goto 7
end local 2 3: StackMap locals:
StackMap stack:
aload 1
ifnull 6
4: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getPolicy:()Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
astore 2
start local 2 5: goto 7
end local 2 6: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.SHARED:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
astore 2
start local 2 7: StackMap locals: com.oracle.truffle.api.TruffleLanguage$ContextPolicy
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 8 1 inLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
2 3 2 sourcePolicy Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
5 6 2 sourcePolicy Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
7 8 2 sourcePolicy Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
MethodParameters:
Name Flags
inLanguage
com.oracle.truffle.polyglot.PolyglotLanguageContext getCurrentLanguageContext();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
boolean isFirstInstance();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.firstInstance:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
void initializeContextClass(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 1
ifnonnull 2
ldc Ljava/lang/Void;
goto 3
StackMap locals:
StackMap stack:
2: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
3: astore 2
start local 2 4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.contextClass:Ljava/lang/Class;
astore 3
start local 3 5: aload 3
ifnonnull 8
6: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotLanguage.contextClass:Ljava/lang/Class;
7: goto 10
StackMap locals: java.lang.Class java.lang.Class
StackMap stack:
8: aload 3
aload 2
if_acmpeq 10
9: new java.lang.IllegalStateException
dup
ldc "Unstable context class expected %s got %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 3
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 11 1 contextImpl Ljava/lang/Object;
4 11 2 newClass Ljava/lang/Class<*>;
5 11 3 currentClass Ljava/lang/Class<*>;
MethodParameters:
Name Flags
contextImpl
boolean dependsOn(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
flags: (0x0000)
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getDependentLanguages:()Ljava/util/Set;
astore 2
start local 2 1: aload 2
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 3
2: iconst_1
ireturn
3: StackMap locals: java.util.Set
StackMap stack:
aload 2
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguage java.util.Set 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
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 5
start local 5 6: aload 5
ifnull 8
aload 5
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.dependsOn:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
ifeq 8
7: iconst_1
ireturn
end local 5 end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
9: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 10 1 otherLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
1 10 2 dependentLanguages Ljava/util/Set<Ljava/lang/String;>;
5 8 3 dependentLanguage Ljava/lang/String;
6 8 5 dependentLanguageObj Lcom/oracle/truffle/polyglot/PolyglotLanguage;
MethodParameters:
Name Flags
otherLanguage
boolean isHost();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.host:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
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
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
1: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionsInternal:()Lorg/graalvm/options/OptionDescriptors;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
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/PolyglotLanguage;
4 5 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
org.graalvm.options.OptionDescriptors getOptionsInternal();
descriptor: ()Lorg/graalvm/options/OptionDescriptors;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.initialized:Z
ifne 9
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.initialized:Z
ifne 5
3: aload 0
aload 0
new com.oracle.truffle.polyglot.PolyglotLanguageInstance
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotLanguageInstance.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
putfield com.oracle.truffle.polyglot.PolyglotLanguage.initLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
4: aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotLanguage.initialized:Z
5: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.options:Lorg/graalvm/options/OptionDescriptors;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Exception table:
from to target type
2 6 7 any
7 8 7 any
private com.oracle.truffle.polyglot.PolyglotLanguageInstance createInstance();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguage.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.firstInstance:Z
ifeq 4
2: aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotLanguage.firstInstance:Z
3: goto 6
StackMap locals:
StackMap stack:
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.singleInstance:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 6
5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.singleInstance:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
6: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 7: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.initLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
ifnull 10
8: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.initLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
astore 1
9: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguage.initLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
10: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageInstance
StackMap stack:
aload 1
ifnonnull 12
11: aload 0
new com.oracle.truffle.polyglot.PolyglotLanguageInstance
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotLanguageInstance.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
astore 1
12: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
7 13 1 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
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
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
private com.oracle.truffle.polyglot.PolyglotLanguageInstance ensureInitialized(com.oracle.truffle.polyglot.PolyglotLanguageInstance);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.initialized:Z
ifne 12
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.initialized:Z
ifne 8
3: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.spi:Lcom/oracle/truffle/api/TruffleLanguage;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.describeOptions:(Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/String;)Lorg/graalvm/options/OptionDescriptors;
putfield com.oracle.truffle.polyglot.PolyglotLanguage.options:Lorg/graalvm/options/OptionDescriptors;
4: goto 7
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageInstance java.lang.Object
StackMap stack: java.lang.Exception
5: astore 3
start local 3 6: new java.lang.IllegalStateException
dup
ldc "Error initializing language '%s' using class '%s'."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 3
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 7: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotLanguage.initialized:Z
8: StackMap locals:
StackMap stack:
aload 2
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 13 1 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
6 7 3 e Ljava/lang/Exception;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
2 9 10 any
10 11 10 any
MethodParameters:
Name Flags
instance
com.oracle.truffle.polyglot.PolyglotLanguageInstance allocateInstance(com.oracle.truffle.polyglot.OptionValuesImpl);
descriptor: (Lcom/oracle/truffle/polyglot/OptionValuesImpl;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: invokestatic com.oracle.truffle.polyglot.PolyglotLanguage.$SWITCH_TABLE$com$oracle$truffle$api$TruffleLanguage$ContextPolicy:()[I
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getPolicy:()Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextPolicy.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 2
2: 4
3: 6
default: 8
}
2: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.OptionValuesImpl top java.lang.Object
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.createInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
astore 2
start local 2 3: goto 9
end local 2 4: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.fetchFromPool:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
astore 2
start local 2 5: goto 9
end local 2 6: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.fetchFromPool:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
astore 2
start local 2 7: goto 9
end local 2 8: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
start local 2 9: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.OptionValuesImpl com.oracle.truffle.polyglot.PolyglotLanguageInstance java.lang.Object
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.ensureMultiContextInitialized:()V
10: aload 3
monitorexit
11: goto 14
end local 2 StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.OptionValuesImpl top java.lang.Object
StackMap stack: java.lang.Throwable
12: aload 3
monitorexit
13: athrow
start local 2 14: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.OptionValuesImpl com.oracle.truffle.polyglot.PolyglotLanguageInstance
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 15 1 newOptions Lcom/oracle/truffle/polyglot/OptionValuesImpl;
3 4 2 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
5 6 2 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
7 8 2 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
9 12 2 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
14 15 2 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
Exception table:
from to target type
1 11 12 any
12 13 12 any
MethodParameters:
Name Flags
newOptions
private com.oracle.truffle.polyglot.PolyglotLanguageInstance fetchFromPool(com.oracle.truffle.polyglot.OptionValuesImpl, boolean);
descriptor: (Lcom/oracle/truffle/polyglot/OptionValuesImpl;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aconst_null
astore 4
start local 4 2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.instancePool:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 5
start local 5 3: goto 10
4: StackMap locals: java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguageInstance java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
astore 6
start local 6 5: aload 6
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.areOptionsCompatible:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)Z
ifeq 10
6: iload 2
ifne 8
7: aload 5
invokeinterface java.util.Iterator.remove:()V
8: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageInstance
StackMap stack:
aload 6
astore 4
9: goto 11
end local 6 10: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 5 11: StackMap locals:
StackMap stack:
aload 4
ifnonnull 16
12: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.createInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
astore 4
13: aload 4
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.claim:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)V
14: iload 2
ifeq 16
15: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.instancePool:Ljava/util/LinkedList;
aload 4
invokevirtual java.util.LinkedList.addFirst:(Ljava/lang/Object;)V
16: StackMap locals:
StackMap stack:
aload 4
aload 3
monitorexit
17: areturn
end local 4 18: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.OptionValuesImpl int java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
19: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 20 1 newOptions Lcom/oracle/truffle/polyglot/OptionValuesImpl;
0 20 2 shared Z
2 18 4 foundInstance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
3 11 5 iterator Ljava/util/Iterator<Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;>;
5 10 6 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
Exception table:
from to target type
1 17 18 any
18 19 18 any
MethodParameters:
Name Flags
newOptions
shared
void freeInstance(com.oracle.truffle.polyglot.PolyglotLanguageInstance);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)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.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: invokestatic com.oracle.truffle.polyglot.PolyglotLanguage.$SWITCH_TABLE$com$oracle$truffle$api$TruffleLanguage$ContextPolicy:()[I
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getPolicy:()Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextPolicy.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 2
2: 3
3: 5
default: 6
}
2: StackMap locals: java.lang.Object
StackMap stack:
goto 7
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.instancePool:Ljava/util/LinkedList;
aload 1
invokevirtual java.util.LinkedList.addFirst:(Ljava/lang/Object;)V
4: goto 7
5: StackMap locals:
StackMap stack:
goto 7
6: StackMap locals:
StackMap stack:
ldc "Unknown context cardinality."
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
7: StackMap locals:
StackMap stack:
aload 2
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 12 1 instance Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
Exception table:
from to target type
1 8 9 any
9 10 9 any
MethodParameters:
Name Flags
instance
void close();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguage.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.instancePool:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
com.oracle.truffle.polyglot.PolyglotReferences$AbstractContextReference getContextReference();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.singleInstance:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.conservativeContextReferences:Z
ifne 2
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.singleOrMultiContextReference:Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.multiContextReference:Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.api.TruffleLanguage<java.lang.Object>> getLanguageReference();
descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.singleInstance:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 2
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.singleOrMultiLanguageReference:Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.multiLanguageReference:Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Signature: ()Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/api/TruffleLanguage<Ljava/lang/Object;>;>;
com.oracle.truffle.polyglot.PolyglotReferences$AbstractContextReference getConservativeContextReference();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.multiContextReference:Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.api.TruffleLanguage<java.lang.Object>> getConservativeLanguageReference();
descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.multiLanguageReference:Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Signature: ()Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/api/TruffleLanguage<Ljava/lang/Object;>;>;
com.oracle.truffle.polyglot.OptionValuesImpl getOptionValues();
descriptor: ()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
flags: (0x0000)
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.optionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
ifnonnull 8
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.optionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
ifnonnull 4
3: aload 0
new com.oracle.truffle.polyglot.OptionValuesImpl
dup
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionsInternal:()Lorg/graalvm/options/OptionDescriptors;
iconst_0
invokespecial com.oracle.truffle.polyglot.OptionValuesImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lorg/graalvm/options/OptionDescriptors;Z)V
putfield com.oracle.truffle.polyglot.PolyglotLanguage.optionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
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.PolyglotLanguage.optionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Exception table:
from to target type
2 5 6 any
6 7 6 any
com.oracle.truffle.polyglot.OptionValuesImpl getOptionValuesIfExists();
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.PolyglotLanguage.optionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
public java.lang.String getDefaultMimeType();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getDefaultMimeType:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
void clearOptionValues();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguage.optionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
public java.lang.String getImplementationName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getImplementationName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
public boolean isInteractive();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInteractive:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
public java.util.Set<java.lang.String> getMimeTypes();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getMimeTypes:()Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
public java.lang.String getVersion();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getVersion:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
ldc "inherit"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getVersion:()Ljava/lang/String;
areturn
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 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
1 4 1 version Ljava/lang/String;
public java.lang.String getId();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
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 "PolyglotLanguage [id="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()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
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", host="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.isHost:()Z
invokevirtual java.lang.StringBuilder.append:(Z)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/PolyglotLanguage;
boolean assertCorrectEngine();
descriptor: ()Z
flags: (0x0000)
Code:
stack=5, locals=3, args_size=1
start local 0 0: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 1
start local 1 1: aload 1
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 7
aload 2
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
if_acmpeq 7
3: ldc "Context reference was used from an Engine that is currently not entered. ContextReference of engine %s was used but engine %s is currently entered. ContextReference must not be shared between multiple Engine instances."
iconst_2
anewarray java.lang.Object
dup
iconst_0
4: aload 2
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
aastore
dup
iconst_1
5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
aastore
6: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
7: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguageContext
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguage;
1 8 1 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
2 8 2 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
static int[] $SWITCH_TABLE$com$oracle$truffle$api$TruffleLanguage$ContextPolicy();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.truffle.polyglot.PolyglotLanguage.$SWITCH_TABLE$com$oracle$truffle$api$TruffleLanguage$ContextPolicy:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.values:()[Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.EXCLUSIVE:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextPolicy.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.REUSE:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextPolicy.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.SHARED:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextPolicy.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic com.oracle.truffle.polyglot.PolyglotLanguage.$SWITCH_TABLE$com$oracle$truffle$api$TruffleLanguage$ContextPolicy:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
SourceFile: "PolyglotLanguage.java"
NestMembers:
com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public final ContextPolicy = com.oracle.truffle.api.TruffleLanguage$ContextPolicy of com.oracle.truffle.api.TruffleLanguage
public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
public abstract LanguageReference = com.oracle.truffle.api.TruffleLanguage$LanguageReference of com.oracle.truffle.api.TruffleLanguage
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
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
abstract LocalLocation = com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation of com.oracle.truffle.polyglot.PolyglotLocals
abstract AbstractContextReference = com.oracle.truffle.polyglot.PolyglotReferences$AbstractContextReference of com.oracle.truffle.polyglot.PolyglotReferences
public abstract AbstractLanguageImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl