final class com.oracle.truffle.polyglot.PolyglotLanguageInstance 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.PolyglotLanguageInstance
super_class: java.lang.Object
{
final com.oracle.truffle.polyglot.PolyglotLanguage language;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguage;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.api.TruffleLanguage<java.lang.Object> spi;
descriptor: Lcom/oracle/truffle/api/TruffleLanguage;
flags: (0x0010) ACC_FINAL
Signature: Lcom/oracle/truffle/api/TruffleLanguage<Ljava/lang/Object;>;
private final com.oracle.truffle.polyglot.PolyglotSourceCache sourceCache;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotSourceCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final java.util.Map<java.lang.Class<?>, com.oracle.truffle.polyglot.PolyglotValue$InteropCodeCache> valueCodeCache;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lcom/oracle/truffle/polyglot/PolyglotValue$InteropCodeCache;>;
final java.util.Map<java.lang.Object, java.lang.Object> hostInteropCodeCache;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
private volatile com.oracle.truffle.polyglot.OptionValuesImpl firstOptionValues;
descriptor: Lcom/oracle/truffle/polyglot/OptionValuesImpl;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean multiContextInitialized;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final com.oracle.truffle.api.Assumption singleContext;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.api.TruffleLanguage<java.lang.Object>> directLanguageSupplier;
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$ContextReference<java.lang.Object> directContextSupplier;
descriptor: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Ljava/lang/Object;>;
java.util.List<com.oracle.truffle.polyglot.PolyglotLocals$LanguageContextLocal<?>> contextLocals;
descriptor: Ljava/util/List;
flags: (0x0000)
Signature: Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLocals$LanguageContextLocal<*>;>;
java.util.List<com.oracle.truffle.polyglot.PolyglotLocals$LanguageContextThreadLocal<?>> contextThreadLocals;
descriptor: Ljava/util/List;
flags: (0x0000)
Signature: Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLocals$LanguageContextThreadLocal<*>;>;
com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] contextLocalLocations;
descriptor: [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
flags: (0x0000)
com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] contextThreadLocalLocations;
descriptor: [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
flags: (0x0000)
int claimedCount;
descriptor: I
flags: (0x0000)
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/PolyglotLanguageInstance;
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.PolyglotLanguageInstance.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
flags: (0x0000)
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single context per language instance."
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.singleContext:Lcom/oracle/truffle/api/Assumption;
2: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
3: aload 0
new com.oracle.truffle.polyglot.PolyglotSourceCache
dup
invokespecial com.oracle.truffle.polyglot.PolyglotSourceCache.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.sourceCache:Lcom/oracle/truffle/polyglot/PolyglotSourceCache;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.valueCodeCache:Ljava/util/Map;
5: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.hostInteropCodeCache:Ljava/util/Map;
6: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.loadLanguage:()Lcom/oracle/truffle/api/TruffleLanguage;
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.spi:Lcom/oracle/truffle/api/TruffleLanguage;
7: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.spi:Lcom/oracle/truffle/api/TruffleLanguage;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
aload 1
aload 0
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeLanguage:(Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;Ljava/lang/Object;)V
8: goto 11
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageInstance com.oracle.truffle.polyglot.PolyglotLanguage
StackMap stack: java.lang.Exception
9: astore 2
start local 2 10: new java.lang.IllegalStateException
dup
ldc "Error initializing language '%s' using class '%s'."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
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 1
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 2
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 11: StackMap locals:
StackMap stack:
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;
getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.EXCLUSIVE:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
if_acmpeq 12
iconst_1
goto 13
StackMap locals:
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 2
start local 2 14: aload 1
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getEffectiveContextPolicy:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.EXCLUSIVE:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
if_acmpne 15
iconst_1
goto 16
StackMap locals: int
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 3
start local 3 17: iload 3
ifeq 18
aconst_null
goto 19
StackMap locals: int
StackMap stack:
18: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.singleContext:Lcom/oracle/truffle/api/Assumption;
StackMap locals:
StackMap stack: com.oracle.truffle.api.Assumption
19: astore 4
start local 4 20: iload 2
ifeq 21
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.noInnerContexts:Lcom/oracle/truffle/api/Assumption;
goto 22
StackMap locals: com.oracle.truffle.api.Assumption
StackMap stack:
21: aconst_null
StackMap locals:
StackMap stack: com.oracle.truffle.api.Assumption
22: astore 5
start local 5 23: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.conservativeContextReferences:Z
ifeq 26
24: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getConservativeContextReference:()Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.directContextSupplier:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
25: goto 34
26: StackMap locals: com.oracle.truffle.api.Assumption
StackMap stack:
aload 4
ifnonnull 29
aload 5
ifnonnull 29
27: aload 0
aload 1
iload 3
invokestatic com.oracle.truffle.polyglot.PolyglotReferences.createAlwaysSingleContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Z)Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.directContextSupplier:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
28: goto 34
29: StackMap locals:
StackMap stack:
aload 0
aload 1
30: aload 5
31: aload 4
32: aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getContextReference:()Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
iload 3
33: 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.PolyglotLanguageInstance.directContextSupplier:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
34: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotReferences.createAlwaysSingleLanguage:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.directLanguageSupplier:Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
35: 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 36 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
0 36 1 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
10 11 2 e Ljava/lang/Exception;
14 36 2 mayBeUsedInInnerContext Z
17 36 3 currentExclusive Z
20 36 4 useDirectSingleContext Lcom/oracle/truffle/api/Assumption;
23 36 5 useInnerContext Lcom/oracle/truffle/api/Assumption;
Exception table:
from to target type
6 8 9 Class java.lang.Exception
MethodParameters:
Name Flags
language
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.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
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/PolyglotLanguageInstance;
boolean areOptionsCompatible(com.oracle.truffle.polyglot.OptionValuesImpl);
descriptor: (Lcom/oracle/truffle/polyglot/OptionValuesImpl;)Z
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.firstOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
astore 2
start local 2 1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.firstOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
ifnonnull 3
2: iconst_1
ireturn
3: StackMap locals: com.oracle.truffle.polyglot.OptionValuesImpl
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.spi:Lcom/oracle/truffle/api/TruffleLanguage;
aload 2
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.areOptionsCompatible:(Lcom/oracle/truffle/api/TruffleLanguage;Lorg/graalvm/options/OptionValues;Lorg/graalvm/options/OptionValues;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
0 4 1 newOptionValues Lcom/oracle/truffle/polyglot/OptionValuesImpl;
1 4 2 firstOptions Lcom/oracle/truffle/polyglot/OptionValuesImpl;
MethodParameters:
Name Flags
newOptionValues
void claim(com.oracle.truffle.polyglot.OptionValuesImpl);
descriptor: (Lcom/oracle/truffle/polyglot/OptionValuesImpl;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageInstance.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
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.PolyglotLanguageInstance.firstOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
ifnonnull 3
2: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.firstOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
3: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.claimedCount:I
iconst_1
iadd
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.claimedCount:I
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
0 5 1 optionValues Lcom/oracle/truffle/polyglot/OptionValuesImpl;
MethodParameters:
Name Flags
optionValues
void patchFirstOptions(com.oracle.truffle.polyglot.OptionValuesImpl);
descriptor: (Lcom/oracle/truffle/polyglot/OptionValuesImpl;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.firstOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
0 2 1 optionValues Lcom/oracle/truffle/polyglot/OptionValuesImpl;
MethodParameters:
Name Flags
optionValues
void ensureMultiContextInitialized();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageInstance.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
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.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
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
ifne 7
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
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;
getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.EXCLUSIVE:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
if_acmpeq 7
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.multiContextInitialized:Z
ifne 7
3: aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.multiContextInitialized:Z
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeMultiContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
6: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.spi:Lcom/oracle/truffle/api/TruffleLanguage;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeMultiContext:(Lcom/oracle/truffle/api/TruffleLanguage;)Z
pop
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
com.oracle.truffle.polyglot.PolyglotSourceCache getSourceCache();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotSourceCache;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.sourceCache:Lcom/oracle/truffle/polyglot/PolyglotSourceCache;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
com.oracle.truffle.api.TruffleLanguage$ContextReference<java.lang.Object> getDirectContextSupplier();
descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.directContextSupplier:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
Signature: ()Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Ljava/lang/Object;>;
com.oracle.truffle.api.TruffleLanguage$ContextReference<java.lang.Object> lookupContextSupplier(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageInstance.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 1
if_acmpne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.polyglot.PolyglotLanguageInstance.$SWITCH_TABLE$com$oracle$truffle$api$TruffleLanguage$ContextPolicy:()[I
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getEffectiveContextPolicy:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextPolicy.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 2
2: 6
3: 6
default: 8
}
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.noInnerContexts:Lcom/oracle/truffle/api/Assumption;
aconst_null
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getContextReference:()Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
iconst_1
4: 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;
astore 2
start local 2 5: goto 9
end local 2 6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getContextReference:()Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
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.api.TruffleLanguage$ContextReference
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
0 10 1 sourceLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
5 6 2 ref Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Ljava/lang/Object;>;
7 8 2 ref Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Ljava/lang/Object;>;
9 10 2 ref Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Ljava/lang/Object;>;
Signature: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Ljava/lang/Object;>;
MethodParameters:
Name Flags
sourceLanguage
com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.api.TruffleLanguage<java.lang.Object>> getDirectLanguageReference();
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.PolyglotLanguageInstance.directLanguageSupplier:Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
Signature: ()Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/api/TruffleLanguage<Ljava/lang/Object;>;>;
com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.api.TruffleLanguage<java.lang.Object>> lookupLanguageSupplier(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageInstance.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 1
if_acmpne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.polyglot.PolyglotLanguageInstance.$SWITCH_TABLE$com$oracle$truffle$api$TruffleLanguage$ContextPolicy:()[I
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getEffectiveContextPolicy:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextPolicy.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 2
2: 3
3: 3
default: 4
}
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.singleInstance:Lcom/oracle/truffle/api/Assumption;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getLanguageReference:()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;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getLanguageReference:()Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
areturn
4: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
0 5 1 sourceLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Signature: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/api/TruffleLanguage<Ljava/lang/Object;>;>;
MethodParameters:
Name Flags
sourceLanguage
void listCachedSources(java.util.Collection<org.graalvm.polyglot.Source>);
descriptor: (Ljava/util/Collection;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.sourceCache:Lcom/oracle/truffle/polyglot/PolyglotSourceCache;
aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotSourceCache.listCachedSources:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;Ljava/util/Collection;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
0 2 1 sources Ljava/util/Collection<Lorg/graalvm/polyglot/Source;>;
Signature: (Ljava/util/Collection<Lorg/graalvm/polyglot/Source;>;)V
MethodParameters:
Name Flags
sources
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.PolyglotLanguageInstance.$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.PolyglotLanguageInstance.$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: "PolyglotLanguageInstance.java"
InnerClasses:
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
abstract VMObject = com.oracle.truffle.polyglot.PolyglotImpl$VMObject of com.oracle.truffle.polyglot.PolyglotImpl
final LanguageContextLocal = com.oracle.truffle.polyglot.PolyglotLocals$LanguageContextLocal of com.oracle.truffle.polyglot.PolyglotLocals
final LanguageContextThreadLocal = com.oracle.truffle.polyglot.PolyglotLocals$LanguageContextThreadLocal of com.oracle.truffle.polyglot.PolyglotLocals
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
InteropCodeCache = com.oracle.truffle.polyglot.PolyglotValue$InteropCodeCache of com.oracle.truffle.polyglot.PolyglotValue