public class com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest
  super_class: java.lang.Object
{
  static volatile com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$LanguageContext langContext;
    descriptor: Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
    flags: (0x0048) ACC_STATIC, ACC_VOLATILE

  private final java.util.List<java.lang.Thread> threads;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/Thread;>;

  private final java.util.List<java.util.concurrent.ExecutorService> executors;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/util/concurrent/ExecutorService;>;

  volatile java.util.concurrent.atomic.AtomicInteger initializeCount;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x0040) ACC_VOLATILE

  volatile java.util.concurrent.atomic.AtomicInteger disposeCount;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x0040) ACC_VOLATILE

  volatile java.util.concurrent.atomic.AtomicInteger initializeMultiThreadingCount;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x0040) ACC_VOLATILE

  volatile java.util.concurrent.atomic.AtomicReference<com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest> lastInitializeRequest;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0040) ACC_VOLATILE
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;>;

  volatile java.util.concurrent.atomic.AtomicReference<com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest> lastDisposeRequest;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0040) ACC_VOLATILE
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;>;

  private final java.util.Map<java.lang.Object, java.util.Set<java.lang.Thread>> initializedThreadsPerContext;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/util/Set<Ljava/lang/Thread;>;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 88
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 679
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
         2: .line 680
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.executors:Ljava/util/List;
         3: .line 687
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
         4: .line 88
            return
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;

  private static org.graalvm.polyglot.Value eval(org.graalvm.polyglot.Context, java.util.function.Function<com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object>);
    descriptor: (Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.polyglot.Context context
        start local 1 // java.util.function.Function f
         0: .line 93
            getstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.runinside:Ljava/lang/ThreadLocal;
            aload 1 /* f */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 95
            aload 0 /* context */
            ldc "MultiThreadedLanguage"
            ldc ""
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            astore 3
         2: .line 97
            getstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.runinside:Ljava/lang/ThreadLocal;
            aconst_null
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         3: .line 95
            aload 3
            areturn
         4: .line 96
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         5: .line 97
            getstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.runinside:Ljava/lang/ThreadLocal;
            aconst_null
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         6: .line 98
            aload 2
            athrow
        end local 1 // java.util.function.Function f
        end local 0 // org.graalvm.polyglot.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Lorg/graalvm/polyglot/Context;
            0    7     1        f  Ljava/util/function/Function<Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;>;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: (Lorg/graalvm/polyglot/Context;Ljava/util/function/Function<Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;>;)Lorg/graalvm/polyglot/Value;
    MethodParameters:
         Name  Flags
      context  
      f        

  public void testNoThreadAllowed();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 103
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "MultiThreadedLanguage"
            aastore
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            astore 1 /* context */
        start local 1 // org.graalvm.polyglot.Context context
         1: .line 105
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$0(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
         2: .line 110
            aload 1 /* context */
            ldc "MultiThreadedLanguage"
            invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
            pop
         3: .line 111
            invokestatic org.junit.Assert.fail:()V
         4: .line 112
            goto 7
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest org.graalvm.polyglot.Context
      StackMap stack: java.lang.IllegalStateException
         5: astore 2 /* e */
        start local 2 // java.lang.IllegalStateException e
         6: .line 113
            aload 2 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            ldc "Single threaded access requested by thread "
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        end local 2 // java.lang.IllegalStateException e
         7: .line 117
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$1(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
            pop
         8: .line 118
            invokestatic org.junit.Assert.fail:()V
         9: .line 119
            goto 12
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        10: astore 2 /* e */
        start local 2 // java.lang.IllegalStateException e
        11: .line 120
            aload 2 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            ldc "Single threaded access requested by thread "
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        end local 2 // java.lang.IllegalStateException e
        12: .line 124
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$2(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
            pop
        13: .line 125
            invokestatic org.junit.Assert.fail:()V
        14: .line 126
            goto 17
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        15: astore 2 /* e */
        start local 2 // java.lang.IllegalStateException e
        16: .line 127
            aload 2 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            ldc "Single threaded access requested by thread "
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        end local 2 // java.lang.IllegalStateException e
        17: .line 131
      StackMap locals:
      StackMap stack:
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$3(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
        18: .line 134
            aload 1 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        19: .line 135
            return
        end local 1 // org.graalvm.polyglot.Context context
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            1   20     1  context  Lorg/graalvm/polyglot/Context;
            6    7     2        e  Ljava/lang/IllegalStateException;
           11   12     2        e  Ljava/lang/IllegalStateException;
           16   17     2        e  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.IllegalStateException
           7     9      10  Class java.lang.IllegalStateException
          12    14      15  Class java.lang.IllegalStateException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static void assertMultiThreadedError(org.graalvm.polyglot.Value, java.util.function.Consumer<org.graalvm.polyglot.Value>);
    descriptor: (Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.polyglot.Value value
        start local 1 // java.util.function.Consumer valueConsumer
         0: .line 139
            aload 1 /* valueConsumer */
            aload 0 /* value */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         1: .line 140
            invokestatic org.junit.Assert.fail:()V
         2: .line 141
            goto 5
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         3: astore 2 /* e */
        start local 2 // java.lang.IllegalStateException e
         4: .line 142
            aload 2 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            aload 2 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            ldc "Multi threaded access requested by thread "
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        end local 2 // java.lang.IllegalStateException e
         5: .line 144
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.function.Consumer valueConsumer
        end local 0 // org.graalvm.polyglot.Value value
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0          value  Lorg/graalvm/polyglot/Value;
            0    6     1  valueConsumer  Ljava/util/function/Consumer<Lorg/graalvm/polyglot/Value;>;
            4    5     2              e  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.IllegalStateException
    Signature: (Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer<Lorg/graalvm/polyglot/Value;>;)V
    MethodParameters:
               Name  Flags
      value          
      valueConsumer  

  private static void assertUnsupportedOrNoError(org.graalvm.polyglot.Value, java.util.function.Consumer<org.graalvm.polyglot.Value>);
    descriptor: (Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Value value
        start local 1 // java.util.function.Consumer valueConsumer
         0: .line 148
            aload 1 /* valueConsumer */
            aload 0 /* value */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         1: .line 149
            goto 6
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
         2: pop
            goto 6
         3: .line 150
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            pop
            goto 6
         4: .line 151
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
            goto 6
         5: .line 152
      StackMap locals:
      StackMap stack: java.lang.NullPointerException
            pop
         6: .line 154
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.function.Consumer valueConsumer
        end local 0 // org.graalvm.polyglot.Value value
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0          value  Lorg/graalvm/polyglot/Value;
            0    7     1  valueConsumer  Ljava/util/function/Consumer<Lorg/graalvm/polyglot/Value;>;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.UnsupportedOperationException
           0     1       3  Class java.lang.ClassCastException
           0     1       4  Class java.lang.IllegalArgumentException
           0     1       5  Class java.lang.NullPointerException
    Signature: (Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer<Lorg/graalvm/polyglot/Value;>;)V
    MethodParameters:
               Name  Flags
      value          
      valueConsumer  

  public void testSingleThreading();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 158
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "MultiThreadedLanguage"
            aastore
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            astore 1 /* context */
        start local 1 // org.graalvm.polyglot.Context context
         1: .line 160
            new java.util.concurrent.atomic.AtomicReference
            dup
            aconst_null
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
            astore 2 /* lastIsAllowedRequest */
        start local 2 // java.util.concurrent.atomic.AtomicReference lastIsAllowedRequest
         2: .line 162
            aload 2 /* lastIsAllowedRequest */
            invokedynamic apply(Ljava/util/concurrent/atomic/AtomicReference;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$4(Ljava/util/concurrent/atomic/AtomicReference;Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
         3: .line 167
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.createExecutor:(I)Ljava/util/concurrent/ExecutorService;
            astore 3 /* executor */
        start local 3 // java.util.concurrent.ExecutorService executor
         4: .line 169
            lconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         5: .line 170
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         6: .line 172
            aload 1 /* context */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$5(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
            astore 4 /* value */
        start local 4 // org.graalvm.polyglot.Value value
         7: .line 174
            lconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         8: .line 175
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 2 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 176
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 177
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 2 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 179
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 5 /* latch */
        start local 5 // java.util.concurrent.CountDownLatch latch
        12: .line 181
            aload 3 /* executor */
            aload 1 /* context */
            iconst_1
            aload 5 /* latch */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$6(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.evalAndWait:(Ljava/util/concurrent/ExecutorService;Lorg/graalvm/polyglot/Context;ZLjava/util/concurrent/CountDownLatch;Ljava/util/function/Function;)Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable;
            astore 6 /* future */
        start local 6 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable future
        13: .line 182
            aload 5 /* latch */
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
        14: .line 184
            ldc 2
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        15: .line 185
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 2 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        16: .line 186
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
        17: .line 187
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            aload 2 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
        18: .line 189
            lconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        19: .line 190
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        20: .line 193
            aload 1 /* context */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$7(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
            pop
        21: .line 194
            invokestatic org.junit.Assert.fail:()V
        22: .line 195
            goto 25
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest org.graalvm.polyglot.Context java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService org.graalvm.polyglot.Value java.util.concurrent.CountDownLatch com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
      StackMap stack: java.lang.IllegalStateException
        23: astore 7 /* e */
        start local 7 // java.lang.IllegalStateException e
        24: .line 196
            aload 7 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            aload 7 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            ldc "Multi threaded access requested by thread "
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        end local 7 // java.lang.IllegalStateException e
        25: .line 199
      StackMap locals:
      StackMap stack:
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$107(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        26: .line 200
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isBoolean()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        27: .line 202
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isNativePointer()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        28: .line 203
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isNull()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        29: .line 204
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isNumber()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        30: .line 205
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isString()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        31: .line 206
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isMetaObject()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        32: .line 207
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isTime()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        33: .line 208
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isTimeZone()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        34: .line 209
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isDate()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        35: .line 210
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isInstant()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        36: .line 211
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isException()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        37: .line 212
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInByte()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        38: .line 213
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInShort()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        39: .line 214
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInInt()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        40: .line 215
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInLong()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        41: .line 216
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInFloat()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        42: .line 217
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInDouble()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        43: .line 219
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asBoolean()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        44: .line 220
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asByte()B (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        45: .line 221
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asShort()S (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        46: .line 222
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asInt()I (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        47: .line 223
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asLong()J (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        48: .line 224
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asFloat()F (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        49: .line 225
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asDouble()D (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        50: .line 226
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asNativePointer()J (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        51: .line 227
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asString()Ljava/lang/String; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        52: .line 228
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.getArraySize()J (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        53: .line 229
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.getMemberKeys()Ljava/util/Set; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        54: .line 230
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.getMetaObject()Lorg/graalvm/polyglot/Value; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        55: .line 231
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asInstant()Ljava/time/Instant; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        56: .line 232
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asDate()Ljava/time/LocalDate; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        57: .line 233
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asTimeZone()Ljava/time/ZoneId; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        58: .line 234
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asTime()Ljava/time/LocalTime; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        59: .line 235
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.getMetaQualifiedName()Ljava/lang/String; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        60: .line 236
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.getMetaSimpleName()Ljava/lang/String; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        61: .line 237
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.throwException()Ljava/lang/RuntimeException; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        62: .line 238
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$45(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        63: .line 239
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$46(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        64: .line 240
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$47(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        65: .line 241
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$48(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        66: .line 242
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$49(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        67: .line 243
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$50(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        68: .line 244
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$51(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        69: .line 245
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$52(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        70: .line 246
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$53(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        71: .line 247
            aload 4 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$54(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        72: .line 249
            ldc 2
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        73: .line 250
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 2 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
        74: .line 251
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 2 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        75: .line 253
            lconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        76: .line 254
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        77: .line 258
            aload 1 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        78: .line 259
            invokestatic org.junit.Assert.fail:()V
        79: .line 260
            goto 82
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        80: astore 7 /* e */
        start local 7 // java.lang.IllegalStateException e
        81: .line 261
            aload 7 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            aload 7 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            ldc "The context is currently executing on another thread. Set cancelIfExecuting to true to stop the execution on this thread."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        end local 7 // java.lang.IllegalStateException e
        82: .line 264
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 2 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
        83: .line 265
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 2 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        84: .line 267
            aload 6 /* future */
            invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.complete:()V
        85: .line 269
            aload 6 /* future */
            invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.get:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
        86: .line 273
            aload 1 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        87: .line 275
            ldc 2
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        88: .line 276
            ldc 2
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        89: .line 277
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 90
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            if_acmpeq 90
            iconst_0
            goto 91
      StackMap locals:
      StackMap stack:
        90: iconst_1
      StackMap locals:
      StackMap stack: int
        91: invokestatic org.junit.Assert.assertTrue:(Z)V
        92: .line 280
            aload 3 /* executor */
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        93: .line 281
            return
        end local 6 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable future
        end local 5 // java.util.concurrent.CountDownLatch latch
        end local 4 // org.graalvm.polyglot.Value value
        end local 3 // java.util.concurrent.ExecutorService executor
        end local 2 // java.util.concurrent.atomic.AtomicReference lastIsAllowedRequest
        end local 1 // org.graalvm.polyglot.Context context
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   94     0                  this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            1   94     1               context  Lorg/graalvm/polyglot/Context;
            2   94     2  lastIsAllowedRequest  Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;>;
            4   94     3              executor  Ljava/util/concurrent/ExecutorService;
            7   94     4                 value  Lorg/graalvm/polyglot/Value;
           12   94     5                 latch  Ljava/util/concurrent/CountDownLatch;
           13   94     6                future  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;
           24   25     7                     e  Ljava/lang/IllegalStateException;
           81   82     7                     e  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
          20    22      23  Class java.lang.IllegalStateException
          77    79      80  Class java.lang.IllegalStateException
    Exceptions:
      throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMultiThreading();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 285
            new java.util.concurrent.atomic.AtomicReference
            dup
            aconst_null
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
            astore 1 /* lastIsAllowedRequest */
        start local 1 // java.util.concurrent.atomic.AtomicReference lastIsAllowedRequest
         1: .line 286
            aload 1 /* lastIsAllowedRequest */
            invokedynamic apply(Ljava/util/concurrent/atomic/AtomicReference;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$55(Ljava/util/concurrent/atomic/AtomicReference;Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
         2: .line 294
            aload 0 /* this */
            bipush 10
            invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.createExecutor:(I)Ljava/util/concurrent/ExecutorService;
            astore 2 /* executor */
        start local 2 // java.util.concurrent.ExecutorService executor
         3: .line 295
            iconst_0
            istore 3 /* outerIter */
        start local 3 // int outerIter
         4: goto 76
         5: .line 296
      StackMap locals: java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.resetData:()V
         6: .line 298
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "MultiThreadedLanguage"
            aastore
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         7: .line 300
            lconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         8: .line 301
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         9: .line 303
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* results */
        start local 5 // java.util.List results
        10: .line 304
            iconst_0
            istore 6 /* iteration */
        start local 6 // int iteration
        11: goto 61
        12: .line 305
      StackMap locals: org.graalvm.polyglot.Context java.util.List int
      StackMap stack:
            iload 6 /* iteration */
            ifne 13
            new java.util.concurrent.CountDownLatch
            dup
            bipush 10
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            goto 14
      StackMap locals:
      StackMap stack:
        13: aconst_null
      StackMap locals:
      StackMap stack: java.util.concurrent.CountDownLatch
        14: astore 7 /* latch */
        start local 7 // java.util.concurrent.CountDownLatch latch
        15: .line 307
            aload 4 /* context */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$56(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
            astore 8 /* value */
        start local 8 // org.graalvm.polyglot.Value value
        16: .line 309
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        17: goto 22
        18: .line 310
      StackMap locals: java.util.concurrent.CountDownLatch org.graalvm.polyglot.Value int
      StackMap stack:
            aload 5 /* results */
            aload 2 /* executor */
            aload 4 /* context */
            iload 6 /* iteration */
            ifne 19
            iconst_1
            goto 20
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List int java.util.concurrent.CountDownLatch org.graalvm.polyglot.Value int
      StackMap stack: java.util.List java.util.concurrent.ExecutorService org.graalvm.polyglot.Context
        19: iconst_0
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List int java.util.concurrent.CountDownLatch org.graalvm.polyglot.Value int
      StackMap stack: java.util.List java.util.concurrent.ExecutorService org.graalvm.polyglot.Context int
        20: aload 7 /* latch */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$57(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.evalAndWait:(Ljava/util/concurrent/ExecutorService;Lorg/graalvm/polyglot/Context;ZLjava/util/concurrent/CountDownLatch;Ljava/util/function/Function;)Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 309
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 9 /* i */
            bipush 10
            if_icmplt 18
        end local 9 // int i
        23: .line 313
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$108(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        24: .line 314
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isBoolean()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        25: .line 315
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isHostObject()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        26: .line 316
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isNativePointer()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        27: .line 317
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isNull()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        28: .line 318
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isNumber()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        29: .line 319
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.isString()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        30: .line 320
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInByte()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        31: .line 321
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInDouble()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        32: .line 322
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInFloat()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        33: .line 323
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInInt()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        34: .line 324
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.fitsInLong()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        35: .line 325
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asBoolean()Z (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        36: .line 326
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asByte()B (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        37: .line 327
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asDouble()D (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        38: .line 328
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asFloat()F (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        39: .line 329
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asHostObject()Ljava/lang/Object; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        40: .line 330
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asInt()I (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        41: .line 331
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asLong()J (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        42: .line 332
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asNativePointer()J (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        43: .line 333
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.asString()Ljava/lang/String; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        44: .line 334
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.getArraySize()J (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        45: .line 335
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.getMemberKeys()Ljava/util/Set; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        46: .line 336
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/polyglot/Value.getMetaObject()Lorg/graalvm/polyglot/Value; (5)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        47: .line 337
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$82(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        48: .line 338
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$83(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        49: .line 339
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$84(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        50: .line 340
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$85(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        51: .line 341
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$86(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        52: .line 342
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$87(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        53: .line 343
            aload 8 /* value */
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$88(Lorg/graalvm/polyglot/Value;)V (6)
                  (Lorg/graalvm/polyglot/Value;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
        54: .line 346
            iload 6 /* iteration */
            ifne 60
        55: .line 347
            aload 7 /* latch */
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
        56: .line 348
            aload 5 /* results */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 59
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List int java.util.concurrent.CountDownLatch org.graalvm.polyglot.Value top java.util.Iterator
      StackMap stack:
        57: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
            astore 9 /* future */
        start local 9 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable future
        58: .line 349
            aload 9 /* future */
            invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.complete:()V
        end local 9 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable future
        59: .line 348
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 57
        end local 8 // org.graalvm.polyglot.Value value
        end local 7 // java.util.concurrent.CountDownLatch latch
        60: .line 304
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List int
      StackMap stack:
            iinc 6 /* iteration */ 1
      StackMap locals:
      StackMap stack:
        61: iload 6 /* iteration */
            bipush 100
            if_icmplt 12
        end local 6 // int iteration
        62: .line 354
            aload 5 /* results */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 66
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List top java.util.Iterator
      StackMap stack:
        63: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
            astore 6 /* future */
        start local 6 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable future
        64: .line 355
            aload 6 /* future */
            invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.get:()Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Value
            invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
            astore 8 /* languageContext */
        start local 8 // java.lang.Object languageContext
        65: .line 356
            getstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.langContext:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            aload 8 /* languageContext */
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 8 // java.lang.Object languageContext
        end local 6 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable future
        66: .line 354
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 63
        67: .line 359
            ldc 11
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        68: .line 360
            lconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        69: .line 361
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 1 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        70: .line 363
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        71: .line 366
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 1 /* lastIsAllowedRequest */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        72: .line 367
            lconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        73: .line 368
            ldc 11
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        74: .line 369
            ldc 11
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        end local 5 // java.util.List results
        end local 4 // org.graalvm.polyglot.Context context
        75: .line 295
            iinc 3 /* outerIter */ 1
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int
      StackMap stack:
        76: iload 3 /* outerIter */
            bipush 10
            if_icmplt 5
        end local 3 // int outerIter
        77: .line 372
            aload 2 /* executor */
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        78: .line 373
            return
        end local 2 // java.util.concurrent.ExecutorService executor
        end local 1 // java.util.concurrent.atomic.AtomicReference lastIsAllowedRequest
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   79     0                  this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            1   79     1  lastIsAllowedRequest  Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;>;
            3   79     2              executor  Ljava/util/concurrent/ExecutorService;
            4   77     3             outerIter  I
            7   75     4               context  Lorg/graalvm/polyglot/Context;
           10   75     5               results  Ljava/util/List<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;>;
           11   62     6             iteration  I
           15   60     7                 latch  Ljava/util/concurrent/CountDownLatch;
           16   60     8                 value  Lorg/graalvm/polyglot/Value;
           17   23     9                     i  I
           58   59     9                future  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;
           64   66     6                future  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;
           65   66     8       languageContext  Ljava/lang/Object;
    Exceptions:
      throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testAccessTruffleContextPolyglotThread();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 377
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$89(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
         1: .line 380
            invokestatic org.graalvm.polyglot.Engine.create:()Lorg/graalvm/polyglot/Engine;
            astore 1 /* engine */
        start local 1 // org.graalvm.polyglot.Engine engine
         2: .line 381
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 2 /* seenError */
        start local 2 // java.util.concurrent.atomic.AtomicReference seenError
         3: .line 382
            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.allowCreateThread:(Z)Lorg/graalvm/polyglot/Context$Builder;
            aload 1 /* engine */
            invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 3 /* context */
        start local 3 // org.graalvm.polyglot.Context context
         4: .line 383
            aload 3 /* context */
            new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$1
            dup
            aload 0 /* this */
            aload 2 /* seenError */
            invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$1.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/util/concurrent/atomic/AtomicReference;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
            pop
         5: .line 446
            aload 2 /* seenError */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            ifnull 7
         6: .line 447
            aload 2 /* seenError */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast java.lang.Throwable
            athrow
         7: .line 449
      StackMap locals: org.graalvm.polyglot.Engine java.util.concurrent.atomic.AtomicReference org.graalvm.polyglot.Context
      StackMap stack:
            aload 1 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
         8: .line 450
            return
        end local 3 // org.graalvm.polyglot.Context context
        end local 2 // java.util.concurrent.atomic.AtomicReference seenError
        end local 1 // org.graalvm.polyglot.Engine engine
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            2    9     1     engine  Lorg/graalvm/polyglot/Engine;
            3    9     2  seenError  Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
            4    9     3    context  Lorg/graalvm/polyglot/Context;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testAccessTruffleContextFromExclusivePolyglotThread();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 456
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$90(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
         1: .line 462
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 1 /* lastError */
        start local 1 // java.util.concurrent.atomic.AtomicReference lastError
         2: .line 463
            aload 1 /* lastError */
            invokedynamic uncaughtException(Ljava/util/concurrent/atomic/AtomicReference;)Ljava/lang/Thread$UncaughtExceptionHandler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Thread;Ljava/lang/Throwable;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$91(Ljava/util/concurrent/atomic/AtomicReference;Ljava/lang/Thread;Ljava/lang/Throwable;)V (6)
                  (Ljava/lang/Thread;Ljava/lang/Throwable;)V
            astore 2 /* uncaughtHandler */
        start local 2 // java.lang.Thread$UncaughtExceptionHandler uncaughtHandler
         3: .line 464
            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.allowCreateThread:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 3 /* polyglotContext */
        start local 3 // org.graalvm.polyglot.Context polyglotContext
         4: .line 465
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            astore 4 /* seenContexts */
        start local 4 // java.util.concurrent.ConcurrentHashMap seenContexts
         5: .line 466
            aload 3 /* polyglotContext */
            new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$2
            dup
            aload 0 /* this */
            aload 2 /* uncaughtHandler */
            aload 4 /* seenContexts */
            invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$2.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/lang/Thread$UncaughtExceptionHandler;Ljava/util/concurrent/ConcurrentHashMap;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
            pop
         6: .line 524
            ldc 221
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         7: .line 525
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            iconst_1
            isub
            i2l
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         8: .line 526
            lconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         9: .line 528
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$92(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
        10: .line 531
            aload 3 /* polyglotContext */
            new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$3
            dup
            aload 0 /* this */
            aload 2 /* uncaughtHandler */
            invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$3.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/lang/Thread$UncaughtExceptionHandler;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
            pop
        11: .line 576
            aload 1 /* lastError */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            ifnull 13
        12: .line 577
            aload 1 /* lastError */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast java.lang.Throwable
            athrow
        13: .line 579
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.lang.Thread$UncaughtExceptionHandler org.graalvm.polyglot.Context java.util.concurrent.ConcurrentHashMap
      StackMap stack:
            aload 3 /* polyglotContext */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        14: .line 580
            ldc 331
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        15: .line 581
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        16: .line 582
            lconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        17: .line 583
            return
        end local 4 // java.util.concurrent.ConcurrentHashMap seenContexts
        end local 3 // org.graalvm.polyglot.Context polyglotContext
        end local 2 // java.lang.Thread$UncaughtExceptionHandler uncaughtHandler
        end local 1 // java.util.concurrent.atomic.AtomicReference lastError
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            2   18     1        lastError  Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
            3   18     2  uncaughtHandler  Ljava/lang/Thread$UncaughtExceptionHandler;
            4   18     3  polyglotContext  Lorg/graalvm/polyglot/Context;
            5   18     4     seenContexts  Ljava/util/concurrent/ConcurrentHashMap<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;Ljava/lang/String;>;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testAsssertionIfThreadStillActive();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 587
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$93(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
         1: .line 590
            invokestatic org.graalvm.polyglot.Engine.create:()Lorg/graalvm/polyglot/Engine;
            astore 1 /* engine */
        start local 1 // org.graalvm.polyglot.Engine engine
         2: .line 591
            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.allowCreateThread:(Z)Lorg/graalvm/polyglot/Context$Builder;
            aload 1 /* engine */
            invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 2 /* context */
        start local 2 // org.graalvm.polyglot.Context context
         3: .line 592
            new java.util.concurrent.Semaphore
            dup
            iconst_0
            invokespecial java.util.concurrent.Semaphore.<init>:(I)V
            astore 3 /* wait */
        start local 3 // java.util.concurrent.Semaphore wait
         4: .line 593
            aload 2 /* context */
            new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$4
            dup
            aload 0 /* this */
            aload 3 /* wait */
            invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$4.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/util/concurrent/Semaphore;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
         5: .line 610
            invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
            checkcast java.lang.Thread
         6: .line 593
            astore 4 /* returnThread */
        start local 4 // java.lang.Thread returnThread
         7: .line 612
            aload 1 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
         8: .line 613
            invokestatic org.junit.Assert.fail:()V
         9: .line 614
            goto 13
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest org.graalvm.polyglot.Engine org.graalvm.polyglot.Context java.util.concurrent.Semaphore java.lang.Thread
      StackMap stack: org.graalvm.polyglot.PolyglotException
        10: astore 5 /* e */
        start local 5 // org.graalvm.polyglot.PolyglotException e
        11: .line 615
            aload 5 /* e */
            invokevirtual org.graalvm.polyglot.PolyglotException.isInternalError:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        12: .line 616
            aload 5 /* e */
            invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
            ldc "The language did not complete all polyglot threads but should have"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        end local 5 // org.graalvm.polyglot.PolyglotException e
        13: .line 618
      StackMap locals:
      StackMap stack:
            aload 3 /* wait */
            iconst_1
            invokevirtual java.util.concurrent.Semaphore.release:(I)V
        14: .line 619
            aload 4 /* returnThread */
            invokevirtual java.lang.Thread.join:()V
        15: .line 620
            aload 1 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
        16: .line 621
            return
        end local 4 // java.lang.Thread returnThread
        end local 3 // java.util.concurrent.Semaphore wait
        end local 2 // org.graalvm.polyglot.Context context
        end local 1 // org.graalvm.polyglot.Engine engine
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            2   17     1        engine  Lorg/graalvm/polyglot/Engine;
            3   17     2       context  Lorg/graalvm/polyglot/Context;
            4   17     3          wait  Ljava/util/concurrent/Semaphore;
            7   17     4  returnThread  Ljava/lang/Thread;
           11   13     5             e  Lorg/graalvm/polyglot/PolyglotException;
      Exception table:
        from    to  target  type
           7     9      10  Class org.graalvm.polyglot.PolyglotException
    Exceptions:
      throws java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testInterruptPolyglotThread();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 625
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$94(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
         1: .line 628
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 1 /* seenInterrupt */
        start local 1 // java.util.concurrent.atomic.AtomicBoolean seenInterrupt
         2: .line 629
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 2 /* seenError */
        start local 2 // java.util.concurrent.atomic.AtomicReference seenError
         3: .line 630
            invokestatic org.graalvm.polyglot.Engine.create:()Lorg/graalvm/polyglot/Engine;
            astore 3 /* engine */
        start local 3 // org.graalvm.polyglot.Engine engine
         4: .line 631
            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.allowCreateThread:(Z)Lorg/graalvm/polyglot/Context$Builder;
            aload 3 /* engine */
            invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         5: .line 632
            new java.util.concurrent.Semaphore
            dup
            iconst_0
            invokespecial java.util.concurrent.Semaphore.<init>:(I)V
            astore 5 /* wait */
        start local 5 // java.util.concurrent.Semaphore wait
         6: .line 633
            aload 4 /* context */
            new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$5
            dup
            aload 0 /* this */
            aload 5 /* wait */
            aload 1 /* seenInterrupt */
            aload 2 /* seenError */
            invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$5.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/util/concurrent/Semaphore;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicReference;)V
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
         7: .line 652
            invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
            pop
         8: .line 653
            aload 3 /* engine */
            iconst_1
            invokevirtual org.graalvm.polyglot.Engine.close:(Z)V
         9: .line 654
            aload 2 /* seenError */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            ifnull 11
        10: .line 655
            aload 2 /* seenError */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast java.lang.Throwable
            athrow
        11: .line 657
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicBoolean java.util.concurrent.atomic.AtomicReference org.graalvm.polyglot.Engine org.graalvm.polyglot.Context java.util.concurrent.Semaphore
      StackMap stack:
            aload 1 /* seenInterrupt */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        12: .line 658
            return
        end local 5 // java.util.concurrent.Semaphore wait
        end local 4 // org.graalvm.polyglot.Context context
        end local 3 // org.graalvm.polyglot.Engine engine
        end local 2 // java.util.concurrent.atomic.AtomicReference seenError
        end local 1 // java.util.concurrent.atomic.AtomicBoolean seenInterrupt
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            2   13     1  seenInterrupt  Ljava/util/concurrent/atomic/AtomicBoolean;
            3   13     2      seenError  Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
            4   13     3         engine  Lorg/graalvm/polyglot/Engine;
            5   13     4        context  Lorg/graalvm/polyglot/Context;
            6   13     5           wait  Ljava/util/concurrent/Semaphore;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMultiThreadedAccessExceptionThrownToCreator();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 662
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "MultiThreadedLanguage"
            aastore
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowCreateThread:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 3 /* context */
        start local 3 // org.graalvm.polyglot.Context context
         2: .line 663
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$95(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
         3: .line 666
            aload 3 /* context */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$96(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
            pop
         4: .line 673
            aload 3 /* context */
            ifnull 10
            aload 3 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 10
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         5: astore 1
            aload 3 /* context */
            ifnull 6
            aload 3 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 3 // org.graalvm.polyglot.Context context
      StackMap locals:
      StackMap stack:
         6: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
            aload 1
            ifnonnull 8
            aload 2
            astore 1
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 1
            aload 2
            if_acmpeq 9
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         9: aload 1
            athrow
        10: .line 674
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            2    6     3  context  Lorg/graalvm/polyglot/Context;
      Exception table:
        from    to  target  type
           2     4       5  any
           1     7       7  any
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void setup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 691
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.resetData:()V
         1: .line 693
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$100(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void; (7)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.initializeMultiThreading:Ljava/util/function/Function;
         2: .line 699
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$101(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void; (7)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.initializeThread:Ljava/util/function/Function;
         3: .line 711
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$103(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void; (7)
                  (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
            putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.disposeThread:Ljava/util/function/Function;
         4: .line 723
            return
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
    RuntimeVisibleAnnotations: 
      org.junit.Before()

  private void resetData();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 726
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
         1: .line 727
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
         2: .line 728
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
         3: .line 729
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            aconst_null
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
            putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
         4: .line 730
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            aconst_null
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
            putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
         5: .line 731
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         6: .line 732
            return
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;

  public void teardown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
         0: .line 736
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 737
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.executors:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.ExecutorService
            astore 1 /* executor */
        start local 1 // java.util.concurrent.ExecutorService executor
         3: .line 738
            aload 1 /* executor */
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        end local 1 // java.util.concurrent.ExecutorService executor
         4: .line 737
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 740
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.executors:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         6: .line 741
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 10
      StackMap locals:
      StackMap stack:
         7: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 1 /* entry */
        start local 1 // java.util.Map$Entry entry
         8: .line 742
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 10
         9: .line 743
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Threads initialized but not disposed for context "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            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
        end local 1 // java.util.Map$Entry entry
        10: .line 741
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 746
            return
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            3    4     1  executor  Ljava/util/concurrent/ExecutorService;
            8   10     1     entry  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/util/Set<Ljava/lang/Thread;>;>;
    RuntimeVisibleAnnotations: 
      org.junit.After()

  private java.util.concurrent.ExecutorService createExecutor(int);
    descriptor: (I)Ljava/util/concurrent/ExecutorService;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
        start local 1 // int noThreads
         0: .line 749
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 750
            iload 1 /* noThreads */
            aload 0 /* this */
            invokedynamic newThread(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;)Ljava/util/concurrent/ThreadFactory;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Runnable;)Ljava/lang/Thread;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$104(Ljava/lang/Runnable;)Ljava/lang/Thread; (7)
                  (Ljava/lang/Runnable;)Ljava/lang/Thread;
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            astore 2 /* service */
        start local 2 // java.util.concurrent.ExecutorService service
         2: .line 755
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.executors:Ljava/util/List;
            aload 2 /* service */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 756
            aload 2 /* service */
            areturn
        end local 2 // java.util.concurrent.ExecutorService service
        end local 1 // int noThreads
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            0    4     1  noThreads  I
            2    4     2    service  Ljava/util/concurrent/ExecutorService;
    MethodParameters:
           Name  Flags
      noThreads  

  private static com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable<org.graalvm.polyglot.Value> evalAndWait(java.util.concurrent.ExecutorService, org.graalvm.polyglot.Context, boolean, java.util.concurrent.CountDownLatch, java.util.function.Function<com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object>);
    descriptor: (Ljava/util/concurrent/ExecutorService;Lorg/graalvm/polyglot/Context;ZLjava/util/concurrent/CountDownLatch;Ljava/util/function/Function;)Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // java.util.concurrent.ExecutorService executor
        start local 1 // org.graalvm.polyglot.Context context
        start local 2 // boolean manualComplete
        start local 3 // java.util.concurrent.CountDownLatch latch
        start local 4 // java.util.function.Function f
         0: .line 764
            iload 2 /* manualComplete */
            ifeq 1
            new java.util.concurrent.Semaphore
            dup
            iconst_0
            invokespecial java.util.concurrent.Semaphore.<init>:(I)V
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.util.concurrent.Semaphore
         2: astore 5 /* waitInEval */
        start local 5 // java.util.concurrent.Semaphore waitInEval
         3: .line 765
            aload 0 /* executor */
            aload 1 /* context */
            aload 4 /* f */
            aload 3 /* latch */
            aload 5 /* waitInEval */
            invokedynamic call(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$105(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;)Lorg/graalvm/polyglot/Value; (6)
                  ()Lorg/graalvm/polyglot/Value;
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            astore 6 /* valueResult */
        start local 6 // java.util.concurrent.Future valueResult
         4: .line 788
            new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
            dup
            aload 6 /* valueResult */
            aload 5 /* waitInEval */
            invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.<init>:(Ljava/util/concurrent/Future;Ljava/util/concurrent/Semaphore;)V
            areturn
        end local 6 // java.util.concurrent.Future valueResult
        end local 5 // java.util.concurrent.Semaphore waitInEval
        end local 4 // java.util.function.Function f
        end local 3 // java.util.concurrent.CountDownLatch latch
        end local 2 // boolean manualComplete
        end local 1 // org.graalvm.polyglot.Context context
        end local 0 // java.util.concurrent.ExecutorService executor
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0        executor  Ljava/util/concurrent/ExecutorService;
            0    5     1         context  Lorg/graalvm/polyglot/Context;
            0    5     2  manualComplete  Z
            0    5     3           latch  Ljava/util/concurrent/CountDownLatch;
            0    5     4               f  Ljava/util/function/Function<Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;>;
            3    5     5      waitInEval  Ljava/util/concurrent/Semaphore;
            4    5     6     valueResult  Ljava/util/concurrent/Future<Lorg/graalvm/polyglot/Value;>;
    Signature: (Ljava/util/concurrent/ExecutorService;Lorg/graalvm/polyglot/Context;ZLjava/util/concurrent/CountDownLatch;Ljava/util/function/Function<Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;>;)Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;
    MethodParameters:
                Name  Flags
      executor        
      context         
      manualComplete  
      latch           
      f               

  private static java.lang.Boolean lambda$0(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 106
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static java.lang.Object lambda$1(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 117
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  private static java.lang.Object lambda$2(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 124
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  private static java.lang.Boolean lambda$3(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 132
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static java.lang.Boolean lambda$4(java.util.concurrent.atomic.AtomicReference, com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Ljava/util/concurrent/atomic/AtomicReference;Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 163
            aload 0
            aload 1 /* req */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         1: .line 164
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static java.lang.Object lambda$5(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 172
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  private static java.lang.Object lambda$6(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env ev
         0: .line 181
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env ev
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    ev  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  private static java.lang.Object lambda$7(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 193
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  private static void lambda$107(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value  arg0
         0: aload 0 /*  arg0 */
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            return
        end local 0 // org.graalvm.polyglot.Value  arg0
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   arg0  Lorg/graalvm/polyglot/Value;

  private static void lambda$45(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 238
            aload 0 /* v */
            ldc ""
            invokevirtual org.graalvm.polyglot.Value.isMetaInstance:(Ljava/lang/Object;)Z
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$46(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 239
            aload 0 /* v */
            ldc ""
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$47(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 240
            aload 0 /* v */
            ldc ""
            aconst_null
            invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$48(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 241
            aload 0 /* v */
            ldc ""
            invokevirtual org.graalvm.polyglot.Value.removeMember:(Ljava/lang/String;)Z
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$49(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 242
            aload 0 /* v */
            ldc ""
            invokevirtual org.graalvm.polyglot.Value.hasMember:(Ljava/lang/String;)Z
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$50(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 243
            aload 0 /* v */
            invokevirtual org.graalvm.polyglot.Value.canExecute:()Z
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$51(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 244
            aload 0 /* v */
            invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$52(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 245
            aload 0 /* v */
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$53(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 246
            aload 0 /* v */
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.removeArrayElement:(J)Z
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$54(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 247
            aload 0 /* v */
            lconst_0
            aconst_null
            invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static java.lang.Boolean lambda$55(java.util.concurrent.atomic.AtomicReference, com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Ljava/util/concurrent/atomic/AtomicReference;Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 287
            aload 0
            aload 1 /* req */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         1: .line 288
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static java.lang.Object lambda$56(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 307
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  private static java.lang.Object lambda$57(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env ev
         0: .line 310
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env ev
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    ev  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  private static void lambda$108(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value  arg0
         0: aload 0 /*  arg0 */
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            return
        end local 0 // org.graalvm.polyglot.Value  arg0
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   arg0  Lorg/graalvm/polyglot/Value;

  private static void lambda$82(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 337
            aload 0 /* v */
            ldc ""
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$83(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 338
            aload 0 /* v */
            ldc ""
            aconst_null
            invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$84(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 339
            aload 0 /* v */
            ldc ""
            invokevirtual org.graalvm.polyglot.Value.hasMember:(Ljava/lang/String;)Z
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$85(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 340
            aload 0 /* v */
            invokevirtual org.graalvm.polyglot.Value.canExecute:()Z
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$86(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 341
            aload 0 /* v */
            invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$87(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 342
            aload 0 /* v */
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static void lambda$88(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 343
            aload 0 /* v */
            lconst_0
            aconst_null
            invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  Lorg/graalvm/polyglot/Value;

  private static java.lang.Boolean lambda$89(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 378
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static java.lang.Boolean lambda$90(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 457
            aload 0 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static void lambda$91(java.util.concurrent.atomic.AtomicReference, java.lang.Thread, java.lang.Throwable);
    descriptor: (Ljava/util/concurrent/atomic/AtomicReference;Ljava/lang/Thread;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 1 // java.lang.Thread run
        start local 2 // java.lang.Throwable e
         0: .line 463
            aload 0
            aload 2 /* e */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
            return
        end local 2 // java.lang.Throwable e
        end local 1 // java.lang.Thread run
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   run  Ljava/lang/Thread;
            0    1     2     e  Ljava/lang/Throwable;

  private static java.lang.Boolean lambda$92(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 529
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static java.lang.Boolean lambda$93(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 588
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static java.lang.Boolean lambda$94(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 626
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static java.lang.Boolean lambda$95(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 664
            aload 0 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private static java.lang.Object lambda$96(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 667
            aload 0 /* env */
            invokedynamic call(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$97(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  ()Ljava/lang/Object;
         1: .line 668
            ldc Ljava/lang/IllegalStateException;
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$98(Ljava/lang/IllegalStateException;)V (6)
                  (Ljava/lang/IllegalStateException;)V
         2: .line 667
            invokestatic com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest.assertFails:(Ljava/util/concurrent/Callable;Ljava/lang/Class;Ljava/util/function/Consumer;)V
         3: .line 671
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  private java.lang.Void lambda$100(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
        start local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 694
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
         1: .line 695
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 696
            aconst_null
            areturn
        end local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            0    3     1   req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;

  private java.lang.Void lambda$101(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
        start local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 700
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
         1: .line 701
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            aload 1 /* req */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         2: .line 702
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 703
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$102(Ljava/lang/Object;)Ljava/util/Set; (6)
                  (Ljava/lang/Object;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 2 /* threadsPerContext */
        start local 2 // java.util.Set threadsPerContext
         4: .line 704
            aload 2 /* threadsPerContext */
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 705
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Thread initialized twice for context "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " thread "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            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
         6: .line 707
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* threadsPerContext */
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 708
            aconst_null
            areturn
        end local 2 // java.util.Set threadsPerContext
        end local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            0    8     1                req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
            4    8     2  threadsPerContext  Ljava/util/Set<Ljava/lang/Thread;>;

  private java.lang.Void lambda$103(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
        start local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
         0: .line 712
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
         1: .line 713
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
            aload 1 /* req */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         2: .line 714
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 715
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 2 /* threadsPerContext */
        start local 2 // java.util.Set threadsPerContext
         4: .line 716
            aload 2 /* threadsPerContext */
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 717
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not initialized but disposed thread "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            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
         6: .line 720
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* threadsPerContext */
            aload 1 /* req */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         7: .line 721
            aconst_null
            areturn
        end local 2 // java.util.Set threadsPerContext
        end local 1 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest req
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            0    8     1                req  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
            4    8     2  threadsPerContext  Ljava/util/Set<Ljava/lang/Thread;>;

  private java.lang.Thread lambda$104(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Ljava/lang/Thread;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
        start local 1 // java.lang.Runnable r
         0: .line 751
            new java.lang.Thread
            dup
            aload 1 /* r */
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
            astore 2 /* t */
        start local 2 // java.lang.Thread t
         1: .line 752
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
            aload 2 /* t */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 753
            aload 2 /* t */
            areturn
        end local 2 // java.lang.Thread t
        end local 1 // java.lang.Runnable r
        end local 0 // com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
            0    3     1     r  Ljava/lang/Runnable;
            1    3     2     t  Ljava/lang/Thread;

  private static org.graalvm.polyglot.Value lambda$105(org.graalvm.polyglot.Context, java.util.function.Function, java.util.concurrent.CountDownLatch, java.util.concurrent.Semaphore);
    descriptor: (Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;)Lorg/graalvm/polyglot/Value;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=4
         0: .line 767
            aload 0
            aload 1
            aload 2
            aload 3
            invokedynamic apply(Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$106(Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
         1: areturn
         2: .line 781
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
         3: .line 782
            aload 2
            ifnull 5
         4: .line 783
            aload 2
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
         5: .line 785
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4 /* e */
            athrow
        end local 4 // java.lang.Throwable e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3    6     4     e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$97(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 667
            aload 0
            invokedynamic run()Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$99()V (6)
                  ()V
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.createThread:(Ljava/lang/Runnable;)Ljava/lang/Thread;
         1: .line 668
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  private static void lambda$98(java.lang.IllegalStateException);
    descriptor: (Ljava/lang/IllegalStateException;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.IllegalStateException ise
         0: .line 669
            aload 0 /* ise */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            ldc "Multi threaded access requested by thread"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 670
            return
        end local 0 // java.lang.IllegalStateException ise
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   ise  Ljava/lang/IllegalStateException;

  private static java.util.Set lambda$102(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/util/Set;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object e
         0: .line 703
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokestatic java.util.Collections.synchronizedSet:(Ljava/util/Set;)Ljava/util/Set;
            areturn
        end local 0 // java.lang.Object e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/lang/Object;

  private static java.lang.Object lambda$106(java.util.function.Function, java.util.concurrent.CountDownLatch, java.util.concurrent.Semaphore, com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=5, args_size=4
        start local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 768
            aload 0
            aload 3 /* env */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         1: .line 770
            aload 1
            ifnull 3
         2: .line 771
            aload 1
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
         3: .line 773
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2
            ifnull 7
         4: .line 774
            aload 2
            invokevirtual java.util.concurrent.Semaphore.acquire:()V
         5: .line 776
            goto 7
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         6: pop
         7: .line 779
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Object result
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     3     env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    8     4  result  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.InterruptedException

  private static void lambda$99();
    descriptor: ()V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=0, locals=0, args_size=0
         0: .line 668
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "MultiThreadedLanguageTest.java"
NestMembers:
  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$1  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$2  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$3  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$4  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$5  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
InnerClasses:
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  LanguageContext = com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$LanguageContext of com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage
  ThreadRequest = com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest of com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage
  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$1
  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$2
  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$3
  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$4
  com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$5
  private Completable = com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable of com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context