final class com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode extends com.oracle.truffle.api.test.TruffleExceptionTest$StatementNode
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode
  super_class: com.oracle.truffle.api.test.TruffleExceptionTest$StatementNode
{
  private com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode block;
    descriptor: Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode catchBlock;
    descriptor: Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode finallyBlock;
    descriptor: Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.api.interop.InteropLibrary exceptions;
    descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private final com.oracle.truffle.api.profiles.BranchProfile exceptionProfile;
    descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode, com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode, com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode);
    descriptor: (Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
        start local 1 // com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode block
        start local 2 // com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode catchBlock
        start local 3 // com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode finallyBlock
         0: .line 452
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$StatementNode.<init>:()V
         1: .line 449
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            iconst_5
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.createDispatched:(I)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            putfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
         2: .line 450
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
            putfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptionProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
         3: .line 453
            aload 0 /* this */
            aload 1 /* block */
            putfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.block:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
         4: .line 454
            aload 0 /* this */
            aload 2 /* catchBlock */
            putfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.catchBlock:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
         5: .line 455
            aload 0 /* this */
            aload 3 /* finallyBlock */
            putfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.finallyBlock:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
         6: .line 456
            return
        end local 3 // com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode finallyBlock
        end local 2 // com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode catchBlock
        end local 1 // com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode block
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/oracle/truffle/api/test/TruffleExceptionTest$TryCatchNode;
            0    7     1         block  Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
            0    7     2    catchBlock  Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
            0    7     3  finallyBlock  Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
    MethodParameters:
              Name  Flags
      block         
      catchBlock    
      finallyBlock  

  void executeVoid(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 460
            aconst_null
            astore 2 /* exception */
        start local 2 // java.lang.Throwable exception
         1: .line 462
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.block:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;)V
         2: .line 463
            goto 5
      StackMap locals: com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Throwable
      StackMap stack: java.lang.Throwable
         3: astore 3 /* ex */
        start local 3 // java.lang.Throwable ex
         4: .line 464
            aload 0 /* this */
            aload 1 /* frame */
            aload 3 /* ex */
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.catchBlock:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.executeCatchBlock:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;)Ljava/lang/Throwable;
            astore 2 /* exception */
        end local 3 // java.lang.Throwable ex
         5: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.finallyBlock:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
            ifnull 7
         6: .line 471
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.finallyBlock:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;)V
         7: .line 473
      StackMap locals:
      StackMap stack:
            aload 2 /* exception */
            ifnull 13
         8: .line 474
            aload 2 /* exception */
            instanceof com.oracle.truffle.api.nodes.ControlFlowException
            ifeq 10
         9: .line 475
            aload 2 /* exception */
            checkcast com.oracle.truffle.api.nodes.ControlFlowException
            athrow
        10: .line 478
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 2 /* exception */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.throwException:(Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        11: .line 479
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 3 /* ie */
        start local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException ie
        12: .line 480
            aload 3 /* ie */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException ie
        13: .line 483
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable exception
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/oracle/truffle/api/test/TruffleExceptionTest$TryCatchNode;
            0   14     1      frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1   14     2  exception  Ljava/lang/Throwable;
            4    5     3         ex  Ljava/lang/Throwable;
           12   13     3         ie  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
          10    11      11  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
       Name  Flags
      frame  

  private <T extends java.lang.Throwable> java.lang.Throwable executeCatchBlock(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Throwable, com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode) throws T;
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;)Ljava/lang/Throwable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Throwable ex
        start local 3 // com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode catchBlk
         0: .line 487
            aload 2 /* ex */
            instanceof com.oracle.truffle.api.nodes.ControlFlowException
            ifeq 2
         1: .line 489
            aload 2 /* ex */
            areturn
         2: .line 491
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptionProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         3: .line 492
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 2 /* ex */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isException:(Ljava/lang/Object;)Z
            ifeq 11
         4: .line 493
            aload 0 /* this */
            aload 2 /* ex */
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.assertTruffleExceptionProperties:(Ljava/lang/Throwable;)V
         5: .line 494
            aload 3 /* catchBlk */
            ifnull 10
         6: .line 496
            aload 3 /* catchBlk */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;)V
         7: .line 497
            aconst_null
            areturn
         8: .line 498
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* catchEx */
        start local 4 // java.lang.Throwable catchEx
         9: .line 499
            aload 0 /* this */
            aload 1 /* frame */
            aload 4 /* catchEx */
            aconst_null
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.executeCatchBlock:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;)Ljava/lang/Throwable;
            areturn
        end local 4 // java.lang.Throwable catchEx
        10: .line 503
      StackMap locals:
      StackMap stack:
            aload 2 /* ex */
            areturn
        11: .line 507
      StackMap locals:
      StackMap stack:
            aload 2 /* ex */
            athrow
        end local 3 // com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode catchBlk
        end local 2 // java.lang.Throwable ex
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/oracle/truffle/api/test/TruffleExceptionTest$TryCatchNode;
            0   12     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0   12     2        ex  Ljava/lang/Throwable;
            0   12     3  catchBlk  Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;
            9   10     4   catchEx  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Throwable;>(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;)Ljava/lang/Throwable;^TT;
    MethodParameters:
          Name  Flags
      frame     
      ex        
      catchBlk  

  private void assertTruffleExceptionProperties(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
        start local 1 // java.lang.Throwable ex
         0: .line 514
            getstatic com.oracle.truffle.api.interop.ExceptionType.RUNTIME_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1 /* ex */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getExceptionType:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/ExceptionType;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 515
            aload 0 /* this */
            aload 1 /* ex */
            invokedynamic call(Lcom/oracle/truffle/api/test/TruffleExceptionTest$TryCatchNode;Ljava/lang/Throwable;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/oracle/truffle/api/test/TruffleExceptionTest$TryCatchNode.lambda$0(Ljava/lang/Throwable;)Ljava/lang/Object; (7)
                  ()Ljava/lang/Object;
         2: .line 518
            ldc Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
         3: .line 515
            invokestatic com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest.assertFails:(Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
         4: .line 519
            aload 1 /* ex */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            ifnull 8
         5: .line 520
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1 /* ex */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasExceptionMessage:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 521
            aload 1 /* ex */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1 /* ex */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getExceptionMessage:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 522
            goto 9
         8: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1 /* ex */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasExceptionMessage:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         9: .line 525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.assertStackTrace:(Ljava/lang/Throwable;)V
        10: .line 526
            goto 13
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.InteropException
        11: astore 2 /* ie */
        start local 2 // com.oracle.truffle.api.interop.InteropException ie
        12: .line 527
            aload 2 /* ie */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            pop
        end local 2 // com.oracle.truffle.api.interop.InteropException ie
        13: .line 529
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable ex
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest$TryCatchNode;
            0   14     1    ex  Ljava/lang/Throwable;
           12   13     2    ie  Lcom/oracle/truffle/api/interop/InteropException;
      Exception table:
        from    to  target  type
           0    10      11  Class com.oracle.truffle.api.interop.InteropException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      ex    

  private void assertStackTrace(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
        start local 1 // java.lang.Throwable t
         0: .line 532
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.getStackTrace:(Ljava/lang/Throwable;)Ljava/util/List;
            astore 2 /* stack */
        start local 2 // java.util.List stack
         1: .line 533
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1 /* t */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getExceptionStackTrace:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* stackGuestObject */
        start local 3 // java.lang.Object stackGuestObject
         2: .line 534
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* stackGuestObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         3: .line 535
            aload 2 /* stack */
            invokeinterface java.util.List.size:()I
            i2l
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* stackGuestObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         4: .line 536
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 17
         6: .line 537
      StackMap locals: java.util.List java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* stackGuestObject */
            iload 4 /* i */
            i2l
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
            astore 5 /* stackTraceElementObject */
        start local 5 // java.lang.Object stackTraceElementObject
         7: .line 538
            aload 5 /* stackTraceElementObject */
            invokestatic com.oracle.truffle.api.test.RootNodeTest.verifyStackTraceElementGuestObject:(Ljava/lang/Object;)V
         8: .line 539
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 5 /* stackTraceElementObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasExecutableName:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         9: .line 540
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 5 /* stackTraceElementObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getExecutableName:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* executableName */
        start local 6 // java.lang.String executableName
        10: .line 541
            aload 2 /* stack */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleStackTraceElement
            invokevirtual com.oracle.truffle.api.TruffleStackTraceElement.getTarget:()Lcom/oracle/truffle/api/RootCallTarget;
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
            aload 6 /* executableName */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 543
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 5 /* stackTraceElementObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasDeclaringMetaObject:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 544
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 5 /* stackTraceElementObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getDeclaringMetaObject:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMetaQualifiedName:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 6 /* executableName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* qualifiedName */
        start local 7 // java.lang.String qualifiedName
        13: .line 545
            goto 15
        end local 7 // java.lang.String qualifiedName
        14: .line 546
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            aload 6 /* executableName */
            astore 7 /* qualifiedName */
        start local 7 // java.lang.String qualifiedName
        15: .line 548
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* stack */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleStackTraceElement
            invokevirtual com.oracle.truffle.api.TruffleStackTraceElement.getTarget:()Lcom/oracle/truffle/api/RootCallTarget;
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getQualifiedName:()Ljava/lang/String;
            aload 7 /* qualifiedName */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 7 // java.lang.String qualifiedName
        end local 6 // java.lang.String executableName
        end local 5 // java.lang.Object stackTraceElementObject
        16: .line 536
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* i */
            aload 2 /* stack */
            invokeinterface java.util.List.size:()I
            if_icmplt 6
        end local 4 // int i
        18: .line 550
            return
        end local 3 // java.lang.Object stackGuestObject
        end local 2 // java.util.List stack
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   19     0                     this  Lcom/oracle/truffle/api/test/TruffleExceptionTest$TryCatchNode;
            0   19     1                        t  Ljava/lang/Throwable;
            1   19     2                    stack  Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
            2   19     3         stackGuestObject  Ljava/lang/Object;
            5   18     4                        i  I
            7   16     5  stackTraceElementObject  Ljava/lang/Object;
           10   16     6           executableName  Ljava/lang/String;
           13   14     7            qualifiedName  Ljava/lang/String;
           15   16     7            qualifiedName  Ljava/lang/String;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.InvalidArrayIndexException
    MethodParameters:
      Name  Flags
      t     

  private java.lang.Object lambda$0(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
         0: .line 516
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getExceptionExitStatus:(Ljava/lang/Object;)I
            pop
         1: .line 517
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest$TryCatchNode;
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "TruffleExceptionTest.java"
NestHost: com.oracle.truffle.api.test.TruffleExceptionTest
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  BlockNode = com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode of com.oracle.truffle.api.test.TruffleExceptionTest
  abstract StatementNode = com.oracle.truffle.api.test.TruffleExceptionTest$StatementNode of com.oracle.truffle.api.test.TruffleExceptionTest
  private final TryCatchNode = com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode of com.oracle.truffle.api.test.TruffleExceptionTest
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles