public class org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest extends com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest
  super_class: com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest this
         0: .line 46
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/truffle/test/ThreadsActivationCompilationTest;

  public void testThreadActivationCompilation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest this
         0: .line 50
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
            ldc "engine.CompileImmediately"
            ldc "false"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            ldc "engine.BackgroundCompilation"
            ldc "false"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest.setupEnv:(Lorg/graalvm/polyglot/Context;)V
         1: .line 52
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 1 /* compiledEnter */
        start local 1 // java.util.concurrent.atomic.AtomicReference compiledEnter
         2: .line 53
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 2 /* compiledLeave */
        start local 2 // java.util.concurrent.atomic.AtomicReference compiledLeave
         3: .line 54
            aload 1 /* compiledEnter */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         4: .line 55
            aload 2 /* compiledLeave */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         5: .line 56
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:()Lcom/oracle/truffle/api/Assumption;
            astore 3 /* singleContext */
        start local 3 // com.oracle.truffle.api.Assumption singleContext
         6: .line 57
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest.instrumentEnv:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            new org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest$1
            dup
            aload 0 /* this */
            aload 3 /* singleContext */
            aload 2 /* compiledLeave */
            aload 1 /* compiledEnter */
            invokespecial org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest$1.<init>:(Lorg/graalvm/compiler/truffle/test/ThreadsActivationCompilationTest;Lcom/oracle/truffle/api/Assumption;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;)V
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachThreadsActivationListener:(Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
         7: .line 81
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.enter:()V
         8: .line 83
            aload 1 /* compiledEnter */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         9: .line 84
            aload 2 /* compiledLeave */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
        10: .line 86
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest$2
            dup
            aload 0 /* this */
            aconst_null
            aload 1 /* compiledEnter */
            aload 2 /* compiledLeave */
            invokespecial org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest$2.<init>:(Lorg/graalvm/compiler/truffle/test/ThreadsActivationCompilationTest;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            astore 4 /* target */
        start local 4 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget target
        11: .line 108
            invokestatic com.oracle.truffle.api.test.polyglot.ProxyLanguage.getCurrentContext:()Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage$LanguageContext;
            invokevirtual com.oracle.truffle.api.test.polyglot.ProxyLanguage$LanguageContext.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getContext:()Lcom/oracle/truffle/api/TruffleContext;
            astore 5 /* tc */
        start local 5 // com.oracle.truffle.api.TruffleContext tc
        12: .line 109
            aload 3 /* singleContext */
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
        13: .line 110
            aload 4 /* target */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* tc */
            aastore
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 111
            aload 4 /* target */
            iconst_1
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.compile:(Z)Z
            pop
        15: .line 112
            aload 4 /* target */
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.isValidLastTier:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        16: .line 113
            aload 4 /* target */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* tc */
            aastore
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 115
            aload 4 /* target */
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.isValidLastTier:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        18: .line 116
            aload 1 /* compiledEnter */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        19: .line 117
            aload 2 /* compiledLeave */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        20: .line 119
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.leave:()V
        21: .line 120
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.close:()V
        22: .line 122
            return
        end local 5 // com.oracle.truffle.api.TruffleContext tc
        end local 4 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget target
        end local 3 // com.oracle.truffle.api.Assumption singleContext
        end local 2 // java.util.concurrent.atomic.AtomicReference compiledLeave
        end local 1 // java.util.concurrent.atomic.AtomicReference compiledEnter
        end local 0 // org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lorg/graalvm/compiler/truffle/test/ThreadsActivationCompilationTest;
            2   23     1  compiledEnter  Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Boolean;>;
            3   23     2  compiledLeave  Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Boolean;>;
            6   23     3  singleContext  Lcom/oracle/truffle/api/Assumption;
           11   23     4         target  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
           12   23     5             tc  Lcom/oracle/truffle/api/TruffleContext;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "ThreadsActivationCompilationTest.java"
NestMembers:
  org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest$1  org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest$2
InnerClasses:
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
  public LanguageContext = com.oracle.truffle.api.test.polyglot.ProxyLanguage$LanguageContext of com.oracle.truffle.api.test.polyglot.ProxyLanguage
  org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest$1
  org.graalvm.compiler.truffle.test.ThreadsActivationCompilationTest$2
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context