final class com.oracle.truffle.polyglot.PolyglotLanguageContext 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.PolyglotLanguageContext
super_class: java.lang.Object
{
private static final com.oracle.truffle.api.TruffleLogger LOG;
descriptor: Lcom/oracle/truffle/api/TruffleLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
final com.oracle.truffle.polyglot.PolyglotContextImpl context;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.polyglot.PolyglotLanguage language;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguage;
flags: (0x0010) ACC_FINAL
final boolean eventsEnabled;
descriptor: Z
flags: (0x0010) ACC_FINAL
private volatile java.lang.Thread creatingThread;
descriptor: Ljava/lang/Thread;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean initialized;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
volatile boolean finalized;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
private volatile org.graalvm.polyglot.Value hostBindings;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private volatile com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy lazy;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
volatile com.oracle.truffle.api.TruffleLanguage$Env env;
descriptor: Lcom/oracle/truffle/api/TruffleLanguage$Env;
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private volatile java.util.List<java.lang.Object> languageServices;
descriptor: Ljava/util/List;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/List<Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
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/PolyglotLanguageContext;
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.PolyglotLanguageContext.$assertionsDisabled:Z
3: ldc "engine"
ldc Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLogger;
putstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.LOG:Lcom/oracle/truffle/api/TruffleLogger;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.polyglot.PolyglotContextImpl, com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.languageServices:Ljava/util/List;
2: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
3: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
4: aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.isHost:()Z
ifeq 5
iconst_0
goto 6
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage
StackMap stack: com.oracle.truffle.polyglot.PolyglotLanguageContext
5: iconst_1
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage
StackMap stack: com.oracle.truffle.polyglot.PolyglotLanguageContext int
6: putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 8 1 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 8 2 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
MethodParameters:
Name Flags
context
language
boolean isPolyglotBindingsAccessAllowed();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
getstatic org.graalvm.polyglot.PolyglotAccess.ALL:Lorg/graalvm/polyglot/PolyglotAccess;
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getBindingsAccess:(Lorg/graalvm/polyglot/PolyglotAccess;)Lorg/graalvm/collections/UnmodifiableEconomicSet;
astore 1
start local 1 3: aload 1
ifnonnull 5
4: iconst_1
ireturn
5: StackMap locals: org.graalvm.collections.UnmodifiableEconomicSet
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
3 6 1 accessibleLanguages Lorg/graalvm/collections/UnmodifiableEconomicSet<Ljava/lang/String;>;
boolean isPolyglotEvalAllowed(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
getstatic org.graalvm.polyglot.PolyglotAccess.ALL:Lorg/graalvm/polyglot/PolyglotAccess;
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
ifnull 4
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
6: invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getEvalAccess:(Lorg/graalvm/polyglot/PolyglotAccess;Ljava/lang/String;)Lorg/graalvm/collections/UnmodifiableEconomicSet;
astore 2
start local 2 7: aload 2
ifnull 8
aload 2
invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.isEmpty:()Z
ifeq 9
8: StackMap locals: org.graalvm.collections.UnmodifiableEconomicSet
StackMap stack:
iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.size:()I
iconst_1
if_icmpgt 10
aload 2
invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
10: StackMap locals:
StackMap stack:
aload 1
ifnull 11
aload 2
aload 1
invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.contains:(Ljava/lang/Object;)Z
ifne 11
iconst_0
ireturn
StackMap locals:
StackMap stack:
11: iconst_1
ireturn
12: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 13 1 targetLanguage Ljava/lang/String;
7 13 2 accessibleLanguages Lorg/graalvm/collections/UnmodifiableEconomicSet<Ljava/lang/String;>;
MethodParameters:
Name Flags
targetLanguage
java.lang.Thread$UncaughtExceptionHandler getPolyglotExceptionHandler();
descriptor: ()Ljava/lang/Thread$UncaughtExceptionHandler;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ifnonnull 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.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.uncaughtExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
java.util.Map<java.lang.Class<?>, com.oracle.truffle.polyglot.PolyglotValue> getValueCache();
descriptor: ()Ljava/util/Map;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ifnonnull 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.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.valueCache:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
Signature: ()Ljava/util/Map<Ljava/lang/Class<*>;Lcom/oracle/truffle/polyglot/PolyglotValue;>;
java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo> getAccessibleLanguages(boolean);
descriptor: (Z)Ljava/util/Map;
flags: (0x0000)
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
astore 2
start local 2 1: aload 2
ifnull 5
2: iload 1
ifeq 4
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.accessibleInternalLanguages:Ljava/util/Map;
areturn
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.accessiblePublicLanguages:Ljava/util/Map;
areturn
5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 6 1 allowInternalAndDependent Z
1 6 2 l Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
Signature: (Z)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
MethodParameters:
Name Flags
allowInternalAndDependent
com.oracle.truffle.polyglot.PolyglotLanguageInstance getLanguageInstanceOrNull();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
StackMap stack:
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
1 4 1 l Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
com.oracle.truffle.polyglot.PolyglotLanguageInstance getLanguageInstance();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ifnonnull 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.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
private void checkThreadAccess(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
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.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isSingleThreaded:()Z
istore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 8
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env int java.lang.Thread top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 4
start local 4 5: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 1
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
iload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.isThreadAccessAllowed:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;Z)Z
ifne 8
6: aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
astore 3
7: goto 9
end local 4 8: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
9: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env int java.lang.Thread
StackMap stack:
aload 3
ifnull 11
10: aload 3
iload 2
iconst_1
anewarray com.oracle.truffle.polyglot.PolyglotLanguage
dup
iconst_0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.throwDeniedThreadAccess:(Ljava/lang/Thread;ZLjava/util/List;)Ljava/lang/RuntimeException;
athrow
11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 12 1 localEnv Lcom/oracle/truffle/api/TruffleLanguage$Env;
2 12 2 singleThreaded Z
3 12 3 firstFailingThread Ljava/lang/Thread;
5 8 4 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
localEnv
java.lang.Object getContextImpl();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ifnull 2
1: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
java.lang.Object getPublicFileSystemContext();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.publicFileSystemContext:Ljava/lang/Object;
areturn
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
1 4 1 l Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
java.lang.Object getInternalFileSystemContext();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.internalFileSystemContext:Ljava/lang/Object;
areturn
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
1 4 1 l Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
org.graalvm.polyglot.Value getHostBindings();
descriptor: ()Lorg/graalvm/polyglot/Value;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized: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.PolyglotLanguageContext.hostBindings:Lorg/graalvm/polyglot/Value;
ifnonnull 17
2: aload 0
dup
astore 1
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.hostBindings:Lorg/graalvm/polyglot/Value;
ifnonnull 13
4: aload 0
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.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enterIfNeeded:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
astore 2
start local 2 5: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getScope:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
astore 3
start local 3 6: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 7
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ifne 7
new java.lang.AssertionError
dup
ldc "Scope object must have members."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object java.lang.Object
StackMap stack:
aload 0
aload 0
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.hostBindings:Lorg/graalvm/polyglot/Value;
end local 3 8: goto 12
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
StackMap stack: java.lang.Throwable
9: astore 4
10: aload 0
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 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
11: aload 4
athrow
12: StackMap locals:
StackMap stack:
aload 0
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 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
end local 2 13: StackMap locals:
StackMap stack:
aload 1
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 1
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.hostBindings:Lorg/graalvm/polyglot/Value;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
5 13 2 prev Ljava/lang/Object;
6 8 3 scope Ljava/lang/Object;
Exception table:
from to target type
5 9 9 any
3 14 15 any
15 16 15 any
java.lang.Object getPolyglotGuestBindings();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()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.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.polyglotGuestBindings:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
boolean isInitialized();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
com.oracle.truffle.api.CallTarget parseCached(com.oracle.truffle.polyglot.PolyglotLanguage, com.oracle.truffle.api.source.Source, java.lang.String[]);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
flags: (0x0000)
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
pop
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.sourceCache:Lcom/oracle/truffle/polyglot/PolyglotSourceCache;
astore 4
start local 4 2: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 3
aload 4
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotSourceCache
StackMap stack:
aload 4
aload 0
aload 2
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotSourceCache.parseCached:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 4 1 accessingLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 4 2 source Lcom/oracle/truffle/api/source/Source;
0 4 3 argumentNames [Ljava/lang/String;
2 4 4 cache Lcom/oracle/truffle/polyglot/PolyglotSourceCache;
Exceptions:
throws java.lang.AssertionError
MethodParameters:
Name Flags
accessingLanguage
source
argumentNames
com.oracle.truffle.api.TruffleLanguage$Env requireEnv();
descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$Env;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: ldc "No language context is active on this thread."
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
3: StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env
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/PolyglotLanguageContext;
1 4 1 localEnv Lcom/oracle/truffle/api/TruffleLanguage$Env;
boolean finalizeContext(boolean);
descriptor: (Z)Z
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.finalized:Z
ifne 6
1: aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.finalized:Z
2: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.finalizeContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
ifeq 5
iload 1
ifeq 5
4: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextFinalized:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 7 1 notifyInstruments Z
MethodParameters:
Name Flags
notifyInstruments
boolean dispose();
descriptor: ()Z
flags: (0x0000)
Code:
stack=5, locals=5, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
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.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
astore 1
start local 1 2: aload 1
ifnull 17
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.activePolyglotThreads:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifne 5
4: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "The language did not complete all polyglot threads but should have: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.activePolyglotThreads:Ljava/util/Set;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 14
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env top java.util.Iterator
StackMap stack:
6: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 2
start local 2 7: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 8
aload 2
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
if_acmpne 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.Iterator
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
astore 4
start local 4 9: aload 4
ifnonnull 11
10: goto 14
11: StackMap locals: java.lang.Thread
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 13
aload 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isPolyglotThread:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
ifeq 13
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Polyglot threads must no longer be active in TruffleLanguage.finalizeContext, but polyglot thread "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc " is still active."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 1
aload 4
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.disposeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
end local 4 end local 2 14: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
15: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.dispose:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
16: iconst_1
ireturn
17: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
2 18 1 localEnv Lcom/oracle/truffle/api/TruffleLanguage$Env;
7 14 2 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
9 14 4 thread Ljava/lang/Thread;
void notifyDisposed(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
ifeq 2
iload 1
ifeq 2
1: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextDisposed:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.freeInstance:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 4 1 notifyInstruments Z
MethodParameters:
Name Flags
notifyInstruments
com.oracle.truffle.polyglot.PolyglotContextImpl enterThread(com.oracle.truffle.polyglot.PolyglotThread);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotThread;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 2
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 1
if_acmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
dup
astore 2
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 3
start local 3 4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.activePolyglotThreads:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: aload 3
aload 2
monitorexit
6: areturn
end local 3 7: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotThread com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
aload 2
monitorexit
8: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 9 1 thread Lcom/oracle/truffle/polyglot/PolyglotThread;
4 7 3 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Exception table:
from to target type
3 6 7 any
7 8 7 any
MethodParameters:
Name Flags
thread
void leaveThread(com.oracle.truffle.polyglot.PolyglotContextImpl, com.oracle.truffle.polyglot.PolyglotThread);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotThread;)V
flags: (0x0000)
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 2
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 2
if_acmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
dup
astore 3
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()Ljava/util/Map;
astore 4
start local 4 4: aload 4
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 5
start local 5 5: aload 5
ifnonnull 8
6: aload 3
monitorexit
7: return
8: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Map com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 13
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThread com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Map com.oracle.truffle.polyglot.PolyglotThreadInfo top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
9: aload 9
iload 7
aaload
astore 6
start local 6 10: aload 6
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 12
11: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 6
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.disposeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
end local 6 12: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
13: iload 7
iload 8
if_icmplt 9
14: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.activePolyglotThreads:Ljava/util/Set;
aload 2
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
15: aload 0
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 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
16: aload 4
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 17: aload 3
monitorexit
18: goto 21
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThread com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
19: aload 3
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyThreadFinished:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
22: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 23 1 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 23 2 thread Lcom/oracle/truffle/polyglot/PolyglotThread;
4 17 4 seenThreads Ljava/util/Map<Ljava/lang/Thread;Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;>;
5 17 5 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
10 12 6 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
Exception table:
from to target type
3 7 19 any
8 18 19 any
19 20 19 any
MethodParameters:
Name Flags
prev
thread
boolean isCreated();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
void ensureCreated(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
flags: (0x0000)
Code:
stack=10, locals=13, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 4
1: ldc "Cyclic access to language context for language %s. The context is currently being created."
iconst_1
anewarray java.lang.Object
dup
iconst_0
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
aastore
3: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
ifnull 19
5: iconst_0
istore 2
start local 2 6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
dup
astore 3
monitorenter
7: goto 12
8: StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual java.lang.Object.wait:()V
9: goto 12
StackMap locals:
StackMap stack: java.lang.InterruptedException
10: pop
11: iconst_1
istore 2
12: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
ifnonnull 8
13: aload 3
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 3
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
iload 2
ifeq 19
18: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
end local 2 19: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
ifnonnull 78
20: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
21: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creator:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
if_acmpne 22
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorArguments:Ljava/util/Map;
goto 23
StackMap locals:
StackMap stack:
22: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
StackMap locals:
StackMap stack: java.util.Map
23: astore 2
start local 2 24: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
astore 3
start local 3 25: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 3
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getLanguageOptionValues:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.allocateInstance:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
astore 4
start local 4 26: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
dup
astore 5
monitorenter
27: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
ifnonnull 68
28: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.spi:Lcom/oracle/truffle/api/TruffleLanguage;
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.out:Ljava/io/OutputStream;
29: aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.err:Ljava/io/OutputStream;
30: aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.in:Ljava/io/InputStream;
31: aload 2
32: aload 3
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getLanguageOptionValues:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
33: aload 3
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getApplicationArguments:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)[Ljava/lang/String;
34: invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createEnv:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Lorg/graalvm/options/OptionValues;[Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
astore 6
start local 6 35: new com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
dup
aload 0
aload 4
aload 3
invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
astore 7
start local 7 36: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
aload 0
aload 7
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.valueCache:Ljava/util/Map;
invokestatic com.oracle.truffle.polyglot.PolyglotValue.createDefaultValues:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/Map;)V
37: aload 0
aload 6
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkThreadAccess:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
38: aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
39: aload 0
aload 6
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
40: aload 0
aload 7
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
41: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 42
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguage:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
ifnonnull 42
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
42: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 8
start local 8 43: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 6
aload 8
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createEnvContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/util/List;)Ljava/lang/Object;
astore 9
start local 9 44: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 9
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.initializeContextClass:(Ljava/lang/Object;)V
45: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
aload 9
aastore
46: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
aload 8
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.getServices:()Ljava/util/Collection;
invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.verifyServices:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/util/List;Ljava/util/Collection;)Ljava/lang/String;
astore 10
start local 10 47: aload 10
ifnull 49
48: aload 10
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
49: StackMap locals: java.util.List java.lang.Object java.lang.String
StackMap stack:
aload 0
aload 8
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.languageServices:Ljava/util/List;
50: aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.profile:Lcom/oracle/truffle/polyglot/PolyglotLanguage$ContextProfile;
aload 0
aload 6
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile.notifyContextCreate:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
51: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
ifeq 53
52: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextCreated:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
53: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.freeInstances:Ljava/util/List;
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
54: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.contextLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextLocalsFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
55: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.contextThreadLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextThreadLocalFactory:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
56: aconst_null
astore 4
end local 10 end local 9 end local 8 57: goto 66
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
StackMap stack: java.lang.Throwable
58: astore 8
start local 8 59: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
60: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
61: aload 8
athrow
end local 8 62: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
63: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
64: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual java.lang.Object.notifyAll:()V
65: aload 11
athrow
66: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
67: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual java.lang.Object.notifyAll:()V
end local 7 end local 6 68: StackMap locals:
StackMap stack:
aload 5
monitorexit
69: goto 76
StackMap locals:
StackMap stack: java.lang.Throwable
70: aload 5
monitorexit
71: athrow
72: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance
StackMap stack: java.lang.Throwable
astore 12
73: aload 4
ifnull 75
74: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.freeInstance:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
75: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance top top top top top top top java.lang.Throwable
StackMap stack:
aload 12
athrow
76: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance
StackMap stack:
aload 4
ifnull 78
77: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.freeInstance:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
end local 4 end local 3 end local 2 78: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 79 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 79 1 accessingLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
6 19 2 interrupted Z
24 78 2 creatorConfig Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
25 78 3 envConfig Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
26 78 4 lang Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
35 68 6 localEnv Lcom/oracle/truffle/api/TruffleLanguage$Env;
36 68 7 localLazy Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
43 57 8 languageServicesCollector Ljava/util/List<Ljava/lang/Object;>;
44 57 9 contextImpl Ljava/lang/Object;
47 57 10 errorMessage Ljava/lang/String;
59 62 8 e Ljava/lang/Throwable;
Exception table:
from to target type
8 9 10 Class java.lang.InterruptedException
7 14 15 any
15 16 15 any
42 57 58 Class java.lang.Throwable
42 62 62 any
27 69 70 any
70 71 70 any
26 72 72 any
MethodParameters:
Name Flags
accessingLanguage
void close();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
2: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
private static java.lang.String verifyServices(com.oracle.truffle.api.nodes.LanguageInfo, java.util.List<java.lang.Object>, java.util.Collection<java.lang.String>);
descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/util/List;Ljava/util/Collection;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 11
StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo java.util.List java.util.Collection top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 2: iconst_0
istore 5
start local 5 3: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 8
StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo java.util.List java.util.Collection java.lang.String java.util.Iterator int top java.util.Iterator
StackMap stack:
4: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 6
start local 6 5: aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.isSubType:(Ljava/lang/Class;Ljava/lang/String;)Z
ifeq 8
6: iconst_1
istore 5
7: goto 9
end local 6 8: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
9: StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo java.util.List java.util.Collection java.lang.String java.util.Iterator int
StackMap stack:
iload 5
ifne 11
10: ldc "Language %s declares service %s but doesn't register it"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 3
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 5 end local 3 11: StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo java.util.List java.util.Collection top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
12: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 info Lcom/oracle/truffle/api/nodes/LanguageInfo;
0 13 1 registeredServices Ljava/util/List<Ljava/lang/Object;>;
0 13 2 expectedServices Ljava/util/Collection<Ljava/lang/String;>;
2 11 3 expectedService Ljava/lang/String;
3 11 5 found Z
5 8 6 registeredService Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/util/List<Ljava/lang/Object;>;Ljava/util/Collection<Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
info
registeredServices
expectedServices
private static boolean isSubType(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
aload 1
aload 0
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.isSubType:(Ljava/lang/Class;Ljava/lang/String;)Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 11
StackMap locals: java.lang.Class java.lang.String top int int java.lang.Class[]
StackMap stack:
7: aload 5
iload 3
aaload
astore 2
start local 2 8: aload 2
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.isSubType:(Ljava/lang/Class;Ljava/lang/String;)Z
ifeq 10
9: iconst_1
ireturn
end local 2 10: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
iload 4
if_icmplt 7
12: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 clazz Ljava/lang/Class<*>;
0 13 1 serviceClass Ljava/lang/String;
8 10 2 implementedInterface Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Z
MethodParameters:
Name Flags
clazz
serviceClass
boolean ensureInitialized(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
flags: (0x0000)
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureCreated:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
1: iconst_0
istore 2
start local 2 2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
ifne 27
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
dup
astore 3
monitorenter
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
ifne 23
5: aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
ifne 8
7: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
8: StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.postInitEnv:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
9: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isSingleThreaded:()Z
ifne 11
10: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeMultiThreading:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
11: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 17
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage int com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
StackMap stack:
12: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 4
start local 4 13: aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
astore 6
start local 6 14: aload 6
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 16
15: goto 17
16: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage int com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.Iterator java.lang.Thread
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 6
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
end local 6 end local 4 17: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage int com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
18: iconst_1
istore 2
19: goto 23
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
20: astore 4
start local 4 21: aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
22: aload 4
athrow
end local 4 23: StackMap locals:
StackMap stack:
aload 3
monitorexit
24: goto 27
StackMap locals:
StackMap stack: java.lang.Throwable
25: aload 3
monitorexit
26: athrow
27: StackMap locals:
StackMap stack:
iload 2
ifeq 29
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
ifeq 29
28: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextInitialized:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
29: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 30 1 accessingLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
2 30 2 wasInitialized Z
13 17 4 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
14 17 6 thread Ljava/lang/Thread;
21 23 4 e Ljava/lang/Throwable;
Exception table:
from to target type
6 19 20 Class java.lang.Throwable
4 24 25 any
25 26 25 any
MethodParameters:
Name Flags
accessingLanguage
void checkAccess(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkClosed:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
ifeq 3
2: ldc "The Context is already closed."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.isAccessPermitted:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
ifne 5
4: ldc "Access to language '%s' is not permitted. "
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.initError:Ljava/lang/RuntimeException;
astore 2
start local 2 6: aload 2
ifnull 8
7: ldc "Initialization error: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
8: StackMap locals: java.lang.RuntimeException
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 9 1 accessingLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
6 9 2 initError Ljava/lang/RuntimeException;
MethodParameters:
Name Flags
accessingLanguage
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.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
boolean patch(com.oracle.truffle.polyglot.PolyglotContextConfig);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)Z
flags: (0x0000)
Code:
stack=9, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
ifeq 16
1: aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getLanguageOptionValues:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
astore 2
start local 2 2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.computeAccessPermissions:(Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
3: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.out:Ljava/io/OutputStream;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.err:Ljava/io/OutputStream;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.in:Ljava/io/InputStream;
4: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
aload 2
aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getApplicationArguments:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)[Ljava/lang/String;
5: invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.patchEnvContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Lorg/graalvm/options/OptionValues;[Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
astore 3
start local 3 6: aload 3
ifnull 11
7: aload 0
aload 3
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
8: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.patchFirstOptions:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)V
9: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.LOG:Lcom/oracle/truffle/api/TruffleLogger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Successfully patched context of language: {0}"
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
10: iconst_1
ireturn
11: StackMap locals: com.oracle.truffle.polyglot.OptionValuesImpl com.oracle.truffle.api.TruffleLanguage$Env
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.LOG:Lcom/oracle/truffle/api/TruffleLogger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Failed to patch context of language: {0}"
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
12: iconst_0
ireturn
end local 3 end local 2 13: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextConfig
StackMap stack: java.lang.Throwable
astore 2
start local 2 14: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.LOG:Lcom/oracle/truffle/api/TruffleLogger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Exception during patching context of language: {0}"
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
15: ldc Ljava/lang/RuntimeException;
aload 2
invokestatic com.oracle.truffle.polyglot.GuestToHostRootNode.silenceException:(Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 16: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 17 1 newConfig Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
2 13 2 newOptionValues Lcom/oracle/truffle/polyglot/OptionValuesImpl;
6 13 3 newEnv Lcom/oracle/truffle/api/TruffleLanguage$Env;
14 16 2 t Ljava/lang/Throwable;
Exception table:
from to target type
1 10 13 Class java.lang.Throwable
11 12 13 Class java.lang.Throwable
MethodParameters:
Name Flags
newConfig
<S> S lookupService(java.lang.Class<S>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.languageServices:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Class top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 2
start local 2 2: aload 1
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 4
3: aload 1
aload 2
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 6 1 type Ljava/lang/Class<TS;>;
2 4 2 languageService Ljava/lang/Object;
Signature: <S:Ljava/lang/Object;>(Ljava/lang/Class<TS;>;)TS;
MethodParameters:
Name Flags
type
org.graalvm.polyglot.Value asValue(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
flags: (0x0000)
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 2
aload 1
ifnonnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 3
aload 1
instanceof org.graalvm.polyglot.Value
ifeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 4
aload 1
instanceof org.graalvm.polyglot.proxy.Proxy
ifeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 1
astore 2
start local 2 5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.valueCache:Ljava/util/Map;
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotValue
astore 3
start local 3 6: aload 3
ifnonnull 14
7: aload 0
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.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enterIfNeeded:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
astore 4
start local 4 8: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.lookupValueCache:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotValue;
astore 3
9: goto 13
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object java.lang.Object com.oracle.truffle.polyglot.PolyglotValue java.lang.Object
StackMap stack: java.lang.Throwable
10: astore 5
11: aload 0
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 4
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
12: aload 5
athrow
13: StackMap locals:
StackMap stack:
aload 0
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 4
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
end local 4 14: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 2
aload 3
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newValue:(Ljava/lang/Object;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;)Lorg/graalvm/polyglot/Value;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 15 1 guestValue Ljava/lang/Object;
5 15 2 receiver Ljava/lang/Object;
6 15 3 cache Lcom/oracle/truffle/polyglot/PolyglotValue;
8 14 4 prev Ljava/lang/Object;
Exception table:
from to target type
8 10 10 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
guestValue
synchronized com.oracle.truffle.polyglot.PolyglotValue lookupValueCache(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotValue;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 1
aload 0
aconst_null
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.toGuestValue:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpeq 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Not a valid guest value: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ". Only interop values are allowed to be exported."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enterIfNeeded:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
astore 2
start local 2 2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.valueCache:Ljava/util/Map;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
new com.oracle.truffle.polyglot.PolyglotLanguageContext$1
dup
aload 0
aload 1
invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext$1.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotValue
astore 3
start local 3 3: aload 3
astore 5
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
5: aload 5
areturn
end local 3 6: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
astore 4
7: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
8: aload 4
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 9 1 guestValue Ljava/lang/Object;
2 9 2 prev Ljava/lang/Object;
3 6 3 cache Lcom/oracle/truffle/polyglot/PolyglotValue;
Exception table:
from to target type
2 4 6 any
MethodParameters:
Name Flags
guestValue
toGuestValue(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.forClass:(Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 1 1 receiver Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Object;
MethodParameters:
Name Flags
receiver
java.lang.Object toGuestValue(com.oracle.truffle.api.nodes.Node, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.graalvm.polyglot.Value
ifeq 10
1: aload 2
checkcast org.graalvm.polyglot.Value
astore 3
start local 3 2: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 3
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getImpl:(Lorg/graalvm/polyglot/Value;)Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;
checkcast com.oracle.truffle.polyglot.PolyglotValue
astore 4
start local 4 3: aload 4
getfield com.oracle.truffle.polyglot.PolyglotValue.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
ifnull 4
aload 4
getfield com.oracle.truffle.polyglot.PolyglotValue.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
goto 5
StackMap locals: org.graalvm.polyglot.Value com.oracle.truffle.polyglot.PolyglotValue
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl
5: astore 5
start local 5 6: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 3
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getReceiver:(Lorg/graalvm/polyglot/Value;)Ljava/lang/Object;
astore 6
start local 6 7: aload 5
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
if_acmpeq 9
8: aload 0
aload 1
aload 6
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.migrateValue:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
astore 6
9: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object
StackMap stack:
aload 6
areturn
end local 6 end local 5 end local 4 end local 3 10: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.nodes.Node java.lang.Object
StackMap stack:
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.isGuestPrimitive:(Ljava/lang/Object;)Z
ifeq 12
11: aload 2
areturn
12: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.polyglot.proxy.Proxy
ifeq 14
13: aload 2
checkcast org.graalvm.polyglot.proxy.Proxy
invokestatic com.oracle.truffle.polyglot.PolyglotProxy.toProxyGuestObject:(Lorg/graalvm/polyglot/proxy/Proxy;)Lcom/oracle/truffle/api/interop/TruffleObject;
areturn
14: StackMap locals:
StackMap stack:
aload 2
instanceof com.oracle.truffle.api.interop.TruffleObject
ifeq 16
15: aload 2
areturn
16: StackMap locals:
StackMap stack:
aload 2
instanceof java.lang.Class
ifeq 18
17: aload 2
checkcast java.lang.Class
aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.forClass:(Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
areturn
18: StackMap locals:
StackMap stack:
aload 2
ifnonnull 20
19: getstatic com.oracle.truffle.polyglot.HostObject.NULL:Lcom/oracle/truffle/polyglot/HostObject;
areturn
20: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 22
21: aload 2
aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.forObject:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
areturn
22: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.polyglot.HostWrapper.isInstance:(Ljava/lang/Object;)Z
ifeq 24
23: aload 0
aload 1
aload 2
invokestatic com.oracle.truffle.polyglot.HostWrapper.asInstance:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostWrapper;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.migrateHostWrapper:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/polyglot/HostWrapper;)Ljava/lang/Object;
areturn
24: StackMap locals:
StackMap stack:
aload 2
aload 0
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.asTruffleViaReflection:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 25 1 parentNode Lcom/oracle/truffle/api/nodes/Node;
0 25 2 hostValue Ljava/lang/Object;
2 10 3 receiverValue Lorg/graalvm/polyglot/Value;
3 10 4 valueImpl Lcom/oracle/truffle/polyglot/PolyglotValue;
6 10 5 valueContext Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
7 10 6 valueReceiver Ljava/lang/Object;
MethodParameters:
Name Flags
parentNode
hostValue
private java.lang.Object migrateValue(com.oracle.truffle.api.nodes.Node, java.lang.Object, com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.isGuestPrimitive:(Ljava/lang/Object;)Z
ifeq 2
1: aload 2
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.polyglot.HostObject.isInstance:(Ljava/lang/Object;)Z
ifeq 4
3: aload 2
aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.withContext:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotProxy.isProxyGuestObject:(Ljava/lang/Object;)Z
ifeq 6
5: aload 2
areturn
6: StackMap locals:
StackMap stack:
aload 3
ifnonnull 9
7: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 8
aload 2
instanceof com.oracle.truffle.api.interop.TruffleObject
ifne 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 2
areturn
9: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
10: aload 1
astore 4
start local 4 11: aload 4
ifnull 12
aload 4
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
ifnonnull 13
12: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
invokestatic com.oracle.truffle.api.nodes.EncapsulatingNodeReference.getCurrent:()Lcom/oracle/truffle/api/nodes/EncapsulatingNodeReference;
invokevirtual com.oracle.truffle.api.nodes.EncapsulatingNodeReference.get:()Lcom/oracle/truffle/api/nodes/Node;
astore 4
13: StackMap locals:
StackMap stack:
new com.oracle.truffle.polyglot.PolyglotLanguageContext$ValueMigrationException
dup
ldc "The value '%s' cannot be passed from one context to another. The current context is 0x%x and the argument value originates from context 0x%x."
iconst_3
anewarray java.lang.Object
dup
iconst_0
14: aconst_null
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotValue.getValueInfo:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokevirtual java.lang.Object.hashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 3
invokevirtual java.lang.Object.hashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
15: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
16: aload 4
17: invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext$ValueMigrationException.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 18 1 parentNode Lcom/oracle/truffle/api/nodes/Node;
0 18 2 value Ljava/lang/Object;
0 18 3 valueContext Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
11 18 4 nodeContext Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
parentNode
value
valueContext
private java.lang.Object migrateHostWrapper(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.polyglot.HostWrapper);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/polyglot/HostWrapper;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface com.oracle.truffle.polyglot.HostWrapper.getGuestObject:()Ljava/lang/Object;
astore 3
start local 3 1: aload 2
invokeinterface com.oracle.truffle.polyglot.HostWrapper.getContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 4
start local 4 2: aload 4
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
if_acmpeq 4
3: aload 0
aload 1
aload 3
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.migrateValue:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
astore 3
4: StackMap locals: java.lang.Object com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 5 1 parentNode Lcom/oracle/truffle/api/nodes/Node;
0 5 2 wrapper Lcom/oracle/truffle/polyglot/HostWrapper;
1 5 3 wrapped Ljava/lang/Object;
2 5 4 valueContext Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
MethodParameters:
Name Flags
parentNode
wrapper
org.graalvm.polyglot.Value[] toHostValues(java.lang.Object[], int);
descriptor: ([Ljava/lang/Object;I)[Lorg/graalvm/polyglot/Value;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
arraylength
iload 2
isub
anewarray org.graalvm.polyglot.Value
astore 3
start local 3 1: iload 2
istore 4
start local 4 2: goto 5
3: StackMap locals: org.graalvm.polyglot.Value[] int
StackMap stack:
aload 3
iload 4
iload 2
isub
aload 0
aload 1
iload 4
aaload
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
aastore
4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
aload 1
arraylength
if_icmplt 3
end local 4 6: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 7 1 values [Ljava/lang/Object;
0 7 2 startIndex I
1 7 3 args [Lorg/graalvm/polyglot/Value;
2 6 4 i I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
values
startIndex
org.graalvm.polyglot.Value[] toHostValues(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)[Lorg/graalvm/polyglot/Value;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
arraylength
anewarray org.graalvm.polyglot.Value
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: org.graalvm.polyglot.Value[] int
StackMap stack:
aload 2
iload 3
aload 0
aload 1
iload 3
aaload
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
aastore
4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
aload 2
arraylength
if_icmplt 3
end local 3 6: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 7 1 values [Ljava/lang/Object;
1 7 2 args [Lorg/graalvm/polyglot/Value;
2 6 3 i I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
values
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 "PolyglotLanguageContext [language="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", initialized="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: java.lang.StringBuilder
1: iconst_0
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
StackMap stack: java.lang.StringBuilder int
2: 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 3 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
public java.lang.Object getLanguageView(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.EngineAccessor.INTEROP:Lcom/oracle/truffle/api/impl/Accessor$InteropSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$InteropSupport.checkInteropType:(Ljava/lang/Object;)V
1: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 1
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
astore 2
start local 2 2: aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasLanguage:(Ljava/lang/Object;)Z
ifeq 10
3: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
ifne 5
4: ldc "Language not yet created. Initialize the language first to request a language view."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
5: StackMap locals: com.oracle.truffle.api.interop.InteropLibrary
StackMap stack:
aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getLanguage:(Ljava/lang/Object;)Ljava/lang/Class;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.spi:Lcom/oracle/truffle/api/TruffleLanguage;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpne 10
6: aload 1
7: areturn
8: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
astore 3
start local 3 9: aload 3
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 3 10: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageViewNoCheck:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 11 1 receiver Ljava/lang/Object;
2 11 2 lib Lcom/oracle/truffle/api/interop/InteropLibrary;
9 10 3 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
Exception table:
from to target type
3 7 8 Class com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
receiver
private boolean validLanguageView(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 1
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
astore 2
start local 2 1: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguage:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 3
start local 3 2: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 9
aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasLanguage:(Ljava/lang/Object;)Z
ifeq 4
3: aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getLanguage:(Ljava/lang/Object;)Ljava/lang/Class;
aload 3
if_acmpeq 9
StackMap locals: com.oracle.truffle.api.interop.InteropLibrary java.lang.Class
StackMap stack:
4: new java.lang.AssertionError
dup
ldc "The returned language view of language '%s' must return the class '%s' for InteropLibrary.getLanguage.Fix the implementation of %s.getLanguageView to resolve this."
iconst_3
anewarray java.lang.Object
dup
iconst_0
5: aload 3
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 3
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 3
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
6: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
astore 4
start local 4 8: aload 4
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 4 9: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 10 1 result Ljava/lang/Object;
1 10 2 lib Lcom/oracle/truffle/api/interop/InteropLibrary;
2 10 3 languageClass Ljava/lang/Class<*>;
8 9 4 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
Exception table:
from to target type
2 7 7 Class com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
result
private boolean validScopedView(java.lang.Object, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 1
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
astore 3
start local 3 1: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguage:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 4
start local 4 2: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 9
aload 3
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasLanguage:(Ljava/lang/Object;)Z
ifeq 4
3: aload 3
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getLanguage:(Ljava/lang/Object;)Ljava/lang/Class;
aload 4
if_acmpeq 9
StackMap locals: com.oracle.truffle.api.interop.InteropLibrary java.lang.Class
StackMap stack:
4: new java.lang.AssertionError
dup
ldc "The returned scoped view of language '%s' must return the class '%s' for InteropLibrary.getLanguage.Fix the implementation of %s.getView to resolve this."
iconst_3
anewarray java.lang.Object
dup
iconst_0
5: aload 4
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 4
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
6: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
astore 5
start local 5 8: aload 5
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 5 9: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 10 1 result Ljava/lang/Object;
0 10 2 location Lcom/oracle/truffle/api/nodes/Node;
1 10 3 lib Lcom/oracle/truffle/api/interop/InteropLibrary;
2 10 4 languageClass Ljava/lang/Class<*>;
8 9 5 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
Exception table:
from to target type
2 7 7 Class com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
result
location
public java.lang.Object getLanguageViewNoCheck(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguageView:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 2
aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.validLanguageView:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.lang.Object
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 3 1 receiver Ljava/lang/Object;
1 3 2 result Ljava/lang/Object;
MethodParameters:
Name Flags
receiver
public java.lang.Object getScopedView(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
aload 1
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.validateLocationAndFrame:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)V
1: aload 0
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageView:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 2: invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 1
aload 2
aload 4
invokevirtual com.oracle.truffle.api.interop.NodeLibrary.getView:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 3: getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
ifne 4
aload 0
aload 5
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.validScopedView:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 5 1 location Lcom/oracle/truffle/api/nodes/Node;
0 5 2 frame Lcom/oracle/truffle/api/frame/Frame;
0 5 3 value Ljava/lang/Object;
2 5 4 languageView Ljava/lang/Object;
3 5 5 result Ljava/lang/Object;
MethodParameters:
Name Flags
location
frame
value
private static void validateLocationAndFrame(com.oracle.truffle.api.nodes.LanguageInfo, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame);
descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: ldc "The location '%s' does not have a RootNode."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
3: StackMap locals: com.oracle.truffle.api.nodes.RootNode
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
astore 4
start local 4 4: aload 4
ifnonnull 6
5: ldc "The location '%s' does not have a language associated."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
6: StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack:
aload 4
aload 0
if_acmpeq 8
7: ldc "The view language '%s' must match the language of the location %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 4
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
8: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.isInstrumentable:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 10
9: ldc "The location '%s' is not instrumentable but must be to request scoped views."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
10: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
aload 2
invokeinterface com.oracle.truffle.api.frame.Frame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 14
11: ldc "The frame provided does not originate from the location. Expected frame descriptor '%s' but was '%s'."
iconst_2
anewarray java.lang.Object
dup
iconst_0
12: aload 3
invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
aastore
dup
iconst_1
aload 2
invokeinterface com.oracle.truffle.api.frame.Frame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
aastore
13: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
14: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 viewLanguage Lcom/oracle/truffle/api/nodes/LanguageInfo;
0 15 1 location Lcom/oracle/truffle/api/nodes/Node;
0 15 2 frame Lcom/oracle/truffle/api/frame/Frame;
1 15 3 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
4 15 4 nodeLocation Lcom/oracle/truffle/api/nodes/LanguageInfo;
MethodParameters:
Name Flags
viewLanguage
location
frame
}
SourceFile: "PolyglotLanguageContext.java"
NestMembers:
com.oracle.truffle.polyglot.PolyglotLanguageContext$1 com.oracle.truffle.polyglot.PolyglotLanguageContext$Generic com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy com.oracle.truffle.polyglot.PolyglotLanguageContext$PolyglotUncaughtExceptionHandler com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValuesNode com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode com.oracle.truffle.polyglot.PolyglotLanguageContext$ValueMigrationException
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
public abstract InstrumentSupport = com.oracle.truffle.api.impl.Accessor$InstrumentSupport of com.oracle.truffle.api.impl.Accessor
public abstract InteropSupport = com.oracle.truffle.api.impl.Accessor$InteropSupport of com.oracle.truffle.api.impl.Accessor
public abstract LanguageSupport = com.oracle.truffle.api.impl.Accessor$LanguageSupport of com.oracle.truffle.api.impl.Accessor
ContextWeakReference = com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference of com.oracle.truffle.polyglot.PolyglotContextImpl
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
com.oracle.truffle.polyglot.PolyglotLanguageContext$1
final Generic = com.oracle.truffle.polyglot.PolyglotLanguageContext$Generic of com.oracle.truffle.polyglot.PolyglotLanguageContext
final Lazy = com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy of com.oracle.truffle.polyglot.PolyglotLanguageContext
private PolyglotUncaughtExceptionHandler = com.oracle.truffle.polyglot.PolyglotLanguageContext$PolyglotUncaughtExceptionHandler of com.oracle.truffle.polyglot.PolyglotLanguageContext
abstract ToGuestValueNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
final ToGuestValuesNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValuesNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
final ToHostValueNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
final ValueMigrationException = com.oracle.truffle.polyglot.PolyglotLanguageContext$ValueMigrationException of com.oracle.truffle.polyglot.PolyglotLanguageContext
abstract LocalLocation = com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation of com.oracle.truffle.polyglot.PolyglotLocals
public abstract UncaughtExceptionHandler = java.lang.Thread$UncaughtExceptionHandler of java.lang.Thread
public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
public abstract AbstractValueImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl