final class com.oracle.truffle.polyglot.PolyglotContextImpl extends org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl 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.PolyglotContextImpl
super_class: org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl
{
private static final com.oracle.truffle.api.TruffleLogger LOG;
descriptor: Lcom/oracle/truffle/api/TruffleLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.api.interop.InteropLibrary UNCACHED;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState singleContextState;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
flags: (0x0008) ACC_STATIC
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
final com.oracle.truffle.api.Assumption singleThreaded;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0010) ACC_FINAL
private final java.util.Map<java.lang.Thread, com.oracle.truffle.polyglot.PolyglotThreadInfo> threads;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Thread;Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;>;
volatile com.oracle.truffle.polyglot.PolyglotThreadInfo currentThreadInfo;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
flags: (0x0040) ACC_VOLATILE
volatile com.oracle.truffle.polyglot.PolyglotThreadInfo constantCurrentThreadInfo;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
volatile boolean interrupting;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile boolean cancelling;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile java.lang.String invalidMessage;
descriptor: Ljava/lang/String;
flags: (0x0040) ACC_VOLATILE
volatile boolean invalidResourceLimit;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile java.lang.Thread closingThread;
descriptor: Ljava/lang/Thread;
flags: (0x0040) ACC_VOLATILE
private final java.util.concurrent.locks.ReentrantLock closingLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
volatile boolean closed;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile boolean invalid;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile boolean disposing;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
final com.oracle.truffle.polyglot.PolyglotEngineImpl engine;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.polyglot.PolyglotLanguageContext[] contexts;
descriptor: [Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0010) ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
final java.lang.Object[] contextImpls;
descriptor: [Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
org.graalvm.polyglot.Context creatorApi;
descriptor: Lorg/graalvm/polyglot/Context;
flags: (0x0000)
org.graalvm.polyglot.Context currentApi;
descriptor: Lorg/graalvm/polyglot/Context;
flags: (0x0000)
final com.oracle.truffle.api.TruffleContext creatorTruffleContext;
descriptor: Lcom/oracle/truffle/api/TruffleContext;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.api.TruffleContext currentTruffleContext;
descriptor: Lcom/oracle/truffle/api/TruffleContext;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.polyglot.PolyglotContextImpl parent;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
flags: (0x0010) ACC_FINAL
volatile java.util.Map<java.lang.String, org.graalvm.polyglot.Value> polyglotBindings;
descriptor: Ljava/util/Map;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Value;>;
volatile org.graalvm.polyglot.Value polyglotHostBindings;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0040) ACC_VOLATILE
private final com.oracle.truffle.polyglot.PolyglotBindings polyglotBindingsObject;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotBindings;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final com.oracle.truffle.polyglot.PolyglotLanguage creator;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguage;
flags: (0x0010) ACC_FINAL
final java.util.Map<java.lang.String, java.lang.Object> creatorArguments;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
final com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference weakReference;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
flags: (0x0010) ACC_FINAL
final java.util.Set<com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator> subProcesses;
descriptor: Ljava/util/Set;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Set<Lcom/oracle/truffle/polyglot/ProcessHandlers$ProcessDecorator;>;
com.oracle.truffle.polyglot.PolyglotContextConfig config;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private volatile com.oracle.truffle.polyglot.FinalIntMap languageIndexMap;
descriptor: Lcom/oracle/truffle/polyglot/FinalIntMap;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private final java.util.List<com.oracle.truffle.polyglot.PolyglotContextImpl> childContexts;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
boolean inContextPreInitialization;
descriptor: Z
flags: (0x0000)
java.util.List<com.oracle.truffle.api.source.Source> sourcesToInvalidate;
descriptor: Ljava/util/List;
flags: (0x0000)
Signature: Ljava/util/List<Lcom/oracle/truffle/api/source/Source;>;
final java.util.concurrent.atomic.AtomicLong volatileStatementCounter;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0010) ACC_FINAL
long statementCounter;
descriptor: J
flags: (0x0000)
final long statementLimit;
descriptor: J
flags: (0x0010) ACC_FINAL
java.lang.Object[] contextLocals;
descriptor: [Ljava/lang/Object;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
private java.lang.Object[] singleThreadContextLocals;
descriptor: [Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
private long currentThreadLocalSingleThreadID;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL contextThreadLocals;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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=3, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
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.PolyglotContextImpl.$assertionsDisabled:Z
3: ldc "engine"
ldc Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLogger;
putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.LOG:Lcom/oracle/truffle/api/TruffleLogger;
4: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.UNCACHED:Lcom/oracle/truffle/api/interop/InteropLibrary;
5: new com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
dup
aconst_null
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
return
LocalVariableTable:
Start End Slot Name Signature
static java.lang.Object resetSingleContextState(boolean);
descriptor: (Z)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
astore 1
start local 1 1: new com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
dup
iload 0
ifeq 2
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
goto 3
StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
StackMap stack: new 1 new 1
2: aconst_null
StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
StackMap stack: new 1 new 1 com.oracle.truffle.polyglot.PolyglotContextImpl
3: invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 reuse Z
1 5 1 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
MethodParameters:
Name Flags
reuse
static com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState getSingleContextState();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
areturn
LocalVariableTable:
Start End Slot Name Signature
static void restoreSingleContextState(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 state Ljava/lang/Object;
MethodParameters:
Name Flags
state
static boolean isSingleContextAssumptionValid();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
1: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single threaded"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
2: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
3: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
4: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
5: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
6: aload 0
new com.oracle.truffle.polyglot.PolyglotBindings
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotBindings.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindingsObject:Lcom/oracle/truffle/polyglot/PolyglotBindings;
7: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
8: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
9: aload 0
ldc -1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
10: aload 0
new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
11: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
12: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
13: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
14: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
15: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
16: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
17: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotHostBindings:Lorg/graalvm/polyglot/Value;
18: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
19: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creator:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
20: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorArguments:Ljava/util/Map;
21: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
22: aload 0
lconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
23: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
24: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
void <init>(com.oracle.truffle.polyglot.PolyglotEngineImpl, com.oracle.truffle.polyglot.PolyglotContextConfig);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
1: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single threaded"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
2: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
3: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
4: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
5: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
6: aload 0
new com.oracle.truffle.polyglot.PolyglotBindings
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotBindings.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindingsObject:Lcom/oracle/truffle/polyglot/PolyglotBindings;
7: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
8: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
9: aload 0
ldc -1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
10: aload 0
new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
11: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
12: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
13: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
14: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creator:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
15: aload 0
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorArguments:Ljava/util/Map;
16: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
iconst_1
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createTruffleContext:(Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleContext;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
17: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
iconst_0
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createTruffleContext:(Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleContext;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
18: aload 0
new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
19: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
anewarray java.lang.Object
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
20: aload 0
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.createContextArray:()[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
21: aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 23
22: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
23: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig
StackMap stack:
aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
24: aload 0
aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
ifnull 25
aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimit:J
lconst_0
lcmp
ifeq 25
aload 2
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimit:J
goto 26
StackMap locals:
StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl
25: ldc 9223372036854775806
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig
StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl long
26: putfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
27: aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementCounter:J
28: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
29: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getConfiguredInstruments:()Ljava/util/Collection;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
30: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.notifyContextCreated:()V
31: aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.initializeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
32: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 33 1 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 33 2 config Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
MethodParameters:
Name Flags
engine
config
void <init>(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/Map;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
1: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Single threaded"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
2: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
3: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
4: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
5: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
6: aload 0
new com.oracle.truffle.polyglot.PolyglotBindings
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotBindings.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindingsObject:Lcom/oracle/truffle/polyglot/PolyglotBindings;
7: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
8: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
9: aload 0
ldc -1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
10: aload 0
new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
11: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 3
start local 3 12: aload 0
aload 3
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
13: aload 0
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
14: aload 0
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
15: aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creator:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
16: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorArguments:Ljava/util/Map;
17: aload 0
lconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
18: aload 0
new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
19: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.addChildContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
20: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
iconst_1
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createTruffleContext:(Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleContext;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
21: aload 0
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
iconst_0
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createTruffleContext:(Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleContext;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
22: aload 0
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
23: aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 25
24: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
aload 3
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
25: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.util.Map com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
anewarray java.lang.Object
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
26: aload 0
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.createContextArray:()[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
27: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
28: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.noInnerContexts:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
29: aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.initializeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
30: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 31 1 creator Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 31 2 langConfig Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
12 31 3 parent Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Signature: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
creator
langConfig
org.graalvm.options.OptionValues getInstrumentContextOptions(com.oracle.truffle.polyglot.PolyglotInstrument);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotInstrument;)Lorg/graalvm/options/OptionValues;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getInstrumentOptionValues:(Lcom/oracle/truffle/polyglot/PolyglotInstrument;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 1 1 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
MethodParameters:
Name Flags
instrument
public void resetLimits();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotLimits.reset:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
1: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyContextResetLimit:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
private com.oracle.truffle.polyglot.PolyglotLanguageContext[] createContextArray();
descriptor: ()[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
anewarray com.oracle.truffle.polyglot.PolyglotLanguageContext
astore 2
start local 2 2: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
start local 3 3: new com.oracle.truffle.polyglot.PolyglotLanguageContext
dup
aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
astore 4
start local 4 4: aload 2
iconst_0
aload 4
aastore
5: iconst_1
istore 5
start local 5 6: goto 10
7: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Collection com.oracle.truffle.polyglot.PolyglotLanguageContext[] java.util.Iterator com.oracle.truffle.polyglot.PolyglotLanguageContext int
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 6
start local 6 8: aload 2
iload 5
new com.oracle.truffle.polyglot.PolyglotLanguageContext
dup
aload 0
aload 6
invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
aastore
end local 6 9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
if_icmplt 7
end local 5 11: aload 4
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
pop
12: aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getContextImpl:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostLanguage$HostContext
aload 4
invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.initializeInternal:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)V
13: aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 14 1 languages Ljava/util/Collection<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
2 14 2 newContexts [Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
3 14 3 languageIterator Ljava/util/Iterator<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
4 14 4 hostContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
6 11 5 i I
8 9 6 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
static void initializeStaticContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
astore 1
start local 1 1: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 13
2: aload 1
dup
astore 2
monitorenter
3: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 9
4: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
ifnull 8
5: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
6: aload 1
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
7: goto 9
8: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
StackMap stack:
aload 1
aload 0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
9: StackMap locals:
StackMap stack:
aload 2
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 2
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 14 1 state Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
Exception table:
from to target type
3 10 11 any
11 12 11 any
MethodParameters:
Name Flags
context
static void disposeStaticContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
astore 1
start local 1 1: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 10
2: aload 1
dup
astore 2
monitorenter
3: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 6
4: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 5
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
aload 0
if_acmpeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
StackMap stack:
aload 1
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
6: StackMap locals:
StackMap stack:
aload 2
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 11 1 state Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
Exception table:
from to target type
3 7 8 any
8 9 8 any
MethodParameters:
Name Flags
context
static void invalidateStaticContextAssumption();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
astore 0
start local 0 1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 10
2: aload 0
dup
astore 1
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 6
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
5: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
6: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
StackMap stack:
aload 1
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 11 0 state Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
Exception table:
from to target type
3 7 8 any
8 9 8 any
com.oracle.truffle.polyglot.PolyglotLanguageContext getContext(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 1 1 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
MethodParameters:
Name Flags
language
java.lang.Object getContextImpl(com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
arraylength
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
if_icmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.inInterpreter:()Z
ifeq 4
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
aaload
astore 2
start local 2 3: goto 10
end local 2 4: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
5: getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.castArrayFixedLength:([Ljava/lang/Object;I)[Ljava/lang/Object;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
aaload
astore 2
start local 2 6: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.contextClass:Ljava/lang/Class;
astore 3
start local 3 7: getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 2
aload 3
iconst_1
aload 3
ldc Ljava/lang/Void;
if_acmpeq 8
iconst_1
goto 9
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object java.lang.Class
StackMap stack: com.oracle.truffle.api.impl.Accessor$RuntimeSupport java.lang.Object java.lang.Class int
8: iconst_0
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object java.lang.Class
StackMap stack: com.oracle.truffle.api.impl.Accessor$RuntimeSupport java.lang.Object java.lang.Class int int
9: iconst_1
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.unsafeCast:(Ljava/lang/Object;Ljava/lang/Class;ZZZ)Ljava/lang/Object;
astore 2
end local 3 10: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 17
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.contextClass:Ljava/lang/Class;
aload 2
ifnonnull 11
ldc Ljava/lang/Void;
goto 12
StackMap locals:
StackMap stack: java.lang.Class
11: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object
StackMap stack: java.lang.Class java.lang.Class
12: if_acmpeq 17
13: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Instable context class: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguage.contextClass:Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " vs. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: aload 2
ifnonnull 15
ldc Ljava/lang/Void;
goto 16
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object
StackMap stack: new 13 new 13 java.lang.StringBuilder
15: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object
StackMap stack: new 13 new 13 java.lang.StringBuilder java.lang.Class
16: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
17: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 18 1 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
3 4 2 contextImpl Ljava/lang/Object;
6 18 2 contextImpl Ljava/lang/Object;
7 10 3 castClass Ljava/lang/Class<*>;
MethodParameters:
Name Flags
language
com.oracle.truffle.polyglot.PolyglotLanguageContext getContextInitialized(com.oracle.truffle.polyglot.PolyglotLanguage, com.oracle.truffle.polyglot.PolyglotLanguage);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 3
start local 3 1: aload 3
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
pop
2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 3 1 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
0 3 2 accessingLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
1 3 3 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
MethodParameters:
Name Flags
language
accessingLanguage
void notifyContextCreated();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyContextCreated:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
private synchronized void addChildContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
ifnull 2
1: ldc "Adding child context into a closing context."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 4 1 child Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
MethodParameters:
Name Flags
child
static com.oracle.truffle.polyglot.PolyglotContextImpl currentNotEntered();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
astore 0
start local 0 1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 6
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.contextThreadLocal:Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.isSet:()Z
ifeq 4
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
areturn
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.contextThreadLocal:Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 singleContext Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
static com.oracle.truffle.polyglot.PolyglotContextImpl currentEntered(com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
2: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
astore 1
start local 1 3: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 6
4: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 2
start local 2 5: goto 7
end local 2 6: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
StackMap stack:
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.contextThreadLocal:Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.getEntered:()Ljava/lang/Object;
astore 2
start local 2 7: StackMap locals: java.lang.Object
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.inCompiledCode:()Z
ifeq 9
8: getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 2
ldc Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
iconst_1
iconst_1
iconst_1
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.unsafeCast:(Ljava/lang/Object;Ljava/lang/Class;ZZZ)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
areturn
9: StackMap locals:
StackMap stack:
aload 2
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 enteredInEngine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
3 10 1 state Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
5 6 2 context Ljava/lang/Object;
7 10 2 context Ljava/lang/Object;
MethodParameters:
Name Flags
enteredInEngine
static com.oracle.truffle.polyglot.PolyglotContextImpl requireContext();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 0
start local 0 1: aload 0
ifnonnull 4
2: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: ldc "There is no current context available."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
public synchronized void explicitEnter(org.graalvm.polyglot.Context);
descriptor: (Lorg/graalvm/polyglot/Context;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc "entered"
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkCreatorAccess:(Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 2
start local 2 2: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 3
start local 3 3: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 4
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 3
getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
aload 2
invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
end local 3 end local 2 5: goto 8
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
6: astore 2
start local 2 7: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 2 8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 9 1 sourceContext Lorg/graalvm/polyglot/Context;
2 5 2 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
3 5 3 current Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
7 8 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 5 6 Class java.lang.Throwable
MethodParameters:
Name Flags
sourceContext
public synchronized void explicitLeave(org.graalvm.polyglot.Context);
descriptor: (Lorg/graalvm/polyglot/Context;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "left"
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkCreatorAccess:(Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
3: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 2
start local 2 4: aload 2
getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
astore 3
start local 3 5: aload 3
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 6
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
ifnonnull 7
6: StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.LinkedList
StackMap stack:
ldc "The context is not entered explicity. A context can only be left if it was previously entered."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 3
invokevirtual java.util.LinkedList.removeLast:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
end local 3 end local 2 8: goto 11
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
9: astore 2
start local 2 10: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 2 11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 12 1 sourceContext Lorg/graalvm/polyglot/Context;
4 8 2 current Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
5 8 3 stack Ljava/util/LinkedList<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
10 11 2 t Ljava/lang/Throwable;
Exception table:
from to target type
2 8 9 Class java.lang.Throwable
MethodParameters:
Name Flags
sourceContext
private void checkCreatorAccess(org.graalvm.polyglot.Context, java.lang.String);
descriptor: (Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
if_acmpeq 2
1: ldc "Context instances that were received using Context.get() cannot be %s."
iconst_1
anewarray java.lang.Object
dup
iconst_0
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
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 3 1 context Lorg/graalvm/polyglot/Context;
0 3 2 operation Ljava/lang/String;
MethodParameters:
Name Flags
context
operation
com.oracle.truffle.polyglot.PolyglotContextImpl enterThreadChanged();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
flags: (0x0000)
Code:
stack=4, locals=9, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 1
start local 1 1: iconst_0
istore 3
start local 3 2: aload 0
dup
astore 4
monitorenter
3: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 5
start local 5 4: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkClosed:()V
5: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 6
aload 5
ifnonnull 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread top int com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 5
7: aload 5
ifnonnull 12
8: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.createThreadInfo:(Ljava/lang/Thread;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 5
9: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
ifeq 10
iconst_0
goto 11
StackMap locals:
StackMap stack:
10: iconst_1
StackMap locals:
StackMap stack: int
11: istore 3
12: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 13
aload 0
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
ifeq 13
iconst_1
goto 14
StackMap locals:
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 6
start local 6 15: iload 6
ifeq 17
16: aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkAllThreadAccesses:(Ljava/lang/Thread;Z)V
17: StackMap locals: int
StackMap stack:
iload 6
ifeq 19
18: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
19: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
astore 7
start local 7 20: iload 3
ifeq 24
21: aload 7
ifnull 23
aload 7
aload 1
if_acmpeq 23
22: ldc "Can not create new threads in closing context."
iconst_1
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;Z)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
23: StackMap locals: java.lang.Thread
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
aload 1
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
24: StackMap locals:
StackMap stack:
iload 3
ifeq 26
25: aload 0
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initializeThreadLocals:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
26: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.contextThreadLocal:Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.setReturnParent:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 2
start local 2 27: aload 5
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.enter:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
28: goto 32
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotContextImpl int com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo int java.lang.Thread
StackMap stack: java.lang.Throwable
29: astore 8
start local 8 30: invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getSingleContextState:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.set:(Ljava/lang/Object;)V
31: aload 8
athrow
end local 8 32: StackMap locals:
StackMap stack:
iload 6
ifeq 34
33: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.transitionToMultiThreaded:()V
34: StackMap locals:
StackMap stack:
iload 3
ifeq 36
35: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initializeNewThread:(Ljava/lang/Thread;)V
36: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
end local 7 end local 6 end local 5 37: aload 4
monitorexit
38: goto 41
end local 2 StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread top int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
39: aload 4
monitorexit
40: athrow
start local 2 41: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotContextImpl int
StackMap stack:
iload 3
ifeq 43
42: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyThreadStarted:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
43: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 44 1 current Ljava/lang/Thread;
27 39 2 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
41 44 2 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
2 44 3 needsInitialization Z
4 37 5 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
15 37 6 transitionToMultiThreading Z
20 37 7 closing Ljava/lang/Thread;
30 32 8 t Ljava/lang/Throwable;
Exception table:
from to target type
27 28 29 Class java.lang.Throwable
3 38 39 any
39 40 39 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
void setCachedThreadInfo(com.oracle.truffle.polyglot.PolyglotThreadInfo);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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.PolyglotContextImpl.closed:Z
ifne 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
ifnonnull 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
ifne 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
ifeq 4
2: StackMap locals:
StackMap stack:
aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
3: goto 7
4: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 7
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 7
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 7
6: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 8 1 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
info
synchronized void checkMultiThreadedAccess(com.oracle.truffle.polyglot.PolyglotThread);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotThread;)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 2
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActiveNotCancelled:()Z
ifeq 1
iconst_0
goto 3
StackMap locals:
StackMap stack:
1: iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 2
start local 2 4: aload 0
aload 1
iload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkAllThreadAccesses:(Ljava/lang/Thread;Z)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 6 1 newThread Lcom/oracle/truffle/polyglot/PolyglotThread;
4 6 2 singleThread Z
MethodParameters:
Name Flags
newThread
private void checkAllThreadAccesses(java.lang.Thread, boolean);
descriptor: (Ljava/lang/Thread;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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:
aconst_null
astore 3
start local 3 2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 21
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
3: aload 7
iload 5
aaload
astore 4
start local 4 4: aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifne 6
5: goto 20
6: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
iconst_1
istore 8
start local 8 7: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
iload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.isThreadAccessAllowed:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;Z)Z
ifne 9
8: iconst_0
istore 8
9: StackMap locals: int
StackMap stack:
iload 8
ifeq 16
10: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 10
goto 15
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[] int top java.util.Iterator
StackMap stack:
11: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 9
start local 9 12: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 9
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 15
13: iconst_0
istore 8
14: goto 16
end local 9 15: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
16: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[] int
StackMap stack:
iload 8
ifne 20
17: aload 3
ifnonnull 19
18: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
19: StackMap locals:
StackMap stack:
aload 3
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 4 20: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
21: iload 5
iload 6
if_icmplt 3
22: aload 3
ifnull 24
23: aload 1
iload 2
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.throwDeniedThreadAccess:(Ljava/lang/Thread;ZLjava/util/List;)Ljava/lang/RuntimeException;
athrow
24: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 25 1 enteringThread Ljava/lang/Thread;
0 25 2 singleThread Z
2 25 3 deniedLanguages Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
4 20 4 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
7 20 8 accessAllowed Z
12 15 9 seenThread Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
enteringThread
singleThread
com.oracle.truffle.polyglot.PolyglotThreadInfo leaveThreadChanged();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
dup
astore 2
monitorenter
1: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 3
start local 3 2: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 4
start local 4 4: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 5
aload 4
ifnonnull 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 4
astore 1
start local 1 6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
ifeq 8
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isLastActive:()Z
ifeq 8
7: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.notifyThreadClosed:()V
8: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.leave:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
9: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifne 11
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
ifne 11
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
ifne 11
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
ifne 11
10: aload 0
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
11: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
ifeq 14
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
ifne 14
12: invokestatic java.lang.Thread.interrupted:()Z
pop
13: aload 0
invokevirtual java.lang.Object.notifyAll:()V
end local 4 end local 3 14: StackMap locals:
StackMap stack:
aload 2
monitorexit
15: goto 18
end local 1 StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
16: aload 2
monitorexit
17: athrow
start local 1 18: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
6 16 1 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
18 19 1 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
2 14 3 current Ljava/lang/Thread;
4 14 4 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
Exception table:
from to target type
1 15 16 any
16 17 16 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
private void initializeNewThread(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 4
3: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 2
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
end local 2 4: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 7 1 thread Ljava/lang/Thread;
2 4 2 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
MethodParameters:
Name Flags
thread
long getStatementsExecuted();
descriptor: ()J
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 3
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementCounter:J
lstore 1
start local 1 2: goto 4
end local 1 3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 1
start local 1 4: StackMap locals: long
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
lload 1
lsub
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
2 3 1 count J
4 5 1 count J
private void transitionToMultiThreaded();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()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.PolyglotContextImpl.$assertionsDisabled:Z
ifne 2
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 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.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 7
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
3: aload 4
iload 2
aaload
astore 1
start local 1 4: aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 6
5: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 1
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
end local 1 6: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
iload 3
if_icmplt 3
8: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
9: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementCounter:J
lsub
lstore 1
start local 1 10: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
lload 1
lneg
invokevirtual java.util.concurrent.atomic.AtomicLong.getAndAdd:(J)J
pop2
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
4 6 1 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
10 12 1 statementsExecuted J
private com.oracle.truffle.polyglot.PolyglotThreadInfo createThreadInfo(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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:
new com.oracle.truffle.polyglot.PolyglotThreadInfo
dup
aload 0
aload 1
invokespecial com.oracle.truffle.polyglot.PolyglotThreadInfo.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Thread;)V
astore 2
start local 2 2: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isSingleThreaded:()Z
istore 3
start local 3 3: aconst_null
astore 4
start local 4 4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 12
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo int java.util.List top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
5: aload 8
iload 6
aaload
astore 5
start local 5 6: aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 11
7: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 5
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
iload 3
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.isThreadAccessAllowed:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;Z)Z
ifne 11
8: aload 4
ifnonnull 10
9: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
10: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo int java.util.List com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
aload 4
aload 5
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 11: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo int java.util.List top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
12: iload 6
iload 7
if_icmplt 5
13: aload 4
ifnull 15
14: aload 1
iload 3
aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.throwDeniedThreadAccess:(Ljava/lang/Thread;ZLjava/util/List;)Ljava/lang/RuntimeException;
athrow
15: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo int java.util.List
StackMap stack:
aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 16 1 current Ljava/lang/Thread;
2 16 2 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
3 16 3 singleThread Z
4 16 4 deniedLanguages Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
6 11 5 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
MethodParameters:
Name Flags
current
static java.lang.RuntimeException throwDeniedThreadAccess(java.lang.Thread, boolean, java.util.List<com.oracle.truffle.polyglot.PolyglotLanguage>);
descriptor: (Ljava/lang/Thread;ZLjava/util/List;)Ljava/lang/RuntimeException;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
ldc ""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 4
start local 4 1: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 6
StackMap locals: java.lang.Thread int java.util.List top java.lang.StringBuilder top java.util.Iterator
StackMap stack:
2: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 5
start local 5 3: aload 4
invokevirtual java.lang.StringBuilder.length:()I
ifeq 5
4: aload 4
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: StackMap locals: java.lang.Thread int java.util.List top java.lang.StringBuilder com.oracle.truffle.polyglot.PolyglotLanguage java.util.Iterator
StackMap stack:
aload 4
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 5 6: StackMap locals: java.lang.Thread int java.util.List top java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: iload 1
ifeq 10
8: ldc "Single threaded access requested by thread %s but is not allowed for language(s) %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;
astore 3
start local 3 9: goto 11
end local 3 10: StackMap locals: java.lang.Thread int java.util.List top java.lang.StringBuilder
StackMap stack:
ldc "Multi threaded access requested by thread %s but is not allowed for language(s) %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;
astore 3
start local 3 11: StackMap locals: java.lang.Thread int java.util.List java.lang.String java.lang.StringBuilder
StackMap stack:
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 current Ljava/lang/Thread;
0 12 1 accessSingleThreaded Z
0 12 2 deniedLanguages Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
9 10 3 message Ljava/lang/String;
11 12 3 message Ljava/lang/String;
1 12 4 languagesString Ljava/lang/StringBuilder;
3 6 5 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
Signature: (Ljava/lang/Thread;ZLjava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;)Ljava/lang/RuntimeException;
MethodParameters:
Name Flags
current
accessSingleThreaded
deniedLanguages
org.graalvm.polyglot.Value findLegacyExportedSymbol(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.findLegacyExportedSymbol:(Ljava/lang/String;Z)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
areturn
3: StackMap locals: org.graalvm.polyglot.Value
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.findLegacyExportedSymbol:(Ljava/lang/String;Z)Lorg/graalvm/polyglot/Value;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 4 1 symbolName Ljava/lang/String;
1 4 2 legacySymbol Lorg/graalvm/polyglot/Value;
MethodParameters:
Name Flags
symbolName
private org.graalvm.polyglot.Value findLegacyExportedSymbol(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 7
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String int top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
1: aload 6
iload 4
aaload
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 6
3: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 3
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
iload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.findExportedSymbol:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/String;Z)Ljava/lang/Object;
astore 7
start local 7 4: aload 7
ifnull 6
5: aload 3
aload 7
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
areturn
end local 7 end local 3 6: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 5
if_icmplt 1
8: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 9 1 name Ljava/lang/String;
0 9 2 onlyExplicit Z
2 6 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
4 6 7 s Ljava/lang/Object;
MethodParameters:
Name Flags
name
onlyExplicit
public org.graalvm.polyglot.Value getBindings(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.requirePublicLanguage:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
astore 2
start local 2 1: aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 3
start local 3 2: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 3
aload 3
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
StackMap stack:
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 4
start local 4 4: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifne 6
5: aload 3
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
pop
6: StackMap locals: java.lang.Object
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getHostBindings:()Lorg/graalvm/polyglot/Value;
astore 7
7: aload 3
aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
8: aload 7
areturn
9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 10: aload 3
aload 5
iconst_1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 5 11: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
12: aload 3
aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
13: aload 6
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 14 1 languageId Ljava/lang/String;
1 14 2 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
2 14 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
4 14 4 prev Ljava/lang/Object;
10 11 5 e Ljava/lang/Throwable;
Exception table:
from to target type
4 7 9 Class java.lang.Throwable
4 7 11 any
9 11 11 any
MethodParameters:
Name Flags
languageId
public org.graalvm.polyglot.Value getPolyglotBindings();
descriptor: ()Lorg/graalvm/polyglot/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkClosed:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotHostBindings:Lorg/graalvm/polyglot/Value;
astore 1
start local 1 2: aload 1
ifnonnull 5
3: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initPolyglotBindings:()V
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotHostBindings:Lorg/graalvm/polyglot/Value;
astore 1
5: StackMap locals: org.graalvm.polyglot.Value
StackMap stack:
aload 1
6: areturn
end local 1 7: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
astore 1
start local 1 8: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
2 7 1 bindings Lorg/graalvm/polyglot/Value;
8 9 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 6 7 Class java.lang.Throwable
public java.util.Map<java.lang.String, org.graalvm.polyglot.Value> getPolyglotGuestBindings();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
astore 1
start local 1 1: aload 1
ifnonnull 4
2: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initPolyglotBindings:()V
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
astore 1
4: StackMap locals: java.util.Map
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 5 1 bindings Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Value;>;
Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Value;>;
private void initPolyglotBindings();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
ifnonnull 5
2: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
3: new com.oracle.truffle.polyglot.PolyglotBindings
dup
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
invokespecial com.oracle.truffle.polyglot.PolyglotBindings.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)V
astore 2
start local 2 4: aload 0
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 2
new com.oracle.truffle.polyglot.PolyglotBindingsValue
dup
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 2
invokespecial com.oracle.truffle.polyglot.PolyglotBindingsValue.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotBindings;)V
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newValue:(Ljava/lang/Object;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotHostBindings:Lorg/graalvm/polyglot/Value;
end local 2 5: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 1
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
4 5 2 bindings Lcom/oracle/truffle/polyglot/PolyglotBindings;
Exception table:
from to target type
1 6 7 any
7 8 7 any
public java.lang.Object getPolyglotBindingsObject();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindingsObject:Lcom/oracle/truffle/polyglot/PolyglotBindings;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
void checkClosed();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
ifeq 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 2
1: aload 0
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.createCancelException:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelExecution;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifeq 4
3: ldc "The Context is already closed."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
com.oracle.truffle.polyglot.PolyglotLanguageContext getHostContext();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
iconst_0
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
com.oracle.truffle.polyglot.HostLanguage$HostContext getHostContextImpl();
descriptor: ()Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getContextImpl:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostLanguage$HostContext
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
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.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
com.oracle.truffle.polyglot.PolyglotLanguageContext getLanguageContext(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getLanguageContextImpl:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getLanguageContextBoundary:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 3 1 languageClass Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
MethodParameters:
Name Flags
languageClass
private com.oracle.truffle.polyglot.PolyglotLanguageContext getLanguageContextBoundary(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getLanguageContextImpl:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 1 1 languageClass Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
languageClass
com.oracle.truffle.polyglot.PolyglotLanguageContext findLanguageContext(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage>);
descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0000)
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 1
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguage:(Ljava/lang/Class;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
areturn
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 10
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Class com.oracle.truffle.polyglot.PolyglotLanguage top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
4: aload 6
iload 4
aaload
astore 3
start local 3 5: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 9
6: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 3
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;
astore 7
start local 7 7: aload 1
ldc Lcom/oracle/truffle/api/TruffleLanguage;
if_acmpeq 9
aload 1
aload 7
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 9
8: aload 3
areturn
end local 7 end local 3 9: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
iload 5
if_icmplt 4
11: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 3
start local 3 12: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 17
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Class com.oracle.truffle.polyglot.PolyglotLanguage java.util.Set top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
13: aload 7
iload 5
aaload
astore 4
start local 4 14: aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 16
15: aload 3
aload 4
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.getClassName:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 16: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
iload 6
if_icmplt 13
18: new java.lang.StringBuilder
dup
ldc "Cannot find language "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " among "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 19 1 languageClazz Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage;>;
1 19 2 directLanguage Lcom/oracle/truffle/polyglot/PolyglotLanguage;
5 9 3 lang Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
7 9 7 language Lcom/oracle/truffle/api/TruffleLanguage<*>;
12 19 3 languageNames Ljava/util/Set<Ljava/lang/String;>;
14 16 4 lang Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
MethodParameters:
Name Flags
languageClazz
private com.oracle.truffle.polyglot.PolyglotLanguageContext getLanguageContextImpl(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
aload 1
invokevirtual com.oracle.truffle.polyglot.FinalIntMap.get:(Ljava/lang/Object;)I
goto 3
StackMap locals: com.oracle.truffle.polyglot.FinalIntMap
StackMap stack:
2: iconst_m1
StackMap locals:
StackMap stack: int
3: istore 3
start local 3 4: iload 3
iconst_m1
if_icmpne 18
5: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
6: aload 0
dup
astore 4
monitorenter
7: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
ifnonnull 9
8: aload 0
new com.oracle.truffle.polyglot.FinalIntMap
dup
invokespecial com.oracle.truffle.polyglot.FinalIntMap.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
9: StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
aload 1
invokevirtual com.oracle.truffle.polyglot.FinalIntMap.get:(Ljava/lang/Object;)I
istore 3
10: iload 3
iconst_m1
if_icmpne 14
11: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.findLanguageContext:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 5
start local 5 12: aload 5
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
istore 3
13: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
aload 1
iload 3
invokevirtual com.oracle.truffle.polyglot.FinalIntMap.put:(Ljava/lang/Object;I)V
end local 5 14: StackMap locals:
StackMap stack:
aload 4
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 4
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
iload 3
aaload
astore 4
start local 4 19: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 20 1 languageClass Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
1 20 2 map Lcom/oracle/truffle/polyglot/FinalIntMap;
4 20 3 indexValue I
12 14 5 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
19 20 4 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
Exception table:
from to target type
7 15 16 any
16 17 16 any
Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
MethodParameters:
Name Flags
languageClass
public boolean initializeLanguage(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.requirePublicLanguage:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
astore 2
start local 2 1: aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 3
start local 3 2: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 3
aload 3
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
StackMap stack:
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 4
start local 4 4: aload 3
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
5: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifne 14
6: aload 3
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
istore 7
7: aload 3
aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
8: iload 7
ireturn
9: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
StackMap stack: java.lang.Throwable
astore 5
start local 5 10: aload 3
aload 5
iconst_1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 5 11: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
12: aload 3
aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
13: aload 6
athrow
14: StackMap locals:
StackMap stack:
aload 3
aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
15: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 16 1 languageId Ljava/lang/String;
1 16 2 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
2 16 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
4 16 4 prev Ljava/lang/Object;
10 11 5 t Ljava/lang/Throwable;
Exception table:
from to target type
4 7 9 Class java.lang.Throwable
4 7 11 any
9 11 11 any
MethodParameters:
Name Flags
languageId
public org.graalvm.polyglot.Value parse(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.requirePublicLanguage:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
astore 3
start local 3 1: aload 0
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 4
start local 4 2: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$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.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
StackMap stack:
aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 5
start local 5 4: aload 2
checkcast com.oracle.truffle.api.source.Source
astore 6
start local 6 5: aload 4
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
6: aload 4
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
pop
7: aload 4
aconst_null
aload 6
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.parseCached:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
astore 7
start local 7 8: aload 4
new com.oracle.truffle.polyglot.PolyglotParsedEval
dup
aload 4
aload 6
aload 7
invokespecial com.oracle.truffle.polyglot.PolyglotParsedEval.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/CallTarget;)V
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 9
9: aload 4
aload 5
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
10: aload 9
areturn
end local 7 end local 6 11: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
StackMap stack: java.lang.Throwable
astore 6
start local 6 12: aload 4
aload 6
iconst_1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 6 13: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
14: aload 4
aload 5
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
15: aload 8
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 16 1 languageId Ljava/lang/String;
0 16 2 sourceImpl Ljava/lang/Object;
1 16 3 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
2 16 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
4 16 5 prev Ljava/lang/Object;
5 11 6 source Lcom/oracle/truffle/api/source/Source;
8 11 7 target Lcom/oracle/truffle/api/CallTarget;
12 13 6 e Ljava/lang/Throwable;
Exception table:
from to target type
4 9 11 Class java.lang.Throwable
4 9 13 any
11 13 13 any
MethodParameters:
Name Flags
languageId
sourceImpl
public org.graalvm.polyglot.Value eval(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.requirePublicLanguage:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
astore 3
start local 3 1: aload 0
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 4
start local 4 2: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$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.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
StackMap stack:
aload 4
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 5
start local 5 4: aload 2
checkcast com.oracle.truffle.api.source.Source
astore 6
start local 6 5: aload 4
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
6: aload 4
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
pop
7: aload 4
aconst_null
aload 6
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.parseCached:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
astore 7
start local 7 8: aload 7
getstatic com.oracle.truffle.polyglot.PolyglotImpl.EMPTY_ARGS:[Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 9: aload 4
aload 8
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 9
start local 9 10: goto 13
end local 9 StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object com.oracle.truffle.api.source.Source com.oracle.truffle.api.CallTarget java.lang.Object
StackMap stack: java.lang.RuntimeException
11: astore 10
start local 10 12: new java.lang.AssertionError
dup
ldc "Language %s returned an invalid return value %s. Must be an interop value."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 8
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 10
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 10 start local 9 13: StackMap locals: org.graalvm.polyglot.Value
StackMap stack:
aload 6
invokevirtual com.oracle.truffle.api.source.Source.isInteractive:()Z
ifeq 15
14: aload 4
aload 8
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.printResult:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
aload 9
astore 12
16: aload 4
aload 5
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
17: aload 12
areturn
end local 9 end local 8 end local 7 end local 6 18: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
StackMap stack: java.lang.Throwable
astore 6
start local 6 19: aload 4
aload 6
iconst_1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 6 20: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
21: aload 4
aload 5
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
22: aload 11
athrow
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 23 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 23 1 languageId Ljava/lang/String;
0 23 2 sourceImpl Ljava/lang/Object;
1 23 3 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
2 23 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
4 23 5 prev Ljava/lang/Object;
5 18 6 source Lcom/oracle/truffle/api/source/Source;
8 18 7 target Lcom/oracle/truffle/api/CallTarget;
9 18 8 result Ljava/lang/Object;
10 11 9 hostValue Lorg/graalvm/polyglot/Value;
13 18 9 hostValue Lorg/graalvm/polyglot/Value;
12 13 10 e Ljava/lang/RuntimeException;
19 20 6 e Ljava/lang/Throwable;
Exception table:
from to target type
9 10 11 Class java.lang.NullPointerException
9 10 11 Class java.lang.ClassCastException
4 16 18 Class java.lang.Throwable
4 16 20 any
18 20 20 any
MethodParameters:
Name Flags
languageId
sourceImpl
private com.oracle.truffle.polyglot.PolyglotLanguage requirePublicLanguage(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
ifeq 5
2: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.requirePublicLanguage:(Ljava/lang/String;)Lorg/graalvm/polyglot/Language;
pop
3: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aconst_null
areturn
5: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 6 1 languageId Ljava/lang/String;
1 6 2 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
MethodParameters:
Name Flags
languageId
static void printResult(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.Object);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, 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.isVisible:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.UNCACHED:Lcom/oracle/truffle/api/interop/InteropLibrary;
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.UNCACHED:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageView:(Ljava/lang/Object;)Ljava/lang/Object;
iconst_1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.toDisplayString:(Ljava/lang/Object;Z)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 3: goto 6
end local 2 StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
4: astore 3
start local 3 5: aload 3
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 3 start local 2 6: StackMap locals: java.lang.String
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;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.out:Ljava/io/OutputStream;
astore 3
start local 3 7: aload 3
aload 2
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.io.OutputStream.write:([B)V
8: aload 3
ldc "line.separator"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.io.OutputStream.write:([B)V
end local 3 9: goto 12
StackMap locals:
StackMap stack: java.io.IOException
10: astore 3
start local 3 11: new java.lang.IllegalStateException
dup
aload 3
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 13 1 result Ljava/lang/Object;
3 4 2 stringResult Ljava/lang/String;
6 13 2 stringResult Ljava/lang/String;
5 6 3 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
7 9 3 out Ljava/io/OutputStream;
11 12 3 ioex Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class com.oracle.truffle.api.interop.UnsupportedMessageException
6 9 10 Class java.io.IOException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
languageContext
result
public org.graalvm.polyglot.Engine getEngineImpl(org.graalvm.polyglot.Context);
descriptor: (Lorg/graalvm/polyglot/Context;)Lorg/graalvm/polyglot/Engine;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
if_acmpne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.currentApi:Lorg/graalvm/polyglot/Engine;
StackMap locals:
StackMap stack: org.graalvm.polyglot.Engine
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 3 1 sourceContext Lorg/graalvm/polyglot/Context;
MethodParameters:
Name Flags
sourceContext
public void close(org.graalvm.polyglot.Context, boolean);
descriptor: (Lorg/graalvm/polyglot/Context;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc "closed"
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkCreatorAccess:(Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
1: aload 0
iload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeAndMaybeWait:(Z)V
2: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 3
start local 3 4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 3 5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 6 1 sourceContext Lorg/graalvm/polyglot/Context;
0 6 2 cancelIfExecuting Z
4 5 3 t Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
MethodParameters:
Name Flags
sourceContext
cancelIfExecuting
void cancel(boolean, java.lang.String, boolean);
descriptor: (ZLjava/lang/String;Z)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
aload 2
ifnonnull 1
ldc "Context execution was cancelled."
goto 2
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int java.lang.String int
StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl int
1: aload 2
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int java.lang.String int
StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl int java.lang.String
2: invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invalidate:(ZLjava/lang/String;)Z
istore 4
start local 4 3: iload 3
ifeq 5
iload 4
ifeq 5
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifne 5
4: aload 0
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeAndMaybeWait:(Z)V
5: StackMap locals: int
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 6 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 6 1 resourceLimit Z
0 6 2 message Ljava/lang/String;
0 6 3 wait Z
3 6 4 invalidated Z
MethodParameters:
Name Flags
resourceLimit
message
wait
void closeAndMaybeWait(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iload 1
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
istore 2
start local 2 1: iload 1
ifeq 4
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCancelHandler:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
iconst_1
anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
dup
iconst_0
aload 0
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler.cancel:(Ljava/util/List;)V
3: goto 6
StackMap locals: int
StackMap stack:
4: iload 2
ifne 6
5: ldc "The context is currently executing on another thread. Set cancelIfExecuting to true to stop the execution on this thread."
iconst_0
anewarray java.lang.Object
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkSubProcessFinished:()V
7: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
ifeq 9
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
ifnonnull 9
8: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
iload 1
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 10 1 cancelIfExecuting Z
1 10 2 closeCompleted Z
MethodParameters:
Name Flags
cancelIfExecuting
private void finishInterruptForChildContexts();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
dup
astore 2
monitorenter
1: aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
invokeinterface java.util.List.size:()I
anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
astore 1
start local 1 3: aload 2
monitorexit
4: goto 7
end local 1 StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
start local 1 7: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 11
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
8: aload 5
iload 3
aaload
astore 2
start local 2 9: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.finishInterruptForChildContexts:()V
end local 2 10: iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
iload 4
if_icmplt 8
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
3 5 1 childContextsToInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
7 13 1 childContextsToInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
9 10 2 childCtx Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Exception table:
from to target type
1 4 5 any
5 6 5 any
private void interruptChildContexts();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
dup
astore 2
monitorenter
1: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 3
start local 3 2: aload 3
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
if_acmpeq 4
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActive:()Z
ifeq 4
3: ldc "Cannot interrupt context from a thread where its child context is active."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
5: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
invokeinterface java.util.List.size:()I
anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
astore 1
end local 3 start local 1 7: aload 2
monitorexit
8: goto 11
end local 1 StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
start local 1 11: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 15
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
12: aload 5
iload 3
aaload
astore 2
start local 2 13: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.interruptChildContexts:()V
end local 2 14: iinc 3 1
StackMap locals:
StackMap stack:
15: iload 3
iload 4
if_icmplt 12
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
7 9 1 childContextsToInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
11 17 1 childContextsToInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
2 7 3 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
13 14 2 childCtx Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Exception table:
from to target type
1 8 9 any
9 10 9 any
public boolean interrupt(org.graalvm.polyglot.Context, java.time.Duration);
descriptor: (Lorg/graalvm/polyglot/Context;Ljava/time/Duration;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=19, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc "interrupted"
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkCreatorAccess:(Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
ifnull 3
2: ldc "Cannot interrupt inner context separately."
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.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
4: invokestatic java.lang.System.currentTimeMillis:()J
lstore 3
start local 3 5: iconst_0
istore 6
start local 6 6: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long top int
StackMap stack:
iload 6
ifeq 10
7: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
8: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: iconst_0
istore 6
10: StackMap locals:
StackMap stack:
aload 0
dup
astore 7
monitorenter
11: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifeq 14
12: aload 7
monitorexit
13: iconst_1
ireturn
14: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
ifeq 18
15: iconst_1
istore 6
16: aload 7
monitorexit
17: goto 6
18: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
astore 8
start local 8 19: aload 8
ifnull 26
20: aload 8
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 23
21: aload 7
monitorexit
22: iconst_1
ireturn
23: StackMap locals: java.lang.Thread
StackMap stack:
iconst_1
istore 6
24: aload 7
monitorexit
25: goto 6
26: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 9
start local 9 27: aload 9
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
if_acmpeq 29
aload 9
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActive:()Z
ifeq 29
28: ldc "Cannot interrupt context from a thread where the context is active."
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
29: StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
30: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
31: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
invokeinterface java.util.List.size:()I
anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
astore 5
start local 5 32: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
33: aload 7
monitorexit
34: goto 37
end local 9 end local 8 end local 5 35: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long top int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
aload 7
monitorexit
36: athrow
start local 5 37: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int
StackMap stack:
aload 5
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 41
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
38: aload 10
iload 8
aaload
astore 7
start local 7 39: aload 7
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.interruptChildContexts:()V
end local 7 40: iinc 8 1
StackMap locals:
StackMap stack:
41: iload 8
iload 9
if_icmplt 38
42: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCancelHandler:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
aload 0
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
lload 3
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler.cancel:(Ljava/util/List;JLjava/time/Duration;)Z
istore 12
43: aload 0
dup
astore 14
monitorenter
44: aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
45: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
invokeinterface java.util.List.size:()I
anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
astore 13
start local 13 46: aload 14
monitorexit
47: goto 50
end local 13 StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top top int top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
48: aload 14
monitorexit
49: athrow
start local 13 50: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top top int com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
aload 13
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 54
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top top int com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
51: aload 17
iload 15
aaload
astore 14
start local 14 52: aload 14
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.finishInterruptForChildContexts:()V
end local 14 53: iinc 15 1
StackMap locals:
StackMap stack:
54: iload 15
iload 16
if_icmplt 51
end local 13 55: goto 59
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top top int
StackMap stack: java.lang.Throwable
56: astore 18
57: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
58: aload 18
athrow
59: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
60: iload 12
ireturn
61: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int
StackMap stack: java.lang.Throwable
astore 11
62: aload 0
dup
astore 14
monitorenter
63: aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
64: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
invokeinterface java.util.List.size:()I
anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
astore 13
start local 13 65: aload 14
monitorexit
66: goto 69
end local 13 StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top java.lang.Throwable top top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
67: aload 14
monitorexit
68: athrow
start local 13 69: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top java.lang.Throwable top com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
aload 13
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 73
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top java.lang.Throwable top com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
70: aload 17
iload 15
aaload
astore 14
start local 14 71: aload 14
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.finishInterruptForChildContexts:()V
end local 14 72: iinc 15 1
StackMap locals:
StackMap stack:
73: iload 15
iload 16
if_icmplt 70
end local 13 74: goto 78
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top java.lang.Throwable
StackMap stack: java.lang.Throwable
75: astore 18
76: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
77: aload 18
athrow
78: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
79: aload 11
athrow
end local 6 end local 5 end local 3 80: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration
StackMap stack: java.lang.Throwable
astore 3
start local 3 81: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 82 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 82 1 sourceContext Lorg/graalvm/polyglot/Context;
0 82 2 timeout Ljava/time/Duration;
5 80 3 startMillis J
32 35 5 childContextsToInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
37 80 5 childContextsToInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
6 80 6 waitForCloseOrInterrupt Z
19 35 8 localClosingThread Ljava/lang/Thread;
27 35 9 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
39 40 7 childCtx Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
46 48 13 childContextsToFinishInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
50 55 13 childContextsToFinishInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
65 67 13 childContextsToFinishInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
69 74 13 childContextsToFinishInterrupt [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
52 53 14 childCtx Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
71 72 14 childCtx Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
81 82 3 thr Ljava/lang/Throwable;
Exception table:
from to target type
11 13 35 any
14 17 35 any
18 22 35 any
23 25 35 any
26 34 35 any
35 36 35 any
44 47 48 any
48 49 48 any
43 56 56 any
37 43 61 any
63 66 67 any
67 68 67 any
62 75 75 any
0 13 80 Class java.lang.Throwable
14 22 80 Class java.lang.Throwable
23 60 80 Class java.lang.Throwable
61 80 80 Class java.lang.Throwable
MethodParameters:
Name Flags
sourceContext
timeout
public org.graalvm.polyglot.Value asValue(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 2
start local 2 1: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 2
aload 2
ifnonnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
StackMap stack:
aload 2
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 3
start local 3 3: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkClosed:()V
4: aload 1
instanceof org.graalvm.polyglot.Value
ifeq 12
5: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 1
checkcast org.graalvm.polyglot.Value
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 5
start local 5 6: aload 5
getfield com.oracle.truffle.polyglot.PolyglotValue.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
ifnull 10
aload 5
getfield com.oracle.truffle.polyglot.PolyglotValue.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
aload 0
if_acmpne 10
7: aload 1
checkcast org.graalvm.polyglot.Value
astore 7
8: aload 2
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
9: aload 7
areturn
10: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object top com.oracle.truffle.polyglot.PolyglotValue
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 4
end local 5 start local 4 11: goto 18
end local 4 StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
StackMap stack:
12: aload 1
invokestatic com.oracle.truffle.polyglot.HostWrapper.isInstance:(Ljava/lang/Object;)Z
ifeq 17
13: aload 1
invokestatic com.oracle.truffle.polyglot.HostWrapper.asInstance:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostWrapper;
invokeinterface com.oracle.truffle.polyglot.HostWrapper.getLanguageContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 4
start local 4 14: aload 0
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
if_acmpeq 18
15: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 4
16: goto 18
end local 4 17: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 4
start local 4 18: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
StackMap stack:
aload 4
aload 4
aconst_null
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.toGuestValue:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 7
19: aload 2
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
20: aload 7
areturn
end local 4 21: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
StackMap stack: java.lang.Throwable
astore 4
start local 4 22: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 4
iconst_1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
athrow
end local 4 23: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
24: aload 2
aload 3
invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
25: aload 6
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 26 1 hostValue Ljava/lang/Object;
1 26 2 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
3 26 3 prev Ljava/lang/Object;
11 12 4 targetLanguageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
14 17 4 targetLanguageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
18 21 4 targetLanguageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
6 11 5 value Lcom/oracle/truffle/polyglot/PolyglotValue;
22 23 4 e Ljava/lang/Throwable;
Exception table:
from to target type
3 8 21 Class java.lang.Throwable
10 19 21 Class java.lang.Throwable
3 8 23 any
10 19 23 any
21 23 23 any
MethodParameters:
Name Flags
hostValue
void waitForClose();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: goto 8
1: StackMap locals:
StackMap stack:
aload 0
dup
astore 1
monitorenter
2: aload 0
ldc 1000
invokevirtual java.lang.Object.wait:(J)V
3: aload 1
monitorexit
4: goto 8
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.InterruptedException
pop
8: StackMap locals:
StackMap stack:
aload 0
iconst_0
iconst_1
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
ifeq 1
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Exception table:
from to target type
2 4 5 any
5 6 5 any
1 7 7 Class java.lang.InterruptedException
boolean waitForThreads(long, long);
descriptor: (JJ)Z
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 3 0: aload 0
dup
astore 5
monitorenter
1: invokestatic java.lang.System.currentTimeMillis:()J
lload 1
lsub
lstore 6
start local 6 2: goto 10
3: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl long
StackMap stack:
lload 3
lconst_0
lcmp
ifne 6
4: aload 0
invokevirtual java.lang.Object.wait:()V
5: goto 9
6: StackMap locals:
StackMap stack:
aload 0
lload 3
lload 6
lsub
invokevirtual java.lang.Object.wait:(J)V
7: goto 9
StackMap locals:
StackMap stack: java.lang.InterruptedException
8: pop
9: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lload 1
lsub
lstore 6
10: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
ifeq 11
lload 3
lconst_0
lcmp
ifeq 3
lload 6
lload 3
lcmp
iflt 3
11: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
ifeq 12
iconst_0
goto 13
StackMap locals:
StackMap stack:
12: iconst_1
StackMap locals:
StackMap stack: int
13: aload 5
monitorexit
14: ireturn
end local 6 15: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl long long com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
aload 5
monitorexit
16: athrow
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 17 1 startMillis J
0 17 3 timeoutMillis J
2 15 6 timeElapsed J
Exception table:
from to target type
3 7 8 Class java.lang.InterruptedException
1 14 15 any
15 16 15 any
MethodParameters:
Name Flags
startMillis
timeoutMillis
boolean isSingleThreaded();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
java.util.Map<java.lang.Thread, com.oracle.truffle.polyglot.PolyglotThreadInfo> getSeenThreads();
descriptor: ()Ljava/util/Map;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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.PolyglotContextImpl.threads:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Signature: ()Ljava/util/Map<Ljava/lang/Thread;Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;>;
boolean isActiveNotCancelled();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActiveNotCancelled:(Z)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
synchronized boolean isActiveNotCancelled(boolean);
descriptor: (Z)Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 2
start local 2 2: iload 1
ifne 3
aload 2
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isPolyglotThread:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
ifne 5
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.Iterator
StackMap stack:
3: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
ifeq 5
4: iconst_1
ireturn
end local 2 5: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 7 1 includePolyglotThreads Z
2 5 2 seenTinfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
includePolyglotThreads
synchronized boolean isActive();
descriptor: ()Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 1
start local 1 2: aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActive:()Z
ifeq 4
3: iconst_1
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
2 4 1 seenTinfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
synchronized boolean isActiveNotCancelled(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
if_acmpne 3
2: StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 4 1 thread Ljava/lang/Thread;
1 4 2 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
thread
synchronized boolean isActive(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
if_acmpne 3
2: StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActive:()Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 4 1 thread Ljava/lang/Thread;
1 4 2 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
thread
com.oracle.truffle.polyglot.PolyglotThreadInfo getFirstActiveOtherThread(boolean);
descriptor: (Z)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 2
start local 2 3: iload 1
ifne 5
aload 2
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isPolyglotThread:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
ifeq 5
4: goto 7
5: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.Iterator
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isCurrent:()Z
ifne 7
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
ifeq 7
6: aload 2
areturn
end local 2 7: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
8: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 9 1 includePolyglotThreads Z
3 7 2 otherInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
includePolyglotThreads
boolean hasActiveOtherThread(boolean);
descriptor: (Z)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getFirstActiveOtherThread:(Z)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 2 1 includePolyglotThreads Z
MethodParameters:
Name Flags
includePolyglotThreads
synchronized void notifyThreadClosed();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 1
start local 1 1: aload 1
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
if_acmpeq 5
2: aload 1
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotThreadInfo.cancelled:Z
3: invokestatic java.lang.Thread.interrupted:()Z
pop
4: aload 0
invokevirtual java.lang.Object.notifyAll:()V
5: StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 6 1 currentTInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
boolean closeImpl(boolean, boolean, boolean);
descriptor: (ZZZ)Z
flags: (0x0000)
Code:
stack=4, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: StackMap locals: int
StackMap stack:
iload 4
ifeq 5
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
4: iconst_0
istore 4
5: StackMap locals:
StackMap stack:
aload 0
dup
astore 5
monitorenter
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifeq 9
7: aload 5
monitorexit
8: iconst_1
ireturn
9: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
astore 6
start local 6 10: aload 6
ifnull 17
11: aload 6
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 14
12: aload 5
monitorexit
13: iconst_1
ireturn
14: StackMap locals: java.lang.Thread
StackMap stack:
iconst_1
istore 4
15: aload 5
monitorexit
16: goto 1
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 7
start local 7 18: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
ifeq 23
19: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
ifnonnull 23
20: iconst_1
istore 4
21: aload 5
monitorexit
22: goto 1
23: StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
24: iload 1
ifeq 29
25: aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
26: aload 7
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
if_acmpeq 29
27: aload 7
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotThreadInfo.cancelled:Z
28: invokestatic java.lang.Thread.interrupted:()Z
pop
29: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
ifeq 32
30: aload 5
monitorexit
31: iconst_0
ireturn
32: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
33: aload 7
getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 41
34: aload 0
astore 8
start local 8 35: goto 39
36: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 7
getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.removeLast:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
astore 9
start local 9 37: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 9
aload 8
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
38: aload 9
astore 8
end local 9 39: StackMap locals:
StackMap stack:
aload 7
getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 36
40: aload 7
getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.clear:()V
end local 8 41: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
42: aload 5
monitorexit
43: goto 46
end local 7 end local 6 44: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
aload 5
monitorexit
45: athrow
46: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 47: aconst_null
astore 6
start local 6 48: iconst_0
istore 7
start local 7 49: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 50
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 50
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
50: StackMap locals: java.lang.Thread[] java.util.List int
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 51
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 51
new java.lang.AssertionError
dup
ldc "lock is acquired"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
51: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 52
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifeq 52
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
52: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 8
start local 8 53: aload 0
iload 1
iload 2
iload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeChildContexts:(ZZZ)V
54: aload 0
iload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.finalizeContext:(Z)V
55: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.disposeContext:()Ljava/util/List;
astore 6
56: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 57
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 57
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
57: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
iconst_1
istore 7
58: goto 75
StackMap locals:
StackMap stack: java.lang.Throwable
59: astore 9
60: aload 0
dup
astore 10
monitorenter
61: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 8
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
62: iload 7
ifeq 64
63: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
iconst_0
anewarray java.lang.Thread
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Thread[]
astore 5
64: StackMap locals: java.lang.Throwable com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
65: iload 7
ifeq 67
66: aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
67: StackMap locals:
StackMap stack:
aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
68: aload 10
monitorexit
69: goto 72
StackMap locals:
StackMap stack: java.lang.Throwable
70: aload 10
monitorexit
71: athrow
72: StackMap locals:
StackMap stack:
iload 7
ifeq 74
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
ifeq 74
73: aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
74: StackMap locals:
StackMap stack:
aload 9
athrow
75: StackMap locals:
StackMap stack:
aload 0
dup
astore 10
monitorenter
76: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 8
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
77: iload 7
ifeq 79
78: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
iconst_0
anewarray java.lang.Thread
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Thread[]
astore 5
79: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
80: iload 7
ifeq 82
81: aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
82: StackMap locals:
StackMap stack:
aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
83: aload 10
monitorexit
84: goto 87
StackMap locals:
StackMap stack: java.lang.Throwable
85: aload 10
monitorexit
86: athrow
87: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
iload 7
ifeq 94
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
ifeq 94
88: aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
end local 8 89: goto 94
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int
StackMap stack: java.lang.Throwable
90: astore 11
91: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
92: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
93: aload 11
athrow
94: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
95: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
96: aload 6
ifnull 101
97: aload 6
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 100
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int top java.util.Iterator
StackMap stack:
98: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
astore 8
start local 8 99: aload 8
iload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.notifyDisposed:(Z)V
end local 8 100: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 98
101: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int
StackMap stack:
iload 7
ifeq 147
102: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
ifnull 109
103: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
dup
astore 8
monitorenter
104: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
aload 0
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
105: aload 8
monitorexit
106: goto 111
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
107: aload 8
monitorexit
108: athrow
109: StackMap locals:
StackMap stack:
iload 3
ifeq 111
110: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.removeContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
111: StackMap locals:
StackMap stack:
iload 3
ifeq 118
112: aload 5
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 116
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int top int int java.lang.Thread[]
StackMap stack:
113: aload 11
iload 9
aaload
astore 8
start local 8 114: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 8
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyThreadFinished:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
end local 8 115: iinc 9 1
StackMap locals:
StackMap stack:
116: iload 9
iload 10
if_icmplt 113
117: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyContextClosed:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
118: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int
StackMap stack:
aload 0
dup
astore 8
monitorenter
119: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
120: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActive:()Z
ifne 138
121: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
ifnull 127
122: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 12
arraylength
istore 11
iconst_0
istore 10
goto 126
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
123: aload 12
iload 10
aaload
astore 9
start local 9 124: aload 9
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.close:()V
end local 9 125: iinc 10 1
StackMap locals:
StackMap stack:
126: iload 10
iload 11
if_icmplt 123
127: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
astore 9
start local 9 128: aload 9
ifnull 130
129: aload 9
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
130: StackMap locals: java.lang.Object[]
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
ifnull 132
131: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
132: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 11
goto 137
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object[] top java.util.Iterator
StackMap stack:
133: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 10
start local 10 134: aload 10
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
astore 12
start local 12 135: aload 12
ifnull 137
136: aload 12
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
end local 12 end local 10 137: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 133
end local 9 138: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 8
monitorexit
139: goto 142
StackMap locals:
StackMap stack: java.lang.Throwable
140: aload 8
monitorexit
141: athrow
142: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
ifnonnull 147
143: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 145
144: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
aconst_null
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
145: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logHandler:Ljava/util/logging/Handler;
ifnull 147
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logHandler:Ljava/util/logging/Handler;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.isSameLogSink:(Ljava/util/logging/Handler;Ljava/util/logging/Handler;)Z
ifne 147
146: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logHandler:Ljava/util/logging/Handler;
invokevirtual java.util.logging.Handler.close:()V
147: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 148 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 148 1 cancelIfExecuting Z
0 148 2 waitForPolyglotThreads Z
0 148 3 notifyInstruments Z
1 148 4 waitForCloseOrInterrupt Z
10 44 6 localClosingThread Ljava/lang/Thread;
18 44 7 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
35 41 8 c Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
37 39 9 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
47 148 5 remainingThreads [Ljava/lang/Thread;
48 148 6 disposedContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;>;
49 148 7 success Z
53 89 8 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
99 100 8 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
114 115 8 thread Ljava/lang/Thread;
124 125 9 langContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
128 138 9 impls [Ljava/lang/Object;
134 137 10 thread Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
135 137 12 threadLocals [Ljava/lang/Object;
Exception table:
from to target type
6 8 44 any
9 13 44 any
14 16 44 any
17 22 44 any
23 31 44 any
32 43 44 any
44 45 44 any
53 59 59 any
61 69 70 any
70 71 70 any
76 84 85 any
85 86 85 any
49 90 90 any
104 106 107 any
107 108 107 any
119 139 140 any
140 141 140 any
MethodParameters:
Name Flags
cancelIfExecuting
waitForPolyglotThreads
notifyInstruments
private void closeChildContexts(boolean, boolean, boolean);
descriptor: (ZZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
dup
astore 5
monitorenter
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
invokeinterface java.util.List.size:()I
anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
astore 4
start local 4 2: aload 5
monitorexit
3: goto 6
end local 4 StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
4: aload 5
monitorexit
5: athrow
start local 4 6: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 10
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
StackMap stack:
7: aload 8
iload 6
aaload
astore 5
start local 5 8: aload 5
iload 1
iload 2
iload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
pop
end local 5 9: iinc 6 1
StackMap locals:
StackMap stack:
10: iload 6
iload 7
if_icmplt 7
11: return
end local 4 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/PolyglotContextImpl;
0 12 1 cancelIfExecuting Z
0 12 2 waitForPolyglotThreads Z
0 12 3 notifyInstruments Z
2 4 4 childrenToClose [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
6 12 4 childrenToClose [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
8 9 5 childContext Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
cancelIfExecuting
waitForPolyglotThreads
notifyInstruments
private java.util.List<com.oracle.truffle.polyglot.PolyglotLanguageContext> disposeContext();
descriptor: ()Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
2: new java.util.ArrayList
dup
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 1
start local 1 3: aload 0
dup
astore 2
monitorenter
4: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
arraylength
iconst_1
isub
istore 3
start local 3 5: goto 11
6: StackMap locals: java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl int
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
iload 3
aaload
astore 4
start local 4 7: aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.dispose:()Z
istore 5
start local 5 8: iload 5
ifeq 10
9: aload 1
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 10: StackMap locals:
StackMap stack:
iinc 3 -1
StackMap locals:
StackMap stack:
11: iload 3
ifge 6
end local 3 12: aload 2
monitorexit
13: goto 16
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
aload 1
astore 7
17: aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
18: aload 7
areturn
end local 1 19: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
astore 6
20: aload 0
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
21: aload 6
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
3 19 1 disposedContexts Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;>;
5 12 3 i I
7 10 4 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
8 10 5 disposed Z
Exception table:
from to target type
4 13 14 any
14 15 14 any
2 17 19 any
Signature: ()Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;>;
private void finalizeContext(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
arraylength
iconst_1
isub
istore 3
start local 3 2: goto 7
3: StackMap locals: int int
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
iload 3
aaload
astore 4
start local 4 4: aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 6
5: iload 2
aload 4
iload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.finalizeContext:(Z)Z
ior
istore 2
end local 4 6: StackMap locals:
StackMap stack:
iinc 3 -1
StackMap locals:
StackMap stack:
7: iload 3
ifge 3
end local 3 8: iload 2
ifne 0
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 10 1 notifyInstruments Z
1 10 2 finalizationPerformed Z
2 8 3 i I
4 6 4 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
MethodParameters:
Name Flags
notifyInstruments
synchronized void sendInterrupt();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
ifne 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 6
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
StackMap stack:
3: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 1
start local 1 4: aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isCurrent:()Z
ifne 6
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
ifeq 6
5: aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
end local 1 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
4 6 1 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
java.lang.Object getLocal(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
if_acmpeq 1
new java.lang.AssertionError
dup
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.invalidSharingError:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
iconst_0
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.readLocal:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;[Ljava/lang/Object;Z)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 2 1 l Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
MethodParameters:
Name Flags
l
private java.lang.Object[] getCurrentThreadLocals(com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
1: aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 8
2: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getId:()J
lcmp
ifne 5
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreadContextLocals:[Ljava/lang/Object;
astore 2
start local 2 4: goto 9
end local 2 5: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.get:()[Ljava/lang/Object;
astore 2
start local 2 7: goto 9
end local 2 8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.get:()[Ljava/lang/Object;
astore 2
start local 2 9: StackMap locals: java.lang.Object[]
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 10
aload 2
ifnonnull 10
new java.lang.AssertionError
dup
ldc "thread local not initialized."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
10: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.inCompiledCode:()Z
ifeq 12
11: getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
aload 2
ldc [Ljava/lang/Object;
iconst_1
iconst_1
iconst_1
invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.unsafeCast:(Ljava/lang/Object;Ljava/lang/Class;ZZZ)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 2
12: StackMap locals:
StackMap stack:
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
astore 3
start local 3 13: aload 3
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.assumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 14
aload 3
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
aload 2
arraylength
if_icmpeq 16
14: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
15: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.updateThreadLocals:()[Ljava/lang/Object;
astore 2
16: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 17 1 e Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
4 5 2 locals [Ljava/lang/Object;
7 8 2 locals [Ljava/lang/Object;
9 17 2 locals [Ljava/lang/Object;
13 17 3 locations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
MethodParameters:
Name Flags
e
private void setCurrentThreadLocals(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 5
2: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreadContextLocals:[Ljava/lang/Object;
3: aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getId:()J
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
4: goto 8
5: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getId:()J
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
lcmp
ifne 8
6: aload 0
ldc -1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
7: aload 0
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreadContextLocals:[Ljava/lang/Object;
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.set:(Ljava/lang/Object;)V
9: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 2
start local 2 10: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 11
aload 2
ifnonnull 11
new java.lang.AssertionError
dup
ldc "thread not yet initialized"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 12
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
aload 1
if_acmpeq 12
new java.lang.AssertionError
dup
ldc "thread locals consistent"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 13 1 locals [Ljava/lang/Object;
10 13 2 info Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
locals
private java.lang.Object[] getThreadLocals(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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.PolyglotContextImpl.threads:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 2
start local 2 2: aload 2
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 5 1 thread Ljava/lang/Thread;
2 5 2 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
thread
java.lang.Object getThreadLocal(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
if_acmpeq 1
new java.lang.AssertionError
dup
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.invalidSharingError:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
ifeq 3
2: aload 1
aload 0
aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadLocals:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.readLocal:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;[Ljava/lang/Object;Z)Ljava/lang/Object;
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getThreadLocalBoundary:(Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 4 1 l Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
MethodParameters:
Name Flags
l
private java.lang.Object getThreadLocalBoundary(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadLocals:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.readLocal:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;[Ljava/lang/Object;Z)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 1 1 l Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
l
synchronized java.lang.Object getThreadLocal(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation, java.lang.Thread);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)Ljava/lang/Object;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
if_acmpeq 1
new java.lang.AssertionError
dup
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.invalidSharingError:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getThreadLocals:(Ljava/lang/Thread;)[Ljava/lang/Object;
astore 3
start local 3 2: aload 3
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: java.lang.Object[]
StackMap stack:
aload 1
aload 0
aload 3
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.readLocal:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;[Ljava/lang/Object;Z)Ljava/lang/Object;
areturn
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/PolyglotContextImpl;
0 5 1 l Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
0 5 2 t Ljava/lang/Thread;
2 5 3 threadLocals [Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
l
t
void initializeThreadLocals(com.oracle.truffle.polyglot.PolyglotThreadInfo);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
flags: (0x0000)
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 2
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
if_acmpeq 2
new java.lang.AssertionError
dup
ldc "thread locals must only be initialized on the current thread"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
astore 2
start local 2 3: aload 2
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
anewarray java.lang.Object
astore 3
start local 3 4: aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
astore 4
start local 4 5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 10
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations java.lang.Object[] java.lang.Thread top java.util.Iterator
StackMap stack:
6: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 5
start local 5 7: aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.isCreated:()Z
ifeq 10
8: aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
aload 5
getfield com.oracle.truffle.polyglot.PolyglotInstrument.contextLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextLocalsFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
9: aload 0
aload 3
aload 5
getfield com.oracle.truffle.polyglot.PolyglotInstrument.contextThreadLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextThreadFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)V
end local 5 10: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
11: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 17
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations java.lang.Object[] java.lang.Thread top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
12: aload 8
iload 6
aaload
astore 5
start local 5 13: aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
ifeq 16
14: aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
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
15: aload 0
aload 3
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.contextThreadLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
aload 4
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextThreadFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)V
end local 5 16: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
iload 7
if_icmplt 12
18: aload 1
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.setContextThreadLocals:([Ljava/lang/Object;)V
19: aload 0
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCurrentThreadLocals:([Ljava/lang/Object;)V
20: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 21 1 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
3 21 2 locations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
4 21 3 locals [Ljava/lang/Object;
5 21 4 thread Ljava/lang/Thread;
7 10 5 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
13 16 5 language Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
MethodParameters:
Name Flags
threadInfo
void initializeContextLocals();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
ifnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
astore 1
start local 1 4: aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
anewarray java.lang.Object
astore 2
start local 2 5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations java.lang.Object[] top java.util.Iterator
StackMap stack:
6: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotInstrument
astore 3
start local 3 7: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.isCreated:()Z
ifeq 9
8: aload 0
aload 2
aload 3
getfield com.oracle.truffle.polyglot.PolyglotInstrument.contextLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextLocalsFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
end local 3 9: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
10: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 11
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
ifnull 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations java.lang.Object[]
StackMap stack:
aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
4 13 1 locations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
5 13 2 locals [Ljava/lang/Object;
7 9 3 instrument Lcom/oracle/truffle/polyglot/PolyglotInstrument;
private synchronized java.lang.Object[] updateThreadLocals();
descriptor: ()[Ljava/lang/Object;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getThreadLocals:(Ljava/lang/Thread;)[Ljava/lang/Object;
astore 1
start local 1 2: aload 0
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCurrentThreadLocals:([Ljava/lang/Object;)V
3: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
2 4 1 newThreadLocals [Ljava/lang/Object;
void resizeContextThreadLocals(com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 2
start local 2 3: aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
astore 4
start local 4 4: aload 4
arraylength
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
if_icmpge 6
5: aload 2
aload 4
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.setContextThreadLocals:([Ljava/lang/Object;)V
end local 4 end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 8 1 locations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
3 6 2 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
4 6 4 threadLocals [Ljava/lang/Object;
MethodParameters:
Name Flags
locations
void resizeContextLocals(com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
pop
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
astore 2
start local 2 2: aload 2
ifnull 8
3: aload 2
arraylength
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
if_icmple 5
4: new java.lang.AssertionError
dup
ldc "Context locals array must never shrink."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: java.lang.Object[]
StackMap stack:
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
aload 2
arraylength
if_icmple 9
6: aload 0
aload 2
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
arraylength
anewarray java.lang.Object
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 10 1 locations Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
2 10 2 oldLocals [Ljava/lang/Object;
MethodParameters:
Name Flags
locations
void invokeContextLocalsFactory(java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]);
descriptor: ([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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 2
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 4: goto 9
5: StackMap locals: int
StackMap stack:
aload 2
iload 3
aaload
astore 4
start local 4 6: aload 1
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
aaload
ifnonnull 8
7: aload 1
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
aload 4
aload 0
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.invokeFactory:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Thread;)Ljava/lang/Object;
aastore
end local 4 8: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
aload 2
arraylength
if_icmplt 5
end local 3 10: goto 18
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
StackMap stack: java.lang.Throwable
11: astore 3
start local 3 12: iconst_0
istore 4
start local 4 13: goto 16
14: StackMap locals: java.lang.Throwable int
StackMap stack:
aload 1
aload 2
iload 4
aaload
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
aconst_null
aastore
15: iinc 4 1
StackMap locals:
StackMap stack:
16: iload 4
aload 2
arraylength
if_icmplt 14
end local 4 17: aload 3
athrow
end local 3 18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 19 1 locals [Ljava/lang/Object;
0 19 2 locations [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
4 10 3 i I
6 8 4 location Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
12 18 3 t Ljava/lang/Throwable;
13 17 4 i I
Exception table:
from to target type
3 10 11 Class java.lang.Throwable
MethodParameters:
Name Flags
locals
locations
void invokeContextThreadLocalFactory(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]);
descriptor: ([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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 1
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 2
start local 2 5: aload 0
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
aload 1
aload 2
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextThreadFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 8 1 locations [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
5 6 2 threadInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
MethodParameters:
Name Flags
locations
private void invokeContextThreadFactory(java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[], java.lang.Thread);
descriptor: ([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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 2
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 4: goto 9
5: StackMap locals: int
StackMap stack:
aload 2
iload 4
aaload
astore 5
start local 5 6: aload 1
aload 5
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
aaload
ifnonnull 8
7: aload 1
aload 5
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
aload 5
aload 0
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.invokeFactory:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Thread;)Ljava/lang/Object;
aastore
end local 5 8: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
aload 2
arraylength
if_icmplt 5
end local 4 10: goto 18
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] java.lang.Thread
StackMap stack: java.lang.Throwable
11: astore 4
start local 4 12: iconst_0
istore 5
start local 5 13: goto 16
14: StackMap locals: java.lang.Throwable int
StackMap stack:
aload 1
aload 2
iload 5
aaload
getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
aconst_null
aastore
15: iinc 5 1
StackMap locals:
StackMap stack:
16: iload 5
aload 2
arraylength
if_icmplt 14
end local 5 17: aload 4
athrow
end local 4 18: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 19 1 threadLocals [Ljava/lang/Object;
0 19 2 locations [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
0 19 3 thread Ljava/lang/Thread;
4 10 4 i I
6 8 5 location Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
12 18 4 t Ljava/lang/Throwable;
13 17 5 i I
Exception table:
from to target type
3 10 11 Class java.lang.Throwable
MethodParameters:
Name Flags
threadLocals
locations
thread
static java.lang.String invalidSharingError(com.oracle.truffle.polyglot.PolyglotEngineImpl, com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: ldc "Detected invaliding sharing of context locals between polyglot engines. Expected engine %s but was %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 expectedEngine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 1 1 actualEngine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
MethodParameters:
Name Flags
expectedEngine
actualEngine
com.oracle.truffle.polyglot.PolyglotThreadInfo getCurrentThreadInfo();
descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 1
aload 0
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.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 1
start local 1 2: aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 6
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
astore 1
4: aload 1
ifnonnull 6
5: getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
astore 1
6: StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
ifne 7
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
ifnull 7
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
2 8 1 currentTInfo Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
boolean patch(com.oracle.truffle.polyglot.PolyglotContextConfig);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)Z
flags: (0x0000)
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
2: aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.initializeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
3: aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 5
4: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 0
aload 1
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 2
start local 2 6: iconst_1
istore 3
start local 3 7: goto 13
8: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
iload 3
aaload
astore 4
start local 4 9: aload 4
aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.patch:(Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)Z
ifne 12
10: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 2
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
11: iconst_0
ireturn
end local 4 12: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
13: iload 3
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
arraylength
if_icmplt 8
end local 3 14: goto 18
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
15: astore 5
16: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 2
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
17: aload 5
athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 2
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
19: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 20 1 newConfig Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
6 20 2 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
7 14 3 i I
9 12 4 context Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
Exception table:
from to target type
6 10 15 any
12 15 15 any
MethodParameters:
Name Flags
newConfig
void replayInstrumentationEvents();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.notifyContextCreated:()V
1: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 11
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
2: aload 4
iload 2
aaload
astore 1
start local 1 3: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
astore 5
start local 5 4: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
ifeq 10
aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ifnull 10
5: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 5
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextCreated:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
6: aload 1
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifeq 10
7: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 5
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextInitialized:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
8: aload 1
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.finalized:Z
ifeq 10
9: getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
aload 0
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
aload 5
invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextFinalized:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
end local 5 end local 1 10: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
11: iload 2
iload 3
if_icmplt 2
12: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
3 10 1 lc Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
4 10 5 language Lcom/oracle/truffle/api/nodes/LanguageInfo;
synchronized void checkSubProcessFinished();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
anewarray com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator[]
astore 1
start local 1 1: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 8
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator[] top int int com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
invokevirtual com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator.isAlive:()Z
ifeq 7
4: ldc "The context has an alive sub-process %s created by %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
5: aload 2
invokevirtual com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator.getCommand:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
invokevirtual com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator.getOwner:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
aastore
6: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
athrow
end local 2 7: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 4
if_icmplt 2
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 10 1 processes [Lcom/oracle/truffle/polyglot/ProcessHandlers$ProcessDecorator;
3 7 2 process Lcom/oracle/truffle/polyglot/ProcessHandlers$ProcessDecorator;
static com.oracle.truffle.polyglot.PolyglotContextImpl preInitialize(com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
flags: (0x0008) ACC_STATIC
Code:
stack=26, locals=20, args_size=1
start local 0 0: new com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
dup
invokespecial com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.<init>:()V
astore 1
start local 1 1: new com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
dup
invokespecial com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.<init>:()V
astore 2
start local 2 2: invokestatic org.graalvm.collections.EconomicSet.create:()Lorg/graalvm/collections/EconomicSet;
astore 3
start local 3 3: aload 3
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguages:()Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface org.graalvm.collections.EconomicSet.addAll:(Ljava/lang/Iterable;)V
4: new com.oracle.truffle.polyglot.PolyglotContextConfig
dup
aload 0
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
6: getstatic java.lang.System.err:Ljava/io/PrintStream;
7: getstatic java.lang.System.in:Ljava/io/InputStream;
8: iconst_0
9: getstatic org.graalvm.polyglot.PolyglotAccess.ALL:Lorg/graalvm/polyglot/PolyglotAccess;
10: iconst_0
11: iconst_0
12: iconst_0
13: iconst_0
14: aconst_null
15: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
16: aload 3
17: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
18: aload 1
aload 2
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
iconst_0
aconst_null
19: getstatic org.graalvm.polyglot.EnvironmentAccess.INHERIT:Lorg/graalvm/polyglot/EnvironmentAccess;
aconst_null
aconst_null
aconst_null
aconst_null
20: invokespecial com.oracle.truffle.polyglot.PolyglotContextConfig.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;ZLorg/graalvm/polyglot/PolyglotAccess;ZZZZLjava/util/function/Predicate;Ljava/util/Map;Lorg/graalvm/collections/EconomicSet;Ljava/util/Map;Lorg/graalvm/polyglot/io/FileSystem;Lorg/graalvm/polyglot/io/FileSystem;Ljava/util/logging/Handler;ZLorg/graalvm/polyglot/io/ProcessHandler;Lorg/graalvm/polyglot/EnvironmentAccess;Ljava/util/Map;Ljava/time/ZoneId;Lcom/oracle/truffle/polyglot/PolyglotLimits;Ljava/lang/ClassLoader;)V
astore 4
start local 4 21: new com.oracle.truffle.polyglot.PolyglotContextImpl
dup
aload 0
aload 4
invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
astore 5
start local 5 22: aload 5
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
23: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.PreinitializeContexts:Lorg/graalvm/options/OptionKey;
invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 24: ldc "PreinitializeContexts"
invokestatic com.oracle.truffle.polyglot.ImageBuildTimeOptions.get:(Ljava/lang/String;)Ljava/lang/String;
astore 7
start local 7 25: aload 6
invokevirtual java.lang.String.isEmpty:()Z
ifne 28
aload 7
invokevirtual java.lang.String.isEmpty:()Z
ifne 28
26: new java.lang.StringBuilder
dup
aload 6
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 27: goto 29
end local 8 28: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 6
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 29: StackMap locals: java.lang.String
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 9
start local 9 30: aload 8
invokevirtual java.lang.String.isEmpty:()Z
ifne 32
31: aload 9
aload 8
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
32: StackMap locals: java.util.Set
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 11
goto 36
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set top java.util.Iterator
StackMap stack:
33: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 10
start local 10 34: aload 10
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.isFirstInstance:()Z
ifne 36
35: aload 9
aload 10
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 10 36: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 33
37: aload 9
invokeinterface java.util.Set.isEmpty:()Z
ifne 64
38: aload 5
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
39: aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
astore 10
start local 10 40: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguages:()Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 12
goto 53
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
StackMap stack:
41: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 11
start local 11 42: aload 9
aload 11
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 51
43: aload 0
aconst_null
aload 11
aconst_null
iconst_0
iconst_1
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.findLanguage:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
astore 13
start local 13 44: aload 13
ifnull 51
45: aload 11
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.overridesPatchContext:(Ljava/lang/String;)Z
ifeq 49
46: aload 5
aload 13
aconst_null
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContextInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
pop
47: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.LOG:Lcom/oracle/truffle/api/TruffleLogger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Pre-initialized context for language: {0}"
aload 13
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
48: goto 51
49: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.util.Iterator com.oracle.truffle.polyglot.PolyglotLanguage
StackMap stack:
aload 13
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.isFirstInstance:()Z
ifeq 51
50: getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.LOG:Lcom/oracle/truffle/api/TruffleLogger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
ldc "Language {0} cannot be pre-initialized as it does not override TruffleLanguage.patchContext method."
aload 11
invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
end local 13 51: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
aload 11
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotLanguage
astore 13
start local 13 52: aload 13
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.clearOptionValues:()V
end local 13 end local 11 53: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 41
54: goto 58
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
55: astore 14
56: aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 10
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
57: aload 14
athrow
58: StackMap locals:
StackMap stack:
aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
aload 10
aload 5
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
end local 10 59: goto 63
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set
StackMap stack: java.lang.Throwable
60: astore 15
61: aload 5
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
62: aload 15
athrow
63: StackMap locals:
StackMap stack:
aload 5
iconst_0
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
64: StackMap locals:
StackMap stack:
aload 5
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
65: aload 5
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
66: aload 5
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
67: aload 5
astore 17
68: aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 19
goto 71
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set top top top top top top top com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
StackMap stack:
69: aload 19
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.source.Source
astore 18
start local 18 70: getstatic com.oracle.truffle.polyglot.EngineAccessor.SOURCE:Lcom/oracle/truffle/api/impl/Accessor$SourceSupport;
aload 18
invokevirtual com.oracle.truffle.api.impl.Accessor$SourceSupport.invalidateAfterPreinitialiation:(Lcom/oracle/truffle/api/source/Source;)V
end local 18 71: StackMap locals:
StackMap stack:
aload 19
invokeinterface java.util.Iterator.hasNext:()Z
ifne 69
72: aload 5
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
73: aload 1
invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onPreInitializeContextEnd:()V
74: aload 2
invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onPreInitializeContextEnd:()V
75: invokestatic com.oracle.truffle.polyglot.FileSystems.resetDefaultFileSystemProvider:()V
76: aload 4
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 78
77: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 5
aconst_null
aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
78: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set top top top top top top top com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack:
aload 17
areturn
end local 9 end local 8 end local 7 end local 6 79: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl
StackMap stack: java.lang.Throwable
astore 16
80: aload 5
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 19
goto 83
StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl top top top top top top top top top top java.lang.Throwable top top java.util.Iterator
StackMap stack:
81: aload 19
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.source.Source
astore 18
start local 18 82: getstatic com.oracle.truffle.polyglot.EngineAccessor.SOURCE:Lcom/oracle/truffle/api/impl/Accessor$SourceSupport;
aload 18
invokevirtual com.oracle.truffle.api.impl.Accessor$SourceSupport.invalidateAfterPreinitialiation:(Lcom/oracle/truffle/api/source/Source;)V
end local 18 83: StackMap locals:
StackMap stack:
aload 19
invokeinterface java.util.Iterator.hasNext:()Z
ifne 81
84: aload 5
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
85: aload 1
invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onPreInitializeContextEnd:()V
86: aload 2
invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onPreInitializeContextEnd:()V
87: invokestatic com.oracle.truffle.polyglot.FileSystems.resetDefaultFileSystemProvider:()V
88: aload 4
getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 90
89: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 5
aconst_null
aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
90: StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 16
athrow
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 91 0 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 91 1 fs Lcom/oracle/truffle/polyglot/FileSystems$PreInitializeContextFileSystem;
2 91 2 internalFs Lcom/oracle/truffle/polyglot/FileSystems$PreInitializeContextFileSystem;
3 91 3 allowedLanguages Lorg/graalvm/collections/EconomicSet<Ljava/lang/String;>;
21 91 4 config Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
22 91 5 context Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
24 79 6 oldOption Ljava/lang/String;
25 79 7 newOption Ljava/lang/String;
27 28 8 optionValue Ljava/lang/String;
29 79 8 optionValue Ljava/lang/String;
30 79 9 languagesToPreinitialize Ljava/util/Set<Ljava/lang/String;>;
34 36 10 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
40 59 10 prev Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
42 53 11 languageId Ljava/lang/String;
44 51 13 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
52 53 13 language Lcom/oracle/truffle/polyglot/PolyglotLanguage;
70 71 18 sourceToInvalidate Lcom/oracle/truffle/api/source/Source;
82 83 18 sourceToInvalidate Lcom/oracle/truffle/api/source/Source;
Exception table:
from to target type
40 55 55 any
39 60 60 any
22 68 79 any
MethodParameters:
Name Flags
engine final
private static java.lang.Object[] getAllLoggers(com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getDefaultLoggers:()Ljava/lang/Object;
astore 1
start local 1 1: aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getEngineLoggers:()Ljava/lang/Object;
astore 2
start local 2 2: aload 2
ifnonnull 3
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
goto 4
StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
3: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
StackMap locals:
StackMap stack: java.lang.Object[]
4: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 5 1 defaultLoggers Ljava/lang/Object;
2 5 2 engineLoggers Ljava/lang/Object;
MethodParameters:
Name Flags
engine
com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution createCancelException(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelExecution;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution
dup
aload 1
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalidMessage:Ljava/lang/String;
aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalidResourceLimit:Z
invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 1 1 location Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
location
synchronized boolean invalidate(boolean, java.lang.String);
descriptor: (ZLjava/lang/String;)Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
ifne 6
1: aload 0
getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
2: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalidMessage:Ljava/lang/String;
3: aload 0
iload 1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalidResourceLimit:Z
4: aload 0
iconst_1
putfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
0 7 1 resourceLimit Z
0 7 2 message Ljava/lang/String;
MethodParameters:
Name Flags
resourceLimit
message
private static boolean overridesPatchContext(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: invokestatic com.oracle.truffle.polyglot.LanguageCache.languages:()Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.LanguageCache
astore 1
start local 1 1: aload 1
invokevirtual com.oracle.truffle.polyglot.LanguageCache.loadLanguage:()Lcom/oracle/truffle/api/TruffleLanguage;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: java.lang.String com.oracle.truffle.polyglot.LanguageCache top int int java.lang.reflect.Method[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "patchContext"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: iconst_1
ireturn
end local 2 5: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 2
7: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 languageId Ljava/lang/String;
1 8 1 cache Lcom/oracle/truffle/polyglot/LanguageCache;
3 5 2 m Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
languageId
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
ldc "PolyglotContextImpl["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 1
ldc "state="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
ifeq 8
4: aload 1
ldc "closed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
ifeq 15
6: aload 1
ldc " invalid"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: goto 15
StackMap locals: java.lang.StringBuilder
StackMap stack:
8: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
ifeq 11
9: aload 1
ldc "cancelling"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: goto 15
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActive:()Z
ifeq 14
12: aload 1
ldc "active"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: goto 15
14: StackMap locals:
StackMap stack:
aload 1
ldc "inactive"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: StackMap locals:
StackMap stack:
aload 1
ldc " languages=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: ldc ""
astore 2
start local 2 17: aload 0
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 24
StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.StringBuilder java.lang.String top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
18: aload 6
iload 4
aaload
astore 3
start local 3 19: aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
ifne 20
aload 3
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
ifeq 23
20: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.StringBuilder java.lang.String com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
aload 1
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: aload 1
aload 3
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.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: ldc ", "
astore 2
end local 3 23: StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.StringBuilder java.lang.String top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
24: iload 4
iload 5
if_icmplt 18
25: aload 1
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: aload 1
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
1 28 1 b Ljava/lang/StringBuilder;
17 28 2 sep Ljava/lang/String;
19 23 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
}
SourceFile: "PolyglotContextImpl.java"
NestMembers:
com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
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 LanguageSupport = com.oracle.truffle.api.impl.Accessor$LanguageSupport of com.oracle.truffle.api.impl.Accessor
public abstract RuntimeSupport = com.oracle.truffle.api.impl.Accessor$RuntimeSupport of com.oracle.truffle.api.impl.Accessor
public abstract SourceSupport = com.oracle.truffle.api.impl.Accessor$SourceSupport of com.oracle.truffle.api.impl.Accessor
final PreInitializeContextFileSystem = com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem of com.oracle.truffle.polyglot.FileSystems
final HostContext = com.oracle.truffle.polyglot.HostLanguage$HostContext of com.oracle.truffle.polyglot.HostLanguage
final ContextLocalsTL = com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL of com.oracle.truffle.polyglot.PolyglotContextImpl
ContextWeakReference = com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference of com.oracle.truffle.polyglot.PolyglotContextImpl
final SingleContextState = com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState of com.oracle.truffle.polyglot.PolyglotContextImpl
final CancelExecution = com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution of com.oracle.truffle.polyglot.PolyglotEngineImpl
final CancelHandler = com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler of com.oracle.truffle.polyglot.PolyglotEngineImpl
final StableLocalLocations = com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations of com.oracle.truffle.polyglot.PolyglotEngineImpl
abstract VMObject = com.oracle.truffle.polyglot.PolyglotImpl$VMObject of com.oracle.truffle.polyglot.PolyglotImpl
abstract LocalLocation = com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation of com.oracle.truffle.polyglot.PolyglotLocals
final ProcessDecorator = com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator of com.oracle.truffle.polyglot.ProcessHandlers
public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
public abstract AbstractContextImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
public abstract AbstractValueImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl