public class com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest extends com.oracle.truffle.tools.chromeinspector.test.EnginesGCedTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest
  super_class: com.oracle.truffle.tools.chromeinspector.test.EnginesGCedTest
{
  private static final int PORT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 9229

  private static final java.lang.String[] INITIAL_MESSAGES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String CODE1;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "function main() {\n  n = 3;\n  f = factorial(n);\n  return f;\n}\nfunction factorial(n) {\n  f = 1;\n  i = 2;\n  while (i <= n) {\n    f = f * i;\n    i = i + 1;\n  }\n  return f;\n}"

  private static final java.lang.String CODE2;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "function main() {\n  n = 3;\n  f = fibonacci(n);\n  return f;\n}\nfunction fibonacci(n) {\n  if (n == 0) {\n    return 0;\n  }\n  n1 = 0;\n  i = 2;\n  f = 1;\n  while (i <= n) {\n    lastf = f;\n    f = f + n1;\n    n1 = lastf;\n    i = i + 1;\n  }\n  return f;\n}"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 69
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 70
            ldc "{\"id\":1,\"method\":\"Runtime.enable\"}"
            aastore
            dup
            iconst_1
         2: .line 71
            ldc "{\"id\":2,\"method\":\"Debugger.enable\"}"
            aastore
            dup
            iconst_2
         3: .line 72
            ldc "{\"id\":3,\"method\":\"Debugger.setPauseOnExceptions\",\"params\":{\"state\":\"none\"}}"
            aastore
            dup
            iconst_3
         4: .line 73
            ldc "{\"id\":4,\"method\":\"Runtime.runIfWaitingForDebugger\"}"
            aastore
         5: .line 69
            putstatic com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.INITIAL_MESSAGES:[Ljava/lang/String;
         6: .line 109
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
         0: .line 65
            aload 0 /* this */
            invokespecial com.oracle.truffle.tools.chromeinspector.test.EnginesGCedTest.<init>:()V
            return
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;

  public void testMultipleEnginesSerial();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
         0: .line 113
            iconst_4
            anewarray org.graalvm.polyglot.Source
            dup
            iconst_0
         1: .line 114
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = factorial(n);\n  return f;\n}\nfunction factorial(n) {\n  f = 1;\n  i = 2;\n  while (i <= n) {\n    f = f * i;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest1.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
            dup
            iconst_1
         2: .line 115
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = fibonacci(n);\n  return f;\n}\nfunction fibonacci(n) {\n  if (n == 0) {\n    return 0;\n  }\n  n1 = 0;\n  i = 2;\n  f = 1;\n  while (i <= n) {\n    lastf = f;\n    f = f + n1;\n    n1 = lastf;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest2.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
            dup
            iconst_2
         3: .line 116
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = factorial(n);\n  return f;\n}\nfunction factorial(n) {\n  f = 1;\n  i = 2;\n  while (i <= n) {\n    f = f * i;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest3.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
            dup
            iconst_3
         4: .line 117
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = fibonacci(n);\n  return f;\n}\nfunction fibonacci(n) {\n  if (n == 0) {\n    return 0;\n  }\n  n1 = 0;\n  i = 2;\n  f = 1;\n  while (i <= n) {\n    lastf = f;\n    f = f + n1;\n    n1 = lastf;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest4.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
         5: .line 113
            astore 1 /* sources */
        start local 1 // org.graalvm.polyglot.Source[] sources
         6: .line 119
            aload 1 /* sources */
            arraylength
            anewarray java.util.concurrent.CountDownLatch
            astore 2 /* isUp */
        start local 2 // java.util.concurrent.CountDownLatch[] isUp
         7: .line 120
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: goto 11
         9: .line 121
      StackMap locals: org.graalvm.polyglot.Source[] java.util.concurrent.CountDownLatch[] int
      StackMap stack:
            aload 2 /* isUp */
            iload 3 /* i */
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            aastore
        10: .line 120
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            aload 1 /* sources */
            arraylength
            if_icmplt 9
        end local 3 // int i
        12: .line 123
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 3 /* error */
        start local 3 // java.util.concurrent.atomic.AtomicReference error
        13: .line 124
            aload 2 /* isUp */
            aload 3 /* error */
            invokestatic com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.verifySerialDebug:([Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicReference;)V
        14: .line 125
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 4 /* out */
        start local 4 // java.io.ByteArrayOutputStream out
        15: .line 126
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        16: goto 19
        17: .line 127
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest org.graalvm.polyglot.Source[] java.util.concurrent.CountDownLatch[] java.util.concurrent.atomic.AtomicReference java.io.ByteArrayOutputStream int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sources */
            iload 5 /* i */
            aaload
            aload 4 /* out */
            aload 2 /* isUp */
            iload 5 /* i */
            aaload
            invokevirtual com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.runEngine:(Lorg/graalvm/polyglot/Source;Ljava/io/OutputStream;Ljava/util/concurrent/CountDownLatch;)Ljava/lang/String;
            pop
        18: .line 126
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 5 /* i */
            aload 1 /* sources */
            arraylength
            if_icmplt 17
        end local 5 // int i
        20: .line 129
            aload 3 /* error */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            ifnull 22
        21: .line 130
            new java.lang.AssertionError
            dup
            aload 3 /* error */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        22: .line 132
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            aload 4 /* out */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial java.lang.String.<init>:([B)V
            astore 5 /* output */
        start local 5 // java.lang.String output
        23: .line 133
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        24: goto 27
        25: .line 134
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 5 /* output */
            aload 5 /* output */
            new java.lang.StringBuilder
            dup
            ldc "9229/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sources */
            iload 6 /* i */
            aaload
            invokevirtual org.graalvm.polyglot.Source.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        26: .line 133
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 6 /* i */
            aload 1 /* sources */
            arraylength
            if_icmplt 25
        end local 6 // int i
        28: .line 136
            return
        end local 5 // java.lang.String output
        end local 4 // java.io.ByteArrayOutputStream out
        end local 3 // java.util.concurrent.atomic.AtomicReference error
        end local 2 // java.util.concurrent.CountDownLatch[] isUp
        end local 1 // org.graalvm.polyglot.Source[] sources
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   29     0     this  Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;
            6   29     1  sources  [Lorg/graalvm/polyglot/Source;
            7   29     2     isUp  [Ljava/util/concurrent/CountDownLatch;
            8   12     3        i  I
           13   29     3    error  Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
           15   29     4      out  Ljava/io/ByteArrayOutputStream;
           16   20     5        i  I
           23   29     5   output  Ljava/lang/String;
           24   28     6        i  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static void verifySerialDebug(java.util.concurrent.CountDownLatch[], java.util.concurrent.atomic.AtomicReference<java.lang.Throwable>);
    descriptor: ([Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicReference;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.concurrent.CountDownLatch[] isUp
        start local 1 // java.util.concurrent.atomic.AtomicReference error
         0: .line 139
            new java.lang.Thread
            dup
            aload 0 /* isUp */
            aload 1 /* error */
            invokedynamic run([Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicReference;)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/tools/chromeinspector/test/MultiEngineTest.lambda$0([Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicReference;)V (6)
                  ()V
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
         1: .line 151
            invokevirtual java.lang.Thread.start:()V
         2: .line 152
            return
        end local 1 // java.util.concurrent.atomic.AtomicReference error
        end local 0 // java.util.concurrent.CountDownLatch[] isUp
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   isUp  [Ljava/util/concurrent/CountDownLatch;
            0    3     1  error  Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
    Signature: ([Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;)V
    MethodParameters:
       Name  Flags
      isUp   
      error  

  public void testMultipleEnginesParallel();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=1
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
         0: .line 156
            iconst_4
            anewarray org.graalvm.polyglot.Source
            dup
            iconst_0
         1: .line 157
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = factorial(n);\n  return f;\n}\nfunction factorial(n) {\n  f = 1;\n  i = 2;\n  while (i <= n) {\n    f = f * i;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest1.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
            dup
            iconst_1
         2: .line 158
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = fibonacci(n);\n  return f;\n}\nfunction fibonacci(n) {\n  if (n == 0) {\n    return 0;\n  }\n  n1 = 0;\n  i = 2;\n  f = 1;\n  while (i <= n) {\n    lastf = f;\n    f = f + n1;\n    n1 = lastf;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest2.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
            dup
            iconst_2
         3: .line 159
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = factorial(n);\n  return f;\n}\nfunction factorial(n) {\n  f = 1;\n  i = 2;\n  while (i <= n) {\n    f = f * i;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest3.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
            dup
            iconst_3
         4: .line 160
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = fibonacci(n);\n  return f;\n}\nfunction fibonacci(n) {\n  if (n == 0) {\n    return 0;\n  }\n  n1 = 0;\n  i = 2;\n  f = 1;\n  while (i <= n) {\n    lastf = f;\n    f = f + n1;\n    n1 = lastf;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest4.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
         5: .line 156
            astore 1 /* sources */
        start local 1 // org.graalvm.polyglot.Source[] sources
         6: .line 162
            aload 1 /* sources */
            arraylength
            anewarray java.util.concurrent.CountDownLatch
            astore 2 /* isUp */
        start local 2 // java.util.concurrent.CountDownLatch[] isUp
         7: .line 163
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: goto 11
         9: .line 164
      StackMap locals: org.graalvm.polyglot.Source[] java.util.concurrent.CountDownLatch[] int
      StackMap stack:
            aload 2 /* isUp */
            iload 3 /* i */
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            aastore
        10: .line 163
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            aload 1 /* sources */
            arraylength
            if_icmplt 9
        end local 3 // int i
        12: .line 166
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            invokestatic java.util.Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;
            astore 3 /* errors */
        start local 3 // java.util.List errors
        13: .line 167
            aload 2 /* isUp */
            aload 3 /* errors */
            invokestatic com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.verifyParallelDebug:([Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)V
        14: .line 168
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 4 /* out */
        start local 4 // java.io.ByteArrayOutputStream out
        15: .line 169
            aload 1 /* sources */
            arraylength
            anewarray java.lang.Thread
            astore 5 /* threads */
        start local 5 // java.lang.Thread[] threads
        16: .line 170
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        17: goto 25
        18: .line 171
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest org.graalvm.polyglot.Source[] java.util.concurrent.CountDownLatch[] java.util.List java.io.ByteArrayOutputStream java.lang.Thread[] int
      StackMap stack:
            iload 6 /* i */
            istore 7 /* index */
        start local 7 // int index
        19: .line 172
            new java.lang.Thread
            dup
            aload 0 /* this */
            aload 1 /* sources */
            iload 7 /* index */
            aload 4 /* out */
            aload 2 /* isUp */
            aload 3 /* errors */
            invokedynamic run(Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;[Lorg/graalvm/polyglot/Source;ILjava/io/ByteArrayOutputStream;[Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)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/tools/chromeinspector/test/MultiEngineTest.lambda$1([Lorg/graalvm/polyglot/Source;ILjava/io/ByteArrayOutputStream;[Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)V (7)
                  ()V
        20: .line 179
            aload 1 /* sources */
            iload 6 /* i */
            aaload
            invokevirtual org.graalvm.polyglot.Source.getName:()Ljava/lang/String;
        21: .line 172
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
            astore 8 /* t */
        start local 8 // java.lang.Thread t
        22: .line 180
            aload 8 /* t */
            invokevirtual java.lang.Thread.start:()V
        23: .line 181
            aload 5 /* threads */
            iload 6 /* i */
            aload 8 /* t */
            aastore
        end local 8 // java.lang.Thread t
        end local 7 // int index
        24: .line 170
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 6 /* i */
            aload 1 /* sources */
            arraylength
            if_icmplt 18
        end local 6 // int i
        26: .line 183
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        27: goto 30
        28: .line 184
      StackMap locals:
      StackMap stack:
            aload 5 /* threads */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.Thread.join:()V
        29: .line 183
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 6 /* i */
            aload 1 /* sources */
            arraylength
            if_icmplt 28
        end local 6 // int i
        31: .line 186
            aload 3 /* errors */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 38
        32: .line 187
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            astore 6 /* err */
        start local 6 // java.lang.AssertionError err
        33: .line 188
            aload 3 /* errors */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 36
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest org.graalvm.polyglot.Source[] java.util.concurrent.CountDownLatch[] java.util.List java.io.ByteArrayOutputStream java.lang.Thread[] java.lang.AssertionError top java.util.Iterator
      StackMap stack:
        34: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Throwable
            astore 7 /* thr */
        start local 7 // java.lang.Throwable thr
        35: .line 189
            aload 6 /* err */
            aload 7 /* thr */
            invokevirtual java.lang.AssertionError.addSuppressed:(Ljava/lang/Throwable;)V
        end local 7 // java.lang.Throwable thr
        36: .line 188
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        37: .line 191
            aload 6 /* err */
            athrow
        end local 6 // java.lang.AssertionError err
        38: .line 193
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest org.graalvm.polyglot.Source[] java.util.concurrent.CountDownLatch[] java.util.List java.io.ByteArrayOutputStream java.lang.Thread[]
      StackMap stack:
            new java.lang.String
            dup
            aload 4 /* out */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial java.lang.String.<init>:([B)V
            astore 6 /* output */
        start local 6 // java.lang.String output
        39: .line 194
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        40: goto 43
        41: .line 195
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 6 /* output */
            aload 6 /* output */
            new java.lang.StringBuilder
            dup
            ldc "9229/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sources */
            iload 7 /* i */
            aaload
            invokevirtual org.graalvm.polyglot.Source.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        42: .line 194
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 7 /* i */
            aload 1 /* sources */
            arraylength
            if_icmplt 41
        end local 7 // int i
        44: .line 197
            return
        end local 6 // java.lang.String output
        end local 5 // java.lang.Thread[] threads
        end local 4 // java.io.ByteArrayOutputStream out
        end local 3 // java.util.List errors
        end local 2 // java.util.concurrent.CountDownLatch[] isUp
        end local 1 // org.graalvm.polyglot.Source[] sources
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   45     0     this  Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;
            6   45     1  sources  [Lorg/graalvm/polyglot/Source;
            7   45     2     isUp  [Ljava/util/concurrent/CountDownLatch;
            8   12     3        i  I
           13   45     3   errors  Ljava/util/List<Ljava/lang/Throwable;>;
           15   45     4      out  Ljava/io/ByteArrayOutputStream;
           16   45     5  threads  [Ljava/lang/Thread;
           17   26     6        i  I
           19   24     7    index  I
           22   24     8        t  Ljava/lang/Thread;
           27   31     6        i  I
           33   38     6      err  Ljava/lang/AssertionError;
           35   36     7      thr  Ljava/lang/Throwable;
           39   45     6   output  Ljava/lang/String;
           40   44     7        i  I
    Exceptions:
      throws java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMultipleEnginesSamePath();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=10, args_size=1
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
         0: .line 201
            iconst_2
            anewarray org.graalvm.polyglot.Source
            dup
            iconst_0
         1: .line 202
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = factorial(n);\n  return f;\n}\nfunction factorial(n) {\n  f = 1;\n  i = 2;\n  while (i <= n) {\n    f = f * i;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest1.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
            dup
            iconst_1
         2: .line 203
            ldc "sl"
            ldc "function main() {\n  n = 3;\n  f = fibonacci(n);\n  return f;\n}\nfunction fibonacci(n) {\n  if (n == 0) {\n    return 0;\n  }\n  n1 = 0;\n  i = 2;\n  f = 1;\n  while (i <= n) {\n    lastf = f;\n    f = f + n1;\n    n1 = lastf;\n    i = i + 1;\n  }\n  return f;\n}"
            ldc "MTest2.sl"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            aastore
         3: .line 201
            astore 1 /* sources */
        start local 1 // org.graalvm.polyglot.Source[] sources
         4: .line 205
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            invokestatic java.util.Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;
            astore 2 /* errors */
        start local 2 // java.util.List errors
         5: .line 206
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 3 /* out */
        start local 3 // java.io.ByteArrayOutputStream out
         6: .line 207
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 4 /* isUp */
        start local 4 // java.util.concurrent.CountDownLatch isUp
         7: .line 208
            new java.lang.StringBuilder
            dup
            ldc "samePath"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic com.oracle.truffle.tools.chromeinspector.test.SecureInspectorPathGenerator.getToken:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* samePath */
        start local 5 // java.lang.String samePath
         8: .line 209
            new java.lang.Thread
            dup
            aload 0 /* this */
            aload 1 /* sources */
            aload 5 /* samePath */
            aload 3 /* out */
            aload 4 /* isUp */
            aload 2 /* errors */
            invokedynamic run(Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;[Lorg/graalvm/polyglot/Source;Ljava/lang/String;Ljava/io/ByteArrayOutputStream;Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)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/tools/chromeinspector/test/MultiEngineTest.lambda$2([Lorg/graalvm/polyglot/Source;Ljava/lang/String;Ljava/io/ByteArrayOutputStream;Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)V (7)
                  ()V
         9: .line 216
            aload 1 /* sources */
            iconst_0
            aaload
            invokevirtual org.graalvm.polyglot.Source.getName:()Ljava/lang/String;
        10: .line 209
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
            astore 6 /* t */
        start local 6 // java.lang.Thread t
        11: .line 217
            aload 6 /* t */
            invokevirtual java.lang.Thread.start:()V
        12: .line 218
            aload 4 /* isUp */
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
        13: .line 220
            aload 0 /* this */
            aload 1 /* sources */
            iconst_1
            aaload
            aload 5 /* samePath */
            aload 3 /* out */
            aload 4 /* isUp */
            invokevirtual com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.runEngine:(Lorg/graalvm/polyglot/Source;Ljava/lang/String;Ljava/io/OutputStream;Ljava/util/concurrent/CountDownLatch;)Ljava/lang/String;
            pop
        14: .line 221
            invokestatic org.junit.Assert.fail:()V
        15: .line 222
            goto 19
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest org.graalvm.polyglot.Source[] java.util.List java.io.ByteArrayOutputStream java.util.concurrent.CountDownLatch java.lang.String java.lang.Thread
      StackMap stack: java.lang.Throwable
        16: astore 7 /* thr */
        start local 7 // java.lang.Throwable thr
        17: .line 223
            aload 7 /* thr */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            astore 8 /* message */
        start local 8 // java.lang.String message
        18: .line 224
            aload 8 /* message */
            aload 8 /* message */
            ldc "Inspector session with the same path exists already"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        end local 8 // java.lang.String message
        end local 7 // java.lang.Throwable thr
        19: .line 226
      StackMap locals:
      StackMap stack:
            aload 5 /* samePath */
            invokestatic com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.checkSuspendAndResume:(Ljava/lang/String;)V
        20: .line 227
            aload 6 /* t */
            invokevirtual java.lang.Thread.join:()V
        21: .line 228
            aload 2 /* errors */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 28
        22: .line 229
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            astore 7 /* err */
        start local 7 // java.lang.AssertionError err
        23: .line 230
            aload 2 /* errors */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 26
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest org.graalvm.polyglot.Source[] java.util.List java.io.ByteArrayOutputStream java.util.concurrent.CountDownLatch java.lang.String java.lang.Thread java.lang.AssertionError top java.util.Iterator
      StackMap stack:
        24: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Throwable
            astore 8 /* thr */
        start local 8 // java.lang.Throwable thr
        25: .line 231
            aload 7 /* err */
            aload 8 /* thr */
            invokevirtual java.lang.AssertionError.addSuppressed:(Ljava/lang/Throwable;)V
        end local 8 // java.lang.Throwable thr
        26: .line 230
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        27: .line 233
            aload 7 /* err */
            athrow
        end local 7 // java.lang.AssertionError err
        28: .line 235
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest org.graalvm.polyglot.Source[] java.util.List java.io.ByteArrayOutputStream java.util.concurrent.CountDownLatch java.lang.String java.lang.Thread
      StackMap stack:
            return
        end local 6 // java.lang.Thread t
        end local 5 // java.lang.String samePath
        end local 4 // java.util.concurrent.CountDownLatch isUp
        end local 3 // java.io.ByteArrayOutputStream out
        end local 2 // java.util.List errors
        end local 1 // org.graalvm.polyglot.Source[] sources
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   29     0      this  Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;
            4   29     1   sources  [Lorg/graalvm/polyglot/Source;
            5   29     2    errors  Ljava/util/List<Ljava/lang/Throwable;>;
            6   29     3       out  Ljava/io/ByteArrayOutputStream;
            7   29     4      isUp  Ljava/util/concurrent/CountDownLatch;
            8   29     5  samePath  Ljava/lang/String;
           11   29     6         t  Ljava/lang/Thread;
           17   19     7       thr  Ljava/lang/Throwable;
           18   19     8   message  Ljava/lang/String;
           23   28     7       err  Ljava/lang/AssertionError;
           25   26     8       thr  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          13    15      16  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static void verifyParallelDebug(java.util.concurrent.CountDownLatch[], java.util.List<java.lang.Throwable>);
    descriptor: ([Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.concurrent.CountDownLatch[] isUp
        start local 1 // java.util.List errors
         0: .line 238
            new java.lang.Thread
            dup
            aload 0 /* isUp */
            aload 1 /* errors */
            invokedynamic run([Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)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/tools/chromeinspector/test/MultiEngineTest.lambda$3([Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)V (6)
                  ()V
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
         1: .line 263
            invokevirtual java.lang.Thread.start:()V
         2: .line 264
            return
        end local 1 // java.util.List errors
        end local 0 // java.util.concurrent.CountDownLatch[] isUp
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    isUp  [Ljava/util/concurrent/CountDownLatch;
            0    3     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
    Signature: ([Ljava/util/concurrent/CountDownLatch;Ljava/util/List<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      isUp    
      errors  

  private java.lang.String runEngine(org.graalvm.polyglot.Source, java.io.OutputStream, java.util.concurrent.CountDownLatch);
    descriptor: (Lorg/graalvm/polyglot/Source;Ljava/io/OutputStream;Ljava/util/concurrent/CountDownLatch;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
        start local 1 // org.graalvm.polyglot.Source src
        start local 2 // java.io.OutputStream out
        start local 3 // java.util.concurrent.CountDownLatch isUp
         0: .line 267
            aload 0 /* this */
            aload 1 /* src */
            new java.lang.StringBuilder
            dup
            aload 1 /* src */
            invokevirtual org.graalvm.polyglot.Source.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.oracle.truffle.tools.chromeinspector.test.SecureInspectorPathGenerator.getToken:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* out */
            aload 3 /* isUp */
            invokevirtual com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.runEngine:(Lorg/graalvm/polyglot/Source;Ljava/lang/String;Ljava/io/OutputStream;Ljava/util/concurrent/CountDownLatch;)Ljava/lang/String;
            areturn
        end local 3 // java.util.concurrent.CountDownLatch isUp
        end local 2 // java.io.OutputStream out
        end local 1 // org.graalvm.polyglot.Source src
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;
            0    1     1   src  Lorg/graalvm/polyglot/Source;
            0    1     2   out  Ljava/io/OutputStream;
            0    1     3  isUp  Ljava/util/concurrent/CountDownLatch;
    MethodParameters:
      Name  Flags
      src   
      out   
      isUp  

  private java.lang.String runEngine(org.graalvm.polyglot.Source, java.lang.String, java.io.OutputStream, java.util.concurrent.CountDownLatch);
    descriptor: (Lorg/graalvm/polyglot/Source;Ljava/lang/String;Ljava/io/OutputStream;Ljava/util/concurrent/CountDownLatch;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=5
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
        start local 1 // org.graalvm.polyglot.Source src
        start local 2 // java.lang.String path
        start local 3 // java.io.OutputStream out
        start local 4 // java.util.concurrent.CountDownLatch isUp
         0: .line 271
            aconst_null
            astore 5
            aconst_null
            astore 6
         1: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
            ldc "inspect.Path"
            aload 2 /* path */
            invokevirtual org.graalvm.polyglot.Engine$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Engine$Builder;
            aload 3 /* out */
            invokevirtual org.graalvm.polyglot.Engine$Builder.err:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
            invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
            astore 7 /* e */
        start local 7 // org.graalvm.polyglot.Engine e
         2: .line 272
            aload 0 /* this */
            aload 7 /* e */
            invokevirtual com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.addEngineReference:(Lorg/graalvm/polyglot/Engine;)V
         3: .line 273
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            aload 7 /* e */
            invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowAllAccess:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 8 /* c */
        start local 8 // org.graalvm.polyglot.Context c
         4: .line 274
            aload 4 /* isUp */
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
         5: .line 275
            aload 8 /* c */
            aload 1 /* src */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 9 /* result */
        start local 9 // org.graalvm.polyglot.Value result
         6: .line 276
            aload 9 /* result */
            invokevirtual org.graalvm.polyglot.Value.fitsInLong:()Z
            ifeq 10
         7: .line 277
            aload 9 /* result */
            invokevirtual org.graalvm.polyglot.Value.asLong:()J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
         8: .line 281
            aload 7 /* e */
            ifnull 9
            aload 7 /* e */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
         9: .line 277
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest org.graalvm.polyglot.Source java.lang.String java.io.OutputStream java.util.concurrent.CountDownLatch java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine org.graalvm.polyglot.Context org.graalvm.polyglot.Value
      StackMap stack: java.lang.String
            areturn
        10: .line 279
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            ldc Ljava/lang/String;
            invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
        11: .line 281
            aload 7 /* e */
            ifnull 12
            aload 7 /* e */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
        12: .line 279
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 9 // org.graalvm.polyglot.Value result
        end local 8 // org.graalvm.polyglot.Context c
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest org.graalvm.polyglot.Source java.lang.String java.io.OutputStream java.util.concurrent.CountDownLatch java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine
      StackMap stack: java.lang.Throwable
        13: astore 5
        14: .line 281
            aload 7 /* e */
            ifnull 15
            aload 7 /* e */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
        end local 7 // org.graalvm.polyglot.Engine e
      StackMap locals:
      StackMap stack:
        15: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 6
            aload 5
            ifnonnull 17
            aload 6
            astore 5
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 5
            aload 6
            if_acmpeq 18
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 5
            athrow
        end local 4 // java.util.concurrent.CountDownLatch isUp
        end local 3 // java.io.OutputStream out
        end local 2 // java.lang.String path
        end local 1 // org.graalvm.polyglot.Source src
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    this  Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;
            0   19     1     src  Lorg/graalvm/polyglot/Source;
            0   19     2    path  Ljava/lang/String;
            0   19     3     out  Ljava/io/OutputStream;
            0   19     4    isUp  Ljava/util/concurrent/CountDownLatch;
            2   15     7       e  Lorg/graalvm/polyglot/Engine;
            4   13     8       c  Lorg/graalvm/polyglot/Context;
            6   13     9  result  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           2     8      13  any
          10    11      13  any
           1     9      16  any
          10    12      16  any
          13    16      16  any
    MethodParameters:
      Name  Flags
      src   
      path  
      out   
      isUp  

  private static void checkInfo(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=12, args_size=1
        start local 0 // java.lang.String[] paths
         0: .line 285
            new java.net.URL
            dup
            ldc "http"
            invokestatic java.net.InetAddress.getLoopbackAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            sipush 9229
            ldc "/json"
            invokespecial java.net.URL.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
            astore 1 /* url */
        start local 1 // java.net.URL url
         1: .line 286
            aload 1 /* url */
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            checkcast java.net.HttpURLConnection
            astore 2 /* connection */
        start local 2 // java.net.HttpURLConnection connection
         2: .line 287
            ldc "application/json; charset=UTF-8"
            aload 2 /* connection */
            invokevirtual java.net.HttpURLConnection.getContentType:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 288
            new java.io.StringWriter
            dup
            aload 2 /* connection */
            invokevirtual java.net.HttpURLConnection.getContentLength:()I
            invokespecial java.io.StringWriter.<init>:(I)V
            astore 3 /* out */
        start local 3 // java.io.StringWriter out
         4: .line 289
            aconst_null
            astore 4
            aconst_null
            astore 5
         5: new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 2 /* connection */
            invokevirtual java.net.HttpURLConnection.getInputStream:()Ljava/io/InputStream;
            ldc "UTF-8"
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 6 /* in */
        start local 6 // java.io.BufferedReader in
         6: .line 291
            goto 8
        start local 7 // java.lang.String inputLine
         7: .line 292
      StackMap locals: java.lang.String[] java.net.URL java.net.HttpURLConnection java.io.StringWriter java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
      StackMap stack:
            aload 3 /* out */
            aload 7 /* inputLine */
            invokevirtual java.io.StringWriter.write:(Ljava/lang/String;)V
        end local 7 // java.lang.String inputLine
         8: .line 291
      StackMap locals:
      StackMap stack:
            aload 6 /* in */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 7 /* inputLine */
        start local 7 // java.lang.String inputLine
         9: ifnonnull 7
        end local 7 // java.lang.String inputLine
        10: .line 294
            aload 6 /* in */
            ifnull 16
            aload 6 /* in */
            invokevirtual java.io.BufferedReader.close:()V
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 4
            aload 6 /* in */
            ifnull 12
            aload 6 /* in */
            invokevirtual java.io.BufferedReader.close:()V
        end local 6 // java.io.BufferedReader in
      StackMap locals:
      StackMap stack:
        12: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 5
            aload 4
            ifnonnull 14
            aload 5
            astore 4
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 4
            aload 5
            if_acmpeq 15
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 4
            athrow
        16: .line 295
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            astore 4 /* message */
        start local 4 // java.lang.String message
        17: .line 296
            new com.oracle.truffle.tools.utils.json.JSONArray
            dup
            aload 4 /* message */
            invokespecial com.oracle.truffle.tools.utils.json.JSONArray.<init>:(Ljava/lang/String;)V
            astore 5 /* infos */
        start local 5 // com.oracle.truffle.tools.utils.json.JSONArray infos
        18: .line 297
            aload 4 /* message */
            aload 0 /* paths */
            arraylength
            i2l
            aload 5 /* infos */
            invokevirtual com.oracle.truffle.tools.utils.json.JSONArray.length:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        19: .line 298
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* endWs */
        start local 6 // java.util.Set endWs
        20: .line 299
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        21: goto 24
        22: .line 300
      StackMap locals: java.lang.String[] java.net.URL java.net.HttpURLConnection java.io.StringWriter java.lang.String com.oracle.truffle.tools.utils.json.JSONArray java.util.Set int
      StackMap stack:
            aload 6 /* endWs */
            new java.lang.StringBuilder
            dup
            ldc "9229/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* paths */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        23: .line 299
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* i */
            aload 0 /* paths */
            arraylength
            if_icmplt 22
        end local 7 // int i
        25: .line 302
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        26: goto 38
        27: .line 303
      StackMap locals:
      StackMap stack:
            aload 5 /* infos */
            iload 7 /* i */
            invokevirtual com.oracle.truffle.tools.utils.json.JSONArray.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.tools.utils.json.JSONObject
            astore 8 /* info */
        start local 8 // com.oracle.truffle.tools.utils.json.JSONObject info
        28: .line 304
            aload 8 /* info */
            ldc "webSocketDebuggerUrl"
            invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* ws */
        start local 9 // java.lang.String ws
        29: .line 305
            aload 6 /* endWs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 34
      StackMap locals: java.lang.String[] java.net.URL java.net.HttpURLConnection java.io.StringWriter java.lang.String com.oracle.truffle.tools.utils.json.JSONArray java.util.Set int com.oracle.truffle.tools.utils.json.JSONObject java.lang.String top java.util.Iterator
      StackMap stack:
        30: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* end */
        start local 10 // java.lang.String end
        31: .line 306
            aload 9 /* ws */
            aload 10 /* end */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 34
        32: .line 307
            aload 6 /* endWs */
            aload 10 /* end */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        33: .line 308
            goto 35
        end local 10 // java.lang.String end
        34: .line 305
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        35: .line 311
      StackMap locals: java.lang.String[] java.net.URL java.net.HttpURLConnection java.io.StringWriter java.lang.String com.oracle.truffle.tools.utils.json.JSONArray java.util.Set int com.oracle.truffle.tools.utils.json.JSONObject java.lang.String
      StackMap stack:
            aload 6 /* endWs */
            invokeinterface java.util.Set.size:()I
            aload 0 /* paths */
            arraylength
            iload 7 /* i */
            isub
            iconst_1
            isub
            if_icmple 37
        36: .line 312
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            aload 9 /* ws */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " does not end with any of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* endWs */
            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 9 // java.lang.String ws
        end local 8 // com.oracle.truffle.tools.utils.json.JSONObject info
        37: .line 302
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 7 /* i */
            aload 0 /* paths */
            arraylength
            if_icmplt 27
        end local 7 // int i
        39: .line 315
            aload 6 /* endWs */
            invokeinterface java.util.Set.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        40: .line 316
            return
        end local 6 // java.util.Set endWs
        end local 5 // com.oracle.truffle.tools.utils.json.JSONArray infos
        end local 4 // java.lang.String message
        end local 3 // java.io.StringWriter out
        end local 2 // java.net.HttpURLConnection connection
        end local 1 // java.net.URL url
        end local 0 // java.lang.String[] paths
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   41     0       paths  [Ljava/lang/String;
            1   41     1         url  Ljava/net/URL;
            2   41     2  connection  Ljava/net/HttpURLConnection;
            4   41     3         out  Ljava/io/StringWriter;
            6   12     6          in  Ljava/io/BufferedReader;
            7    8     7   inputLine  Ljava/lang/String;
            9   10     7   inputLine  Ljava/lang/String;
           17   41     4     message  Ljava/lang/String;
           18   41     5       infos  Lcom/oracle/truffle/tools/utils/json/JSONArray;
           20   41     6       endWs  Ljava/util/Set<Ljava/lang/String;>;
           21   25     7           i  I
           26   39     7           i  I
           28   37     8        info  Lcom/oracle/truffle/tools/utils/json/JSONObject;
           29   37     9          ws  Ljava/lang/String;
           31   34    10         end  Ljava/lang/String;
      Exception table:
        from    to  target  type
           6    10      11  any
           5    13      13  any
    Exceptions:
      throws java.net.MalformedURLException, java.io.IOException
    MethodParameters:
       Name  Flags
      paths  

  private static void checkSuspendAndResume(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=1
        start local 0 // java.lang.String path
         0: .line 319
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 1 /* closed */
        start local 1 // java.util.concurrent.CountDownLatch closed
         1: .line 320
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 2 /* paused */
        start local 2 // java.util.concurrent.atomic.AtomicBoolean paused
         2: .line 321
            new java.util.concurrent.atomic.AtomicReference
            dup
            aconst_null
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
            astore 3 /* exception */
        start local 3 // java.util.concurrent.atomic.AtomicReference exception
         3: .line 322
            new java.lang.StringBuilder
            dup
            ldc "ws://"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic java.net.InetAddress.getLoopbackAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            sipush 9229
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* url */
        start local 4 // java.lang.String url
         4: .line 323
            new com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest$1
            dup
            new java.net.URI
            dup
            aload 4 /* url */
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            aload 2 /* paused */
            aload 1 /* closed */
            aload 3 /* exception */
            invokespecial com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest$1.<init>:(Ljava/net/URI;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicReference;)V
            astore 5 /* wsc */
        start local 5 // com.oracle.truffle.tools.utils.java_websocket.client.WebSocketClient wsc
         5: .line 348
            aload 5 /* wsc */
            invokevirtual com.oracle.truffle.tools.utils.java_websocket.client.WebSocketClient.connectBlocking:()Z
            istore 6 /* connectionSucceeded */
        start local 6 // boolean connectionSucceeded
         6: .line 349
            new java.lang.StringBuilder
            dup
            ldc "Connection has not succeeded: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* url */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iload 6 /* connectionSucceeded */
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         7: .line 350
            getstatic com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.INITIAL_MESSAGES:[Ljava/lang/String;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 11
      StackMap locals: java.lang.String java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean java.util.concurrent.atomic.AtomicReference java.lang.String com.oracle.truffle.tools.utils.java_websocket.client.WebSocketClient int top int int java.lang.String[]
      StackMap stack:
         8: aload 10
            iload 8
            aaload
            astore 7 /* message */
        start local 7 // java.lang.String message
         9: .line 351
            aload 5 /* wsc */
            aload 7 /* message */
            invokevirtual com.oracle.truffle.tools.utils.java_websocket.client.WebSocketClient.send:(Ljava/lang/String;)V
        end local 7 // java.lang.String message
        10: .line 350
            iinc 8 1
      StackMap locals:
      StackMap stack:
        11: iload 8
            iload 9
            if_icmplt 8
        12: .line 353
            aload 1 /* closed */
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
        13: .line 354
            aload 5 /* wsc */
            invokevirtual com.oracle.truffle.tools.utils.java_websocket.client.WebSocketClient.close:()V
        14: .line 355
            aload 3 /* exception */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            ifnull 16
        15: .line 356
            aload 3 /* exception */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast java.lang.Exception
            athrow
        16: .line 358
      StackMap locals: java.lang.String java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean java.util.concurrent.atomic.AtomicReference java.lang.String com.oracle.truffle.tools.utils.java_websocket.client.WebSocketClient int
      StackMap stack:
            return
        end local 6 // boolean connectionSucceeded
        end local 5 // com.oracle.truffle.tools.utils.java_websocket.client.WebSocketClient wsc
        end local 4 // java.lang.String url
        end local 3 // java.util.concurrent.atomic.AtomicReference exception
        end local 2 // java.util.concurrent.atomic.AtomicBoolean paused
        end local 1 // java.util.concurrent.CountDownLatch closed
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   17     0                 path  Ljava/lang/String;
            1   17     1               closed  Ljava/util/concurrent/CountDownLatch;
            2   17     2               paused  Ljava/util/concurrent/atomic/AtomicBoolean;
            3   17     3            exception  Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Exception;>;
            4   17     4                  url  Ljava/lang/String;
            5   17     5                  wsc  Lcom/oracle/truffle/tools/utils/java_websocket/client/WebSocketClient;
            6   17     6  connectionSucceeded  Z
            9   10     7              message  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      path  

  private static void lambda$0(java.util.concurrent.CountDownLatch[], java.util.concurrent.atomic.AtomicReference);
    descriptor: ([Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicReference;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=2
         0: .line 141
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 8
         2: .line 142
      StackMap locals: int
      StackMap stack:
            aload 0
            iload 2 /* i */
            aaload
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
         3: .line 143
            new java.lang.StringBuilder
            dup
            ldc "MTest"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ".sl."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.oracle.truffle.tools.chromeinspector.test.SecureInspectorPathGenerator.getToken:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: iconst_1
            anewarray java.lang.String
            dup
            iconst_0
         5: .line 144
            aload 3 /* path */
            aastore
            invokestatic com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.checkInfo:([Ljava/lang/String;)V
         6: .line 145
            aload 3 /* path */
            invokestatic com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.checkSuspendAndResume:(Ljava/lang/String;)V
        end local 3 // java.lang.String path
         7: .line 141
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 0
            arraylength
            if_icmplt 2
        end local 2 // int i
         9: .line 147
            goto 13
      StackMap locals: java.util.concurrent.CountDownLatch[] java.util.concurrent.atomic.AtomicReference
      StackMap stack: java.lang.Throwable
        10: astore 2 /* thr */
        start local 2 // java.lang.Throwable thr
        11: .line 148
            aload 2 /* thr */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        12: .line 149
            aload 1
            aload 2 /* thr */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
        end local 2 // java.lang.Throwable thr
        13: .line 151
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    9     2     i  I
            4    7     3  path  Ljava/lang/String;
           11   13     2   thr  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     9      10  Class java.lang.Throwable

  private void lambda$1(org.graalvm.polyglot.Source[], int, java.io.ByteArrayOutputStream, java.util.concurrent.CountDownLatch[], java.util.List);
    descriptor: ([Lorg/graalvm/polyglot/Source;ILjava/io/ByteArrayOutputStream;[Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
         0: .line 174
            aload 0 /* this */
            aload 1
            iload 2
            aaload
            aload 3
            aload 4
            iload 2
            aaload
            invokevirtual com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.runEngine:(Lorg/graalvm/polyglot/Source;Ljava/io/OutputStream;Ljava/util/concurrent/CountDownLatch;)Ljava/lang/String;
            pop
         1: .line 175
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 6 /* thr */
        start local 6 // java.lang.Throwable thr
         3: .line 176
            aload 6 /* thr */
            invokevirtual java.lang.Throwable.printStackTrace:()V
         4: .line 177
            aload 5
            aload 6 /* thr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.Throwable thr
         5: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;
            3    5     6   thr  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  private void lambda$2(org.graalvm.polyglot.Source[], java.lang.String, java.io.ByteArrayOutputStream, java.util.concurrent.CountDownLatch, java.util.List);
    descriptor: ([Lorg/graalvm/polyglot/Source;Ljava/lang/String;Ljava/io/ByteArrayOutputStream;Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
         0: .line 211
            aload 0 /* this */
            aload 1
            iconst_0
            aaload
            aload 2
            aload 3
            aload 4
            invokevirtual com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.runEngine:(Lorg/graalvm/polyglot/Source;Ljava/lang/String;Ljava/io/OutputStream;Ljava/util/concurrent/CountDownLatch;)Ljava/lang/String;
            pop
         1: .line 212
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 6 /* thr */
        start local 6 // java.lang.Throwable thr
         3: .line 213
            aload 5
            aload 6 /* thr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 214
            aload 4
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        end local 6 // java.lang.Throwable thr
         5: .line 216
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/tools/chromeinspector/test/MultiEngineTest;
            3    5     6   thr  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  private static void lambda$3(java.util.concurrent.CountDownLatch[], java.util.List);
    descriptor: ([Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=2
         0: .line 240
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 4
         2: .line 241
      StackMap locals: int
      StackMap stack:
            aload 0
            iload 2 /* i */
            aaload
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
         3: .line 240
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* i */
            aload 0
            arraylength
            if_icmplt 2
        end local 2 // int i
         5: .line 243
            aload 0
            arraylength
            anewarray java.lang.String
            astore 2 /* paths */
        start local 2 // java.lang.String[] paths
         6: .line 244
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 10
         8: .line 245
      StackMap locals: java.util.concurrent.CountDownLatch[] java.util.List java.lang.String[] int
      StackMap stack:
            aload 2 /* paths */
            iload 3 /* i */
            new java.lang.StringBuilder
            dup
            ldc "MTest"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ".sl."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.oracle.truffle.tools.chromeinspector.test.SecureInspectorPathGenerator.getToken:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
         9: .line 244
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 2 /* paths */
            arraylength
            if_icmplt 8
        end local 3 // int i
        11: .line 247
            aload 2 /* paths */
            invokestatic com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.checkInfo:([Ljava/lang/String;)V
        12: .line 248
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        13: goto 18
        14: .line 249
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            istore 4 /* index */
        start local 4 // int index
        15: .line 250
            new java.lang.Thread
            dup
            aload 2 /* paths */
            iload 4 /* index */
            aload 1
            invokedynamic run([Ljava/lang/String;ILjava/util/List;)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/tools/chromeinspector/test/MultiEngineTest.lambda$4([Ljava/lang/String;ILjava/util/List;)V (6)
                  ()V
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
        16: .line 257
            invokevirtual java.lang.Thread.start:()V
        end local 4 // int index
        17: .line 248
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            aload 2 /* paths */
            arraylength
            if_icmplt 14
        end local 3 // int i
        end local 2 // java.lang.String[] paths
        19: .line 259
            goto 23
      StackMap locals: java.util.concurrent.CountDownLatch[] java.util.List
      StackMap stack: java.lang.Throwable
        20: astore 2 /* thr */
        start local 2 // java.lang.Throwable thr
        21: .line 260
            aload 2 /* thr */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        22: .line 261
            aload 1
            aload 2 /* thr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.Throwable thr
        23: .line 263
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    5     2      i  I
            6   19     2  paths  [Ljava/lang/String;
            7   11     3      i  I
           13   19     3      i  I
           15   17     4  index  I
           21   23     2    thr  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0    19      20  Class java.lang.Throwable

  private static void lambda$4(java.lang.String[], int, java.util.List);
    descriptor: ([Ljava/lang/String;ILjava/util/List;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
         0: .line 252
            aload 0
            iload 1
            aaload
            invokestatic com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest.checkSuspendAndResume:(Ljava/lang/String;)V
         1: .line 253
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 3 /* thr */
        start local 3 // java.lang.Throwable thr
         3: .line 254
            aload 3 /* thr */
            invokevirtual java.lang.Throwable.printStackTrace:()V
         4: .line 255
            aload 2
            aload 3 /* thr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Throwable thr
         5: .line 257
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3    5     3   thr  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
}
SourceFile: "MultiEngineTest.java"
NestMembers:
  com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest$1
InnerClasses:
  com.oracle.truffle.tools.chromeinspector.test.MultiEngineTest$1
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
  public final Builder = org.graalvm.polyglot.Engine$Builder of org.graalvm.polyglot.Engine
  public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source