class com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread extends java.lang.Thread implements org.graalvm.polyglot.io.MessageEndpoint
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread
  super_class: java.lang.Thread
{
  private final boolean suspend;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean inspectInternal;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean inspectInitialization;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.net.URI> sourcePath;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/net/URI;>;

  private com.oracle.truffle.tools.chromeinspector.server.InspectServerSession inspect;
    descriptor: Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.tools.chromeinspector.server.ConnectionWatcher connectionWatcher;
    descriptor: Lcom/oracle/truffle/tools/chromeinspector/server/ConnectionWatcher;
    flags: (0x0002) ACC_PRIVATE

  private long contextId;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.tools.chromeinspector.InspectorExecutionContext inspectorContext;
    descriptor: Lcom/oracle/truffle/tools/chromeinspector/InspectorExecutionContext;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.polyglot.Source evalSource;
    descriptor: Lorg/graalvm/polyglot/Source;
    flags: (0x0002) ACC_PRIVATE

  private java.util.concurrent.CompletableFuture<org.graalvm.polyglot.Value> evalValue;
    descriptor: Ljava/util/concurrent/CompletableFuture;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/CompletableFuture<Lorg/graalvm/polyglot/Value;>;

  private boolean done;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.StringBuilder receivedMessages;
    descriptor: Ljava/lang/StringBuilder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.Semaphore initialized;
    descriptor: Ljava/util/concurrent/Semaphore;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.Throwable error;
    descriptor: Ljava/lang/Throwable;
    flags: (0x0002) ACC_PRIVATE

  final java.lang.Object lock;
    descriptor: Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.tools.chromeinspector.test.InspectorTester$ProxyOutputStream err;
    descriptor: Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$ProxyOutputStream;
    flags: (0x0010) ACC_FINAL

  private final com.oracle.truffle.tools.chromeinspector.test.EnginesGCedTest$GCCheck gcCheck;
    descriptor: Lcom/oracle/truffle/tools/chromeinspector/test/EnginesGCedTest$GCCheck;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(boolean, boolean, boolean, java.util.List<java.net.URI>);
    descriptor: (ZZZLjava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
        start local 1 // boolean suspend
        start local 2 // boolean inspectInternal
        start local 3 // boolean inspectInitialization
        start local 4 // java.util.List sourcePath
         0: .line 280
            aload 0 /* this */
            ldc "Inspector Executor"
            invokespecial java.lang.Thread.<init>:(Ljava/lang/String;)V
         1: .line 271
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.done:Z
         2: .line 272
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.receivedMessages:Ljava/lang/StringBuilder;
         3: .line 273
            aload 0 /* this */
            new java.util.concurrent.Semaphore
            dup
            iconst_0
            invokespecial java.util.concurrent.Semaphore.<init>:(I)V
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.initialized:Ljava/util/concurrent/Semaphore;
         4: .line 275
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.lock:Ljava/lang/Object;
         5: .line 276
            aload 0 /* this */
            new com.oracle.truffle.tools.chromeinspector.test.InspectorTester$ProxyOutputStream
            dup
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokespecial com.oracle.truffle.tools.chromeinspector.test.InspectorTester$ProxyOutputStream.<init>:(Ljava/io/OutputStream;)V
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.err:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$ProxyOutputStream;
         6: .line 281
            aload 0 /* this */
            iload 1 /* suspend */
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.suspend:Z
         7: .line 282
            aload 0 /* this */
            iload 2 /* inspectInternal */
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspectInternal:Z
         8: .line 283
            aload 0 /* this */
            iload 3 /* inspectInitialization */
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspectInitialization:Z
         9: .line 284
            aload 0 /* this */
            aload 4 /* sourcePath */
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.sourcePath:Ljava/util/List;
        10: .line 285
            aload 0 /* this */
            new com.oracle.truffle.tools.chromeinspector.test.EnginesGCedTest$GCCheck
            dup
            invokespecial com.oracle.truffle.tools.chromeinspector.test.EnginesGCedTest$GCCheck.<init>:()V
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.gcCheck:Lcom/oracle/truffle/tools/chromeinspector/test/EnginesGCedTest$GCCheck;
        11: .line 286
            return
        end local 4 // java.util.List sourcePath
        end local 3 // boolean inspectInitialization
        end local 2 // boolean inspectInternal
        end local 1 // boolean suspend
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   12     0                   this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$InspectExecThread;
            0   12     1                suspend  Z
            0   12     2        inspectInternal  Z
            0   12     3  inspectInitialization  Z
            0   12     4             sourcePath  Ljava/util/List<Ljava/net/URI;>;
    Signature: (ZZZLjava/util/List<Ljava/net/URI;>;)V
    MethodParameters:
                       Name  Flags
      suspend                
      inspectInternal        final
      inspectInitialization  final
      sourcePath             

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=1
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
         0: .line 290
            invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.err:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$ProxyOutputStream;
            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 1 /* engine */
        start local 1 // org.graalvm.polyglot.Engine engine
         1: .line 291
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.gcCheck:Lcom/oracle/truffle/tools/chromeinspector/test/EnginesGCedTest$GCCheck;
            aload 1 /* engine */
            invokevirtual com.oracle.truffle.tools.chromeinspector.test.EnginesGCedTest$GCCheck.addReference:(Ljava/lang/Object;)V
         2: .line 292
            aload 1 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "InspectorTestInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            astore 2 /* testInstrument */
        start local 2 // org.graalvm.polyglot.Instrument testInstrument
         3: .line 293
            aload 2 /* testInstrument */
            ldc Lcom/oracle/truffle/tools/chromeinspector/test/InspectSessionInfoProvider;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfoProvider
            astore 3 /* sessionInfoProvider */
        start local 3 // com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfoProvider sessionInfoProvider
         4: .line 294
            aload 3 /* sessionInfoProvider */
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.suspend:Z
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspectInternal:Z
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspectInitialization:Z
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.sourcePath:Ljava/util/List;
            invokeinterface com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfoProvider.getSessionInfo:(ZZZLjava/util/List;)Lcom/oracle/truffle/tools/chromeinspector/test/InspectSessionInfo;
            astore 4 /* sessionInfo */
        start local 4 // com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo sessionInfo
         5: .line 295
            aload 0 /* this */
            aload 4 /* sessionInfo */
            invokeinterface com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo.getInspectServerSession:()Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspect:Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
         6: .line 297
            aload 0 /* this */
            aload 4 /* sessionInfo */
            invokeinterface com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo.getConnectionWatcher:()Lcom/oracle/truffle/tools/chromeinspector/server/ConnectionWatcher;
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.connectionWatcher:Lcom/oracle/truffle/tools/chromeinspector/server/ConnectionWatcher;
         7: .line 298
            aload 0 /* this */
            aload 4 /* sessionInfo */
            invokeinterface com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo.getId:()J
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.contextId:J
         8: .line 299
            aload 0 /* this */
            aload 4 /* sessionInfo */
            invokeinterface com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo.getInspectorContext:()Lcom/oracle/truffle/tools/chromeinspector/InspectorExecutionContext;
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspectorContext:Lcom/oracle/truffle/tools/chromeinspector/InspectorExecutionContext;
         9: .line 300
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspect:Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.tools.chromeinspector.server.InspectServerSession.open:(Lorg/graalvm/polyglot/io/MessageEndpoint;)V
        10: .line 301
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            aload 1 /* engine */
            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 5 /* context */
        start local 5 // org.graalvm.polyglot.Context context
        11: .line 302
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.initialized:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
        12: .line 303
            aconst_null
            astore 6 /* source */
        start local 6 // org.graalvm.polyglot.Source source
        13: .line 304
            aconst_null
            astore 7 /* valueFuture */
        start local 7 // java.util.concurrent.CompletableFuture valueFuture
        14: .line 306
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread org.graalvm.polyglot.Engine org.graalvm.polyglot.Instrument com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfoProvider com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo org.graalvm.polyglot.Context org.graalvm.polyglot.Source java.util.concurrent.CompletableFuture
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.lock:Ljava/lang/Object;
            dup
            astore 8
            monitorenter
        15: .line 307
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalSource:Lorg/graalvm/polyglot/Source;
            ifnull 21
        16: .line 308
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalSource:Lorg/graalvm/polyglot/Source;
            astore 6 /* source */
        17: .line 309
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalValue:Ljava/util/concurrent/CompletableFuture;
            astore 7 /* valueFuture */
        18: .line 310
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalSource:Lorg/graalvm/polyglot/Source;
        19: .line 311
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalValue:Ljava/util/concurrent/CompletableFuture;
        20: .line 312
            goto 27
        21: .line 313
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            astore 6 /* source */
        22: .line 314
            aconst_null
            astore 7 /* valueFuture */
        23: .line 315
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.done:Z
            ifne 27
        24: .line 317
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
        25: .line 318
            goto 27
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        26: pop
        27: .line 306
      StackMap locals:
      StackMap stack:
            aload 8
            monitorexit
        28: goto 31
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: aload 8
            monitorexit
        30: athrow
        31: .line 323
      StackMap locals:
      StackMap stack:
            aload 6 /* source */
            ifnull 34
        32: .line 324
            aload 5 /* context */
            aload 6 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 8 /* value */
        start local 8 // org.graalvm.polyglot.Value value
        33: .line 325
            aload 7 /* valueFuture */
            aload 8 /* value */
            invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.graalvm.polyglot.Value value
        34: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.done:Z
            ifeq 14
        end local 7 // java.util.concurrent.CompletableFuture valueFuture
        end local 6 // org.graalvm.polyglot.Source source
        end local 5 // org.graalvm.polyglot.Context context
        35: .line 328
            goto 56
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread org.graalvm.polyglot.Engine org.graalvm.polyglot.Instrument com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfoProvider com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo
      StackMap stack: java.lang.ThreadDeath
        36: astore 5 /* td */
        start local 5 // java.lang.ThreadDeath td
        37: .line 329
            aload 5 /* td */
            athrow
        end local 5 // java.lang.ThreadDeath td
        38: .line 330
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        39: .line 331
            aload 0 /* this */
            aload 5 /* t */
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.error:Ljava/lang/Throwable;
        end local 5 // java.lang.Throwable t
        40: .line 334
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspect:Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
            invokevirtual com.oracle.truffle.tools.chromeinspector.server.InspectServerSession.sendClose:()V
        41: .line 335
            goto 44
      StackMap locals:
      StackMap stack: java.io.IOException
        42: astore 10 /* e */
        start local 10 // java.io.IOException e
        43: .line 336
            aload 10 /* e */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        end local 10 // java.io.IOException e
        44: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspect:Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
        45: .line 339
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspectorContext:Lcom/oracle/truffle/tools/chromeinspector/InspectorExecutionContext;
        46: .line 340
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalValue:Ljava/util/concurrent/CompletableFuture;
            goto 63
        47: .line 332
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        48: .line 334
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspect:Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
            invokevirtual com.oracle.truffle.tools.chromeinspector.server.InspectServerSession.sendClose:()V
        49: .line 335
            goto 52
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread org.graalvm.polyglot.Engine org.graalvm.polyglot.Instrument com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfoProvider com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo top top top top java.lang.Throwable
      StackMap stack: java.io.IOException
        50: astore 10 /* e */
        start local 10 // java.io.IOException e
        51: .line 336
            aload 10 /* e */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        end local 10 // java.io.IOException e
        52: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspect:Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
        53: .line 339
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspectorContext:Lcom/oracle/truffle/tools/chromeinspector/InspectorExecutionContext;
        54: .line 340
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalValue:Ljava/util/concurrent/CompletableFuture;
        55: .line 341
            aload 9
            athrow
        56: .line 334
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread org.graalvm.polyglot.Engine org.graalvm.polyglot.Instrument com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfoProvider com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspect:Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
            invokevirtual com.oracle.truffle.tools.chromeinspector.server.InspectServerSession.sendClose:()V
        57: .line 335
            goto 60
      StackMap locals:
      StackMap stack: java.io.IOException
        58: astore 10 /* e */
        start local 10 // java.io.IOException e
        59: .line 336
            aload 10 /* e */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        end local 10 // java.io.IOException e
        60: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspect:Lcom/oracle/truffle/tools/chromeinspector/server/InspectServerSession;
        61: .line 339
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.inspectorContext:Lcom/oracle/truffle/tools/chromeinspector/InspectorExecutionContext;
        62: .line 340
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalValue:Ljava/util/concurrent/CompletableFuture;
        63: .line 342
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfo sessionInfo
        end local 3 // com.oracle.truffle.tools.chromeinspector.test.InspectSessionInfoProvider sessionInfoProvider
        end local 2 // org.graalvm.polyglot.Instrument testInstrument
        end local 1 // org.graalvm.polyglot.Engine engine
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   64     0                 this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$InspectExecThread;
            1   64     1               engine  Lorg/graalvm/polyglot/Engine;
            3   64     2       testInstrument  Lorg/graalvm/polyglot/Instrument;
            4   64     3  sessionInfoProvider  Lcom/oracle/truffle/tools/chromeinspector/test/InspectSessionInfoProvider;
            5   64     4          sessionInfo  Lcom/oracle/truffle/tools/chromeinspector/test/InspectSessionInfo;
           11   35     5              context  Lorg/graalvm/polyglot/Context;
           13   35     6               source  Lorg/graalvm/polyglot/Source;
           14   35     7          valueFuture  Ljava/util/concurrent/CompletableFuture<Lorg/graalvm/polyglot/Value;>;
           33   34     8                value  Lorg/graalvm/polyglot/Value;
           37   38     5                   td  Ljava/lang/ThreadDeath;
           39   40     5                    t  Ljava/lang/Throwable;
           43   44    10                    e  Ljava/io/IOException;
           51   52    10                    e  Ljava/io/IOException;
           59   60    10                    e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          24    25      26  Class java.lang.InterruptedException
          15    28      29  any
          29    30      29  any
           6    35      36  Class java.lang.ThreadDeath
           6    35      38  Class java.lang.Throwable
          40    41      42  Class java.io.IOException
           6    40      47  any
          48    49      50  Class java.io.IOException
          56    57      58  Class java.io.IOException

  private java.util.concurrent.Future<org.graalvm.polyglot.Value> eval(org.graalvm.polyglot.Source);
    descriptor: (Lorg/graalvm/polyglot/Source;)Ljava/util/concurrent/Future;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
        start local 1 // org.graalvm.polyglot.Source source
         0: .line 346
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.lock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 347
            aload 0 /* this */
            aload 1 /* source */
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalSource:Lorg/graalvm/polyglot/Source;
         2: .line 348
            aload 0 /* this */
            new java.util.concurrent.CompletableFuture
            dup
            invokespecial java.util.concurrent.CompletableFuture.<init>:()V
            dup_x1
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.evalValue:Ljava/util/concurrent/CompletableFuture;
            astore 2 /* valueFuture */
        start local 2 // java.util.concurrent.Future valueFuture
         3: .line 349
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         4: .line 346
            aload 3
            monitorexit
         5: goto 8
        end local 2 // java.util.concurrent.Future valueFuture
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread org.graalvm.polyglot.Source top java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
        start local 2 // java.util.concurrent.Future valueFuture
         8: .line 351
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread org.graalvm.polyglot.Source java.util.concurrent.Future
      StackMap stack:
            aload 2 /* valueFuture */
            areturn
        end local 2 // java.util.concurrent.Future valueFuture
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$InspectExecThread;
            0    9     1       source  Lorg/graalvm/polyglot/Source;
            3    6     2  valueFuture  Ljava/util/concurrent/Future<Lorg/graalvm/polyglot/Value;>;
            8    9     2  valueFuture  Ljava/util/concurrent/Future<Lorg/graalvm/polyglot/Value;>;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Signature: (Lorg/graalvm/polyglot/Source;)Ljava/util/concurrent/Future<Lorg/graalvm/polyglot/Value;>;
    MethodParameters:
        Name  Flags
      source  

  public void sendText(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
        start local 1 // java.lang.String message
         0: .line 356
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.receivedMessages:Ljava/lang/StringBuilder;
            dup
            astore 2
            monitorenter
         1: .line 357
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.receivedMessages:Ljava/lang/StringBuilder;
            aload 1 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 358
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.receivedMessages:Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 359
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread.receivedMessages:Ljava/lang/StringBuilder;
            invokevirtual java.lang.Object.notifyAll:()V
         4: .line 356
            aload 2
            monitorexit
         5: goto 8
      StackMap locals: com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread java.lang.String java.lang.StringBuilder
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 361
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$InspectExecThread;
            0    9     1  message  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
         Name  Flags
      message  

  public void sendBinary(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
        start local 1 // java.nio.ByteBuffer data
         0: .line 365
            ldc "Unexpected binary message"
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
         1: .line 366
            return
        end local 1 // java.nio.ByteBuffer data
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$InspectExecThread;
            0    2     1  data  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  

  public void sendPing(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
        start local 1 // java.nio.ByteBuffer data
         0: .line 370
            return
        end local 1 // java.nio.ByteBuffer data
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$InspectExecThread;
            0    1     1  data  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  

  public void sendPong(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
        start local 1 // java.nio.ByteBuffer data
         0: .line 374
            return
        end local 1 // java.nio.ByteBuffer data
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$InspectExecThread;
            0    1     1  data  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  

  public void sendClose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
         0: .line 378
            return
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester$InspectExecThread;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "InspectorTester.java"
NestHost: com.oracle.truffle.tools.chromeinspector.test.InspectorTester
InnerClasses:
  final GCCheck = com.oracle.truffle.tools.chromeinspector.test.EnginesGCedTest$GCCheck of com.oracle.truffle.tools.chromeinspector.test.EnginesGCedTest
  private InspectExecThread = com.oracle.truffle.tools.chromeinspector.test.InspectorTester$InspectExecThread of com.oracle.truffle.tools.chromeinspector.test.InspectorTester
  private final ProxyOutputStream = com.oracle.truffle.tools.chromeinspector.test.InspectorTester$ProxyOutputStream of com.oracle.truffle.tools.chromeinspector.test.InspectorTester
  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