final class com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl extends com.oracle.truffle.api.impl.Accessor$ExceptionSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl
  super_class: com.oracle.truffle.api.impl.Accessor$ExceptionSupport
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
         0: .line 70
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.impl.Accessor$ExceptionSupport.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;

  public java.lang.Throwable getLazyStackTrace(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Throwable exception
         0: .line 74
            aload 1 /* exception */
            checkcast com.oracle.truffle.api.exception.AbstractTruffleException
            invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getLazyStackTrace:()Ljava/lang/Throwable;
            areturn
        end local 1 // java.lang.Throwable exception
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    1     1  exception  Ljava/lang/Throwable;
    MethodParameters:
           Name  Flags
      exception  

  public void setLazyStackTrace(java.lang.Throwable, java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Throwable exception
        start local 2 // java.lang.Throwable stackTrace
         0: .line 79
            aload 1 /* exception */
            checkcast com.oracle.truffle.api.exception.AbstractTruffleException
            aload 2 /* stackTrace */
            invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.setLazyStackTrace:(Ljava/lang/Throwable;)V
         1: .line 80
            return
        end local 2 // java.lang.Throwable stackTrace
        end local 1 // java.lang.Throwable exception
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    2     1   exception  Ljava/lang/Throwable;
            0    2     2  stackTrace  Ljava/lang/Throwable;
    MethodParameters:
            Name  Flags
      exception   
      stackTrace  

  public java.lang.Object createDefaultStackTraceElementObject(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
         0: .line 84
            new com.oracle.truffle.api.exception.DefaultStackTraceElementObject
            dup
            aload 1 /* rootNode */
            aload 2 /* sourceSection */
            invokespecial com.oracle.truffle.api.exception.DefaultStackTraceElementObject.<init>:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;)V
            areturn
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    1     1       rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            0    1     2  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    MethodParameters:
               Name  Flags
      rootNode       
      sourceSection  

  public boolean isException(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 89
            aload 1 /* receiver */
            instanceof com.oracle.truffle.api.exception.AbstractTruffleException
            ireturn
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    1     1  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  

  public java.lang.RuntimeException throwException(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/RuntimeException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 94
            aload 1 /* receiver */
            checkcast com.oracle.truffle.api.exception.AbstractTruffleException
            athrow
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    1     1  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  

  public java.lang.Object getExceptionType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 99
            getstatic com.oracle.truffle.api.interop.ExceptionType.RUNTIME_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
            areturn
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    1     1  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  

  public boolean isExceptionIncompleteSource(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 104
            iconst_0
            ireturn
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    1     1  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  

  public int getExceptionExitStatus(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 109
            invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.throwUnsupportedMessageException:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    1     1  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  

  public boolean hasExceptionCause(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 114
            aload 1 /* receiver */
            checkcast com.oracle.truffle.api.exception.AbstractTruffleException
            invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getCause:()Ljava/lang/Throwable;
            invokestatic com.oracle.truffle.api.exception.AbstractTruffleException.isTruffleException:(Ljava/lang/Throwable;)Z
            ireturn
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    1     1  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  

  public java.lang.Object getExceptionCause(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 119
            aload 1 /* receiver */
            checkcast com.oracle.truffle.api.exception.AbstractTruffleException
            invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getCause:()Ljava/lang/Throwable;
            astore 2 /* throwable */
        start local 2 // java.lang.Throwable throwable
         1: .line 120
            aload 2 /* throwable */
            invokestatic com.oracle.truffle.api.exception.AbstractTruffleException.isTruffleException:(Ljava/lang/Throwable;)Z
            ifeq 3
         2: .line 121
            aload 2 /* throwable */
            areturn
         3: .line 123
      StackMap locals: java.lang.Throwable
      StackMap stack:
            invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.throwUnsupportedMessageException:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable throwable
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    4     1   receiver  Ljava/lang/Object;
            1    4     2  throwable  Ljava/lang/Throwable;
    MethodParameters:
          Name  Flags
      receiver  

  public boolean hasExceptionMessage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 130
            aload 1 /* receiver */
            checkcast com.oracle.truffle.api.exception.AbstractTruffleException
            invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getMessage:()Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    2     1  receiver  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      receiver  

  public java.lang.Object getExceptionMessage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 136
            aload 1 /* receiver */
            checkcast com.oracle.truffle.api.exception.AbstractTruffleException
            invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getMessage:()Ljava/lang/String;
            astore 2 /* message */
        start local 2 // java.lang.String message
         1: .line 137
            aload 2 /* message */
            ifnonnull 3
         2: .line 138
            invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.throwUnsupportedMessageException:()Ljava/lang/RuntimeException;
            athrow
         3: .line 140
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* message */
            areturn
        end local 2 // java.lang.String message
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    4     1  receiver  Ljava/lang/Object;
            1    4     2   message  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      receiver  

  public boolean hasExceptionStackTrace(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 146
            iconst_1
            ireturn
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    1     1  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  

  public java.lang.Object getExceptionStackTrace(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 152
            aload 1 /* receiver */
            checkcast java.lang.Throwable
            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 153
            aload 2 /* stack */
            ifnonnull 3
         2: .line 154
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            astore 2 /* stack */
         3: .line 156
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* stack */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.Object
            astore 3 /* items */
        start local 3 // java.lang.Object[] items
         4: .line 157
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 158
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 3 /* items */
            iload 4 /* i */
            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.getGuestObject:()Ljava/lang/Object;
            aastore
         7: .line 157
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 3 /* items */
            arraylength
            if_icmplt 6
        end local 4 // int i
         9: .line 160
            new com.oracle.truffle.api.exception.ExceptionAccessor$InteropList
            dup
            aload 3 /* items */
            invokespecial com.oracle.truffle.api.exception.ExceptionAccessor$InteropList.<init>:([Ljava/lang/Object;)V
            areturn
        end local 3 // java.lang.Object[] items
        end local 2 // java.util.List stack
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0   10     1  receiver  Ljava/lang/Object;
            1   10     2     stack  Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
            4   10     3     items  [Ljava/lang/Object;
            5    9     4         i  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      receiver  

  public boolean hasSourceLocation(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 165
            aload 1 /* receiver */
            checkcast com.oracle.truffle.api.exception.AbstractTruffleException
            invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
            astore 2 /* location */
        start local 2 // com.oracle.truffle.api.nodes.Node location
         1: .line 166
            aload 2 /* location */
            ifnull 2
            aload 2 /* location */
            invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            ifnull 2
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.nodes.Node location
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    3     1  receiver  Ljava/lang/Object;
            1    3     2  location  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
          Name  Flags
      receiver  

  public com.oracle.truffle.api.source.SourceSection getSourceLocation(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object receiver
         0: .line 171
            aload 1 /* receiver */
            checkcast com.oracle.truffle.api.exception.AbstractTruffleException
            invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
            astore 2 /* location */
        start local 2 // com.oracle.truffle.api.nodes.Node location
         1: .line 172
            aload 2 /* location */
            ifnull 2
            aload 2 /* location */
            invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            goto 3
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.source.SourceSection
         3: astore 3 /* sourceSection */
        start local 3 // com.oracle.truffle.api.source.SourceSection sourceSection
         4: .line 173
            aload 3 /* sourceSection */
            ifnonnull 6
         5: .line 174
            invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.throwUnsupportedMessageException:()Ljava/lang/RuntimeException;
            athrow
         6: .line 176
      StackMap locals: com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aload 3 /* sourceSection */
            areturn
        end local 3 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 2 // com.oracle.truffle.api.nodes.Node location
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0    7     1       receiver  Ljava/lang/Object;
            1    7     2       location  Lcom/oracle/truffle/api/nodes/Node;
            4    7     3  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    MethodParameters:
          Name  Flags
      receiver  

  public boolean assertGuestObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
        start local 1 // java.lang.Object guestObject
         0: .line 181
            aload 1 /* guestObject */
            ifnonnull 2
         1: .line 182
            new java.lang.AssertionError
            dup
            ldc "Guest object must be null."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 184
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
            astore 2 /* interop */
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
         3: .line 185
            aload 2 /* interop */
            aload 1 /* guestObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasExecutableName:(Ljava/lang/Object;)Z
            ifeq 10
         4: .line 188
            aload 2 /* interop */
            aload 1 /* guestObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getExecutableName:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* executableName */
        start local 3 // java.lang.Object executableName
         5: .line 189
            goto 8
        end local 3 // java.lang.Object executableName
      StackMap locals: com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl java.lang.Object com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
         6: astore 4 /* um */
        start local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException um
         7: .line 190
            new java.lang.AssertionError
            dup
            ldc "Failed to get the executable name."
            aload 4 /* um */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException um
        start local 3 // java.lang.Object executableName
         8: .line 192
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* interop */
            aload 3 /* executableName */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 193
            new java.lang.AssertionError
            dup
            ldc "Executable name must be an interop string."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.Object executableName
        10: .line 196
      StackMap locals:
      StackMap stack:
            aload 2 /* interop */
            aload 1 /* guestObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasDeclaringMetaObject:(Ljava/lang/Object;)Z
            ifeq 17
        11: .line 199
            aload 2 /* interop */
            aload 1 /* guestObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getDeclaringMetaObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* metaObject */
        start local 3 // java.lang.Object metaObject
        12: .line 200
            goto 15
        end local 3 // java.lang.Object metaObject
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
        13: astore 4 /* um */
        start local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException um
        14: .line 201
            new java.lang.AssertionError
            dup
            ldc "Failed to get the declaring meta object."
            aload 4 /* um */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException um
        start local 3 // java.lang.Object metaObject
        15: .line 203
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* interop */
            aload 3 /* metaObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMetaObject:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 204
            new java.lang.AssertionError
            dup
            ldc "Declaring meta object must be an interop meta object"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.Object metaObject
        17: .line 207
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // java.lang.Object guestObject
        end local 0 // com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
            0   18     1     guestObject  Ljava/lang/Object;
            3   18     2         interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
            5    6     3  executableName  Ljava/lang/Object;
            8   10     3  executableName  Ljava/lang/Object;
            7    8     4              um  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
           12   13     3      metaObject  Ljava/lang/Object;
           15   17     3      metaObject  Ljava/lang/Object;
           14   15     4              um  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           4     5       6  Class com.oracle.truffle.api.interop.UnsupportedMessageException
          11    12      13  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
             Name  Flags
      guestObject  

  private static java.lang.RuntimeException throwUnsupportedMessageException();
    descriptor: ()Ljava/lang/RuntimeException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 211
            ldc Ljava/lang/RuntimeException;
            invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.silenceException:(Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/Throwable;
            checkcast java.lang.RuntimeException
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static <E extends java.lang.Throwable> E silenceException(java.lang.Class<E>, java.lang.Throwable) throws E;
    descriptor: (Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.Class type
        start local 1 // java.lang.Throwable ex
         0: .line 216
            aload 1 /* ex */
            athrow
        end local 1 // java.lang.Throwable ex
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/Class<TE;>;
            0    1     1    ex  Ljava/lang/Throwable;
    Exceptions:
      throws java.lang.Throwable
    Signature: <E:Ljava/lang/Throwable;>(Ljava/lang/Class<TE;>;Ljava/lang/Throwable;)TE;^TE;
    MethodParameters:
      Name  Flags
      type  
      ex    
}
SourceFile: "ExceptionAccessor.java"
NestHost: com.oracle.truffle.api.exception.ExceptionAccessor
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  final ExceptionSupportImpl = com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl of com.oracle.truffle.api.exception.ExceptionAccessor
  final InteropList = com.oracle.truffle.api.exception.ExceptionAccessor$InteropList of com.oracle.truffle.api.exception.ExceptionAccessor
  public abstract ExceptionSupport = com.oracle.truffle.api.impl.Accessor$ExceptionSupport of com.oracle.truffle.api.impl.Accessor