public final class com.oracle.truffle.api.TruffleStackTrace extends java.lang.Exception
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.TruffleStackTrace
  super_class: java.lang.Exception
{
  private static final long causeFieldIndex;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final sun.misc.Unsafe UNSAFE;
    descriptor: Lsun/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.TruffleStackTrace EMPTY;
    descriptor: Lcom/oracle/truffle/api/TruffleStackTrace;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.util.List<com.oracle.truffle.api.TruffleStackTraceElement> frames;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;

  private final int lazyFrames;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.Exception materializedHostException;
    descriptor: Ljava/lang/Exception;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=0
         0: .line 84
            ldc Lcom/oracle/truffle/api/TruffleStackTrace;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.api.TruffleStackTrace.$assertionsDisabled:Z
         3: .line 92
            invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
            astore 0 /* unsafe */
        start local 0 // sun.misc.Unsafe unsafe
         4: .line 93
            goto 12
        end local 0 // sun.misc.Unsafe unsafe
      StackMap locals:
      StackMap stack: java.lang.SecurityException
         5: pop
         6: .line 95
            ldc Lsun/misc/Unsafe;
            ldc "theUnsafe"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 1 /* theUnsafeInstance */
        start local 1 // java.lang.reflect.Field theUnsafeInstance
         7: .line 96
            aload 1 /* theUnsafeInstance */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         8: .line 97
            aload 1 /* theUnsafeInstance */
            ldc Lsun/misc/Unsafe;
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.misc.Unsafe
            astore 0 /* unsafe */
        end local 1 // java.lang.reflect.Field theUnsafeInstance
        start local 0 // sun.misc.Unsafe unsafe
         9: .line 98
            goto 12
        end local 0 // sun.misc.Unsafe unsafe
      StackMap locals:
      StackMap stack: java.lang.Exception
        10: astore 1 /* e2 */
        start local 1 // java.lang.Exception e2
        11: .line 99
            new java.lang.RuntimeException
            dup
            ldc "exception while trying to get Unsafe.theUnsafe via reflection:"
            aload 1 /* e2 */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e2
        start local 0 // sun.misc.Unsafe unsafe
        12: .line 102
      StackMap locals: sun.misc.Unsafe
      StackMap stack:
            aload 0 /* unsafe */
            putstatic com.oracle.truffle.api.TruffleStackTrace.UNSAFE:Lsun/misc/Unsafe;
        13: .line 105
            ldc Ljava/lang/Throwable;
            ldc "cause"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 1 /* causeField */
        start local 1 // java.lang.reflect.Field causeField
        14: .line 106
            getstatic com.oracle.truffle.api.TruffleStackTrace.UNSAFE:Lsun/misc/Unsafe;
            aload 1 /* causeField */
            invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            putstatic com.oracle.truffle.api.TruffleStackTrace.causeFieldIndex:J
        end local 1 // java.lang.reflect.Field causeField
        15: .line 107
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Exception
        16: astore 1 /* e */
        start local 1 // java.lang.Exception e
        17: .line 108
            new java.lang.RuntimeException
            dup
            aload 1 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // sun.misc.Unsafe unsafe
        18: .line 131
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.api.TruffleStackTrace
            dup
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            invokespecial com.oracle.truffle.api.TruffleStackTrace.<init>:(Ljava/util/List;I)V
            putstatic com.oracle.truffle.api.TruffleStackTrace.EMPTY:Lcom/oracle/truffle/api/TruffleStackTrace;
            return
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            4    5     0             unsafe  Lsun/misc/Unsafe;
            9   10     0             unsafe  Lsun/misc/Unsafe;
           12   18     0             unsafe  Lsun/misc/Unsafe;
            7    9     1  theUnsafeInstance  Ljava/lang/reflect/Field;
           11   12     1                 e2  Ljava/lang/Exception;
           14   15     1         causeField  Ljava/lang/reflect/Field;
           17   18     1                  e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.SecurityException
           6     9      10  Class java.lang.Exception
          13    15      16  Class java.lang.NoSuchFieldException
          13    15      16  Class java.lang.SecurityException

  private static java.lang.Throwable getCause(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 114
            getstatic com.oracle.truffle.api.TruffleStackTrace.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* t */
            getstatic com.oracle.truffle.api.TruffleStackTrace.causeFieldIndex:J
            invokevirtual sun.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
            checkcast java.lang.Throwable
            astore 1 /* result */
        start local 1 // java.lang.Throwable result
         1: .line 115
            aload 1 /* result */
            aload 0 /* t */
            if_acmpne 2
            aconst_null
            goto 3
      StackMap locals: java.lang.Throwable
      StackMap stack:
         2: aload 1 /* result */
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: areturn
        end local 1 // java.lang.Throwable result
         4: .line 116
      StackMap locals: java.lang.Throwable
      StackMap stack: java.lang.IllegalArgumentException
            astore 1 /* e */
        start local 1 // java.lang.IllegalArgumentException e
         5: .line 117
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         6: .line 118
            new java.lang.RuntimeException
            dup
            aload 1 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.IllegalArgumentException e
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0       t  Ljava/lang/Throwable;
            1    4     1  result  Ljava/lang/Throwable;
            5    7     1       e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      t     

  private static void initCause(java.lang.Throwable, java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Throwable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.Throwable t
        start local 1 // java.lang.Throwable value
         0: .line 124
            getstatic com.oracle.truffle.api.TruffleStackTrace.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* t */
            getstatic com.oracle.truffle.api.TruffleStackTrace.causeFieldIndex:J
            aload 1 /* value */
            invokevirtual sun.misc.Unsafe.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
         1: .line 125
            goto 5
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         2: astore 2 /* e */
        start local 2 // java.lang.IllegalArgumentException e
         3: .line 126
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         4: .line 127
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.IllegalArgumentException e
         5: .line 129
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable value
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0      t  Ljava/lang/Throwable;
            0    6     1  value  Ljava/lang/Throwable;
            3    5     2      e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
       Name  Flags
      t      
      value  

  private void <init>(java.util.List<com.oracle.truffle.api.TruffleStackTraceElement>, );
    descriptor: (Ljava/util/List;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleStackTrace this
        start local 1 // java.util.List frames
        start local 2 // int lazyFrames
         0: .line 139
            aload 0 /* this */
            invokespecial java.lang.Exception.<init>:()V
         1: .line 140
            aload 0 /* this */
            aload 1 /* frames */
            putfield com.oracle.truffle.api.TruffleStackTrace.frames:Ljava/util/List;
         2: .line 141
            aload 0 /* this */
            iload 2 /* lazyFrames */
            putfield com.oracle.truffle.api.TruffleStackTrace.lazyFrames:I
         3: .line 142
            return
        end local 2 // int lazyFrames
        end local 1 // java.util.List frames
        end local 0 // com.oracle.truffle.api.TruffleStackTrace this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/api/TruffleStackTrace;
            0    4     1      frames  Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
            0    4     2  lazyFrames  I
    Signature: (Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;I)V
    MethodParameters:
            Name  Flags
      frames      
      lazyFrames  

  private void materializeHostException();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleStackTrace this
         0: .line 153
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleStackTrace.materializedHostException:Ljava/lang/Exception;
            ifnonnull 2
         1: .line 154
            aload 0 /* this */
            new java.lang.Exception
            dup
            invokespecial java.lang.Exception.<init>:()V
            putfield com.oracle.truffle.api.TruffleStackTrace.materializedHostException:Ljava/lang/Exception;
         2: .line 156
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.TruffleStackTrace this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/TruffleStackTrace;

  public java.lang.Throwable fillInStackTrace();
    descriptor: ()Ljava/lang/Throwable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleStackTrace this
         0: .line 164
            aload 0 /* this */
            areturn
        end local 0 // com.oracle.truffle.api.TruffleStackTrace this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleStackTrace;

  java.lang.StackTraceElement[] getInternalStackTrace();
    descriptor: ()[Ljava/lang/StackTraceElement;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleStackTrace this
         0: .line 168
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleStackTrace.materializedHostException:Ljava/lang/Exception;
            astore 1 /* hostException */
        start local 1 // java.lang.Throwable hostException
         1: .line 169
            aload 1 /* hostException */
            ifnonnull 3
         2: .line 170
            aload 0 /* this */
            astore 1 /* hostException */
         3: .line 172
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* hostException */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 2 /* hostFrames */
        start local 2 // java.lang.StackTraceElement[] hostFrames
         4: .line 173
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleStackTrace.lazyFrames:I
            ifne 6
         5: .line 174
            aload 2 /* hostFrames */
            areturn
         6: .line 176
      StackMap locals: java.lang.StackTraceElement[]
      StackMap stack:
            aload 2 /* hostFrames */
            arraylength
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleStackTrace.lazyFrames:I
            iadd
            anewarray java.lang.StackTraceElement
            astore 3 /* extended */
        start local 3 // java.lang.StackTraceElement[] extended
         7: .line 177
            aload 2 /* hostFrames */
            iconst_0
            aload 3 /* extended */
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleStackTrace.lazyFrames:I
            aload 2 /* hostFrames */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 178
            aload 3 /* extended */
            areturn
        end local 3 // java.lang.StackTraceElement[] extended
        end local 2 // java.lang.StackTraceElement[] hostFrames
        end local 1 // java.lang.Throwable hostException
        end local 0 // com.oracle.truffle.api.TruffleStackTrace this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/oracle/truffle/api/TruffleStackTrace;
            1    9     1  hostException  Ljava/lang/Throwable;
            4    9     2     hostFrames  [Ljava/lang/StackTraceElement;
            7    9     3       extended  [Ljava/lang/StackTraceElement;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleStackTrace this
         0: .line 187
            new java.lang.StringBuilder
            dup
            ldc "Attached Guest Language Frames ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleStackTrace.frames:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleStackTrace this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleStackTrace;

  public static java.util.List<com.oracle.truffle.api.TruffleStackTraceElement> getStackTrace(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 205
            aload 0 /* throwable */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.fillIn:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace;
            astore 1 /* stack */
        start local 1 // com.oracle.truffle.api.TruffleStackTrace stack
         1: .line 206
            aload 1 /* stack */
            ifnull 3
         2: .line 207
            aload 1 /* stack */
            getfield com.oracle.truffle.api.TruffleStackTrace.frames:Ljava/util/List;
            areturn
         3: .line 209
      StackMap locals: com.oracle.truffle.api.TruffleStackTrace
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.oracle.truffle.api.TruffleStackTrace stack
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  throwable  Ljava/lang/Throwable;
            1    4     1      stack  Lcom/oracle/truffle/api/TruffleStackTrace;
    Signature: (Ljava/lang/Throwable;)Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      throwable  

  public static java.util.List<com.oracle.truffle.api.TruffleStackTraceElement> getAsynchronousStackTrace(com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.CallTarget target
        start local 1 // com.oracle.truffle.api.frame.Frame frame
         0: .line 225
            aload 0 /* target */
            ldc "CallTarget must not be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 226
            aload 1 /* frame */
            ldc "Frame must not be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 227
            getstatic com.oracle.truffle.api.TruffleStackTrace.$assertionsDisabled:Z
            ifne 3
            aload 0 /* target */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.hasContext:(Lcom/oracle/truffle/api/CallTarget;)Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 228
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.LanguageAccessor.ACCESSOR:Lcom/oracle/truffle/api/LanguageAccessor;
            invokevirtual com.oracle.truffle.api.LanguageAccessor.nodeSupport:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 0 /* target */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.findAsynchronousFrames:(Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List;
            areturn
        end local 1 // com.oracle.truffle.api.frame.Frame frame
        end local 0 // com.oracle.truffle.api.CallTarget target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  target  Lcom/oracle/truffle/api/CallTarget;
            0    4     1   frame  Lcom/oracle/truffle/api/frame/Frame;
    Signature: (Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      target  
      frame   

  private static boolean hasContext(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.CallTarget target
         0: .line 233
            aload 0 /* target */
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 1 /* root */
        start local 1 // com.oracle.truffle.api.nodes.RootNode root
         1: .line 234
            getstatic com.oracle.truffle.api.LanguageAccessor.ACCESSOR:Lcom/oracle/truffle/api/LanguageAccessor;
            invokevirtual com.oracle.truffle.api.LanguageAccessor.nodeSupport:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 1 /* root */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            astore 2 /* polyglotLanguage */
        start local 2 // java.lang.Object polyglotLanguage
         2: .line 235
            getstatic com.oracle.truffle.api.LanguageAccessor.ACCESSOR:Lcom/oracle/truffle/api/LanguageAccessor;
            invokevirtual com.oracle.truffle.api.LanguageAccessor.engineSupport:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 2 /* polyglotLanguage */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getCurrentContextReference:(Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextReference.get:()Ljava/lang/Object;
            ifnull 3
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.api.nodes.RootNode java.lang.Object
      StackMap stack:
         3: iconst_0
            ireturn
        end local 2 // java.lang.Object polyglotLanguage
        end local 1 // com.oracle.truffle.api.nodes.RootNode root
        end local 0 // com.oracle.truffle.api.CallTarget target
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0            target  Lcom/oracle/truffle/api/CallTarget;
            1    4     1              root  Lcom/oracle/truffle/api/nodes/RootNode;
            2    4     2  polyglotLanguage  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      target  

  static void materializeHostFrames(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 239
            aload 0 /* t */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.fillIn:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace;
            astore 1 /* stack */
        start local 1 // com.oracle.truffle.api.TruffleStackTrace stack
         1: .line 240
            aload 1 /* stack */
            ifnull 3
         2: .line 241
            aload 1 /* stack */
            invokevirtual com.oracle.truffle.api.TruffleStackTrace.materializeHostException:()V
         3: .line 243
      StackMap locals: com.oracle.truffle.api.TruffleStackTrace
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.TruffleStackTrace stack
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0      t  Ljava/lang/Throwable;
            1    4     1  stack  Lcom/oracle/truffle/api/TruffleStackTrace;
    MethodParameters:
      Name  Flags
      t     

  private static com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace findImpl(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 246
            getstatic com.oracle.truffle.api.TruffleStackTrace.$assertionsDisabled:Z
            ifne 1
            aload 0 /* t */
            instanceof com.oracle.truffle.api.nodes.ControlFlowException
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 1 /* cause */
        start local 1 // java.lang.Throwable cause
         2: .line 248
            goto 6
         3: .line 249
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* cause */
            instanceof com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            ifeq 5
         4: .line 250
            aload 1 /* cause */
            checkcast com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            areturn
         5: .line 252
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 1 /* cause */
         6: .line 248
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            ifnonnull 3
         7: .line 254
            aconst_null
            areturn
        end local 1 // java.lang.Throwable cause
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0      t  Ljava/lang/Throwable;
            2    8     1  cause  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     

  private static java.lang.Throwable findInsertCause(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 258
            aload 0 /* t */
            astore 1 /* lastException */
        start local 1 // java.lang.Throwable lastException
         1: .line 259
            goto 6
         2: .line 260
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* lastException */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 2 /* parentCause */
        start local 2 // java.lang.Throwable parentCause
         3: .line 261
            aload 2 /* parentCause */
            ifnonnull 5
         4: .line 262
            goto 7
         5: .line 264
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2 /* parentCause */
            astore 1 /* lastException */
        end local 2 // java.lang.Throwable parentCause
         6: .line 259
      StackMap locals:
      StackMap stack:
            aload 1 /* lastException */
            ifnonnull 2
         7: .line 266
      StackMap locals:
      StackMap stack:
            aload 1 /* lastException */
            areturn
        end local 1 // java.lang.Throwable lastException
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0              t  Ljava/lang/Throwable;
            1    8     1  lastException  Ljava/lang/Throwable;
            3    6     2    parentCause  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     

  private static void insert(java.lang.Throwable, com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace);
    descriptor: (Ljava/lang/Throwable;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Throwable t
        start local 1 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace trace
         0: .line 270
            aload 0 /* t */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            ifnull 3
         1: .line 271
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         2: .line 274
            goto 4
         3: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            aload 1 /* trace */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
         4: .line 277
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace trace
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0      t  Ljava/lang/Throwable;
            0    5     1  trace  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
    MethodParameters:
       Name  Flags
      t      
      trace  

  public static com.oracle.truffle.api.TruffleStackTrace fillIn(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 294
            aload 0 /* throwable */
            instanceof com.oracle.truffle.api.nodes.ControlFlowException
            ifeq 2
         1: .line 295
            getstatic com.oracle.truffle.api.TruffleStackTrace.EMPTY:Lcom/oracle/truffle/api/TruffleStackTrace;
            areturn
         2: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* throwable */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.getOrCreateLazyStackTrace:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
            astore 1 /* lazy */
        start local 1 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
         3: .line 298
            aload 1 /* lazy */
            getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
            ifnull 5
         4: .line 300
            aload 1 /* lazy */
            getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
            areturn
         5: .line 305
      StackMap locals: com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
      StackMap stack:
            aload 0 /* throwable */
            instanceof com.oracle.truffle.api.TruffleException
            ifeq 10
         6: .line 306
            aload 0 /* throwable */
            checkcast com.oracle.truffle.api.TruffleException
            astore 4 /* te */
        start local 4 // com.oracle.truffle.api.TruffleException te
         7: .line 307
            aload 4 /* te */
            invokeinterface com.oracle.truffle.api.TruffleException.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
            astore 3 /* topCallSite */
        start local 3 // com.oracle.truffle.api.nodes.Node topCallSite
         8: .line 308
            aload 4 /* te */
            invokeinterface com.oracle.truffle.api.TruffleException.getStackTraceElementLimit:()I
            istore 2 /* stackFrameLimit */
        end local 4 // com.oracle.truffle.api.TruffleException te
        start local 2 // int stackFrameLimit
         9: .line 309
            goto 12
        end local 3 // com.oracle.truffle.api.nodes.Node topCallSite
        end local 2 // int stackFrameLimit
        10: .line 310
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* topCallSite */
        start local 3 // com.oracle.truffle.api.nodes.Node topCallSite
        11: .line 311
            iconst_m1
            istore 2 /* stackFrameLimit */
        start local 2 // int stackFrameLimit
        12: .line 314
      StackMap locals: int com.oracle.truffle.api.nodes.Node
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* elements */
        start local 4 // java.util.ArrayList elements
        13: .line 315
            aload 1 /* lazy */
            getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.current:Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
            astore 5 /* currentElement */
        start local 5 // com.oracle.truffle.api.TruffleStackTrace$TracebackElement currentElement
        14: .line 316
            goto 17
        15: .line 317
      StackMap locals: java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement
      StackMap stack:
            aload 4 /* elements */
            aload 5 /* currentElement */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        16: .line 318
            aload 5 /* currentElement */
            getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.last:Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
            astore 5 /* currentElement */
        17: .line 316
      StackMap locals:
      StackMap stack:
            aload 5 /* currentElement */
            ifnonnull 15
        18: .line 320
            aload 4 /* elements */
            invokestatic java.util.Collections.reverse:(Ljava/util/List;)V
        19: .line 322
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* frames */
        start local 6 // java.util.List frames
        20: .line 323
            aload 4 /* elements */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 27
      StackMap locals: java.lang.Throwable com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace int com.oracle.truffle.api.nodes.Node java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.List top java.util.Iterator
      StackMap stack:
        21: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleStackTrace$TracebackElement
            astore 7 /* element */
        start local 7 // com.oracle.truffle.api.TruffleStackTrace$TracebackElement element
        22: .line 324
            aload 7 /* element */
            getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.root:Lcom/oracle/truffle/api/RootCallTarget;
            ifnull 25
        23: .line 325
            aload 6 /* frames */
            new com.oracle.truffle.api.TruffleStackTraceElement
            dup
            aload 3 /* topCallSite */
            aload 7 /* element */
            getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.root:Lcom/oracle/truffle/api/RootCallTarget;
            aload 7 /* element */
            getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.frame:Lcom/oracle/truffle/api/frame/MaterializedFrame;
            invokespecial com.oracle.truffle.api.TruffleStackTraceElement.<init>:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/Frame;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 326
            aconst_null
            astore 3 /* topCallSite */
        25: .line 328
      StackMap locals: java.lang.Throwable com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace int com.oracle.truffle.api.nodes.Node java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.List com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.Iterator
      StackMap stack:
            aload 7 /* element */
            getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.callNode:Lcom/oracle/truffle/api/nodes/Node;
            ifnull 27
        26: .line 329
            aload 7 /* element */
            getfield com.oracle.truffle.api.TruffleStackTrace$TracebackElement.callNode:Lcom/oracle/truffle/api/nodes/Node;
            astore 3 /* topCallSite */
        end local 7 // com.oracle.truffle.api.TruffleStackTrace$TracebackElement element
        27: .line 323
      StackMap locals: java.lang.Throwable com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace int com.oracle.truffle.api.nodes.Node java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        28: .line 332
            aload 6 /* frames */
            invokeinterface java.util.List.size:()I
            istore 7 /* lazyFrames */
        start local 7 // int lazyFrames
        29: .line 335
            iload 2 /* stackFrameLimit */
            iload 7 /* lazyFrames */
            aload 3 /* topCallSite */
            aload 6 /* frames */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.addStackFrames:(IILcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
        30: .line 337
            aload 1 /* lazy */
            new com.oracle.truffle.api.TruffleStackTrace
            dup
            aload 6 /* frames */
            iload 7 /* lazyFrames */
            invokespecial com.oracle.truffle.api.TruffleStackTrace.<init>:(Ljava/util/List;I)V
            putfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
        31: .line 338
            aload 0 /* throwable */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            arraylength
            ifne 33
        32: .line 339
            aload 1 /* lazy */
            getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
            invokevirtual com.oracle.truffle.api.TruffleStackTrace.materializeHostException:()V
        33: .line 341
      StackMap locals: java.lang.Throwable com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace int com.oracle.truffle.api.nodes.Node java.util.ArrayList com.oracle.truffle.api.TruffleStackTrace$TracebackElement java.util.List int
      StackMap stack:
            aload 1 /* lazy */
            getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
            areturn
        end local 7 // int lazyFrames
        end local 6 // java.util.List frames
        end local 5 // com.oracle.truffle.api.TruffleStackTrace$TracebackElement currentElement
        end local 4 // java.util.ArrayList elements
        end local 3 // com.oracle.truffle.api.nodes.Node topCallSite
        end local 2 // int stackFrameLimit
        end local 1 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   34     0        throwable  Ljava/lang/Throwable;
            3   34     1             lazy  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
            9   10     2  stackFrameLimit  I
           12   34     2  stackFrameLimit  I
            8   10     3      topCallSite  Lcom/oracle/truffle/api/nodes/Node;
           11   34     3      topCallSite  Lcom/oracle/truffle/api/nodes/Node;
            7    9     4               te  Lcom/oracle/truffle/api/TruffleException;
           13   34     4         elements  Ljava/util/ArrayList<Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;>;
           14   34     5   currentElement  Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
           20   34     6           frames  Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
           22   27     7          element  Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
           29   34     7       lazyFrames  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      throwable  

  static void addStackFrameInfo(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/Frame;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.nodes.Node callNode
        start local 1 // com.oracle.truffle.api.RootCallTarget root
        start local 2 // java.lang.Throwable t
        start local 3 // com.oracle.truffle.api.frame.Frame currentFrame
         0: .line 401
            aload 2 /* t */
            instanceof com.oracle.truffle.api.nodes.ControlFlowException
            ifeq 2
         1: .line 403
            return
         2: .line 405
      StackMap locals:
      StackMap stack:
            aload 2 /* t */
            instanceof org.graalvm.polyglot.PolyglotException
            ifeq 4
         3: .line 408
            return
         4: .line 411
      StackMap locals:
      StackMap stack:
            aload 2 /* t */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
            istore 4 /* isTProfiled */
        start local 4 // boolean isTProfiled
         5: .line 412
            aload 3 /* currentFrame */
            ifnull 8
            aload 1 /* root */
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.isCaptureFramesForTrace:()Z
            ifeq 8
         6: .line 413
            iload 4 /* isTProfiled */
            aload 0 /* callNode */
            aload 1 /* root */
            aload 2 /* t */
            aload 3 /* currentFrame */
            invokeinterface com.oracle.truffle.api.frame.Frame.materialize:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
            invokestatic com.oracle.truffle.api.TruffleStackTrace.callInnerAddStackFrameInfo:(ZLcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
         7: .line 414
            goto 9
         8: .line 415
      StackMap locals: int
      StackMap stack:
            iload 4 /* isTProfiled */
            aload 0 /* callNode */
            aload 1 /* root */
            aload 2 /* t */
            aconst_null
            invokestatic com.oracle.truffle.api.TruffleStackTrace.callInnerAddStackFrameInfo:(ZLcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
         9: .line 417
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean isTProfiled
        end local 3 // com.oracle.truffle.api.frame.Frame currentFrame
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.RootCallTarget root
        end local 0 // com.oracle.truffle.api.nodes.Node callNode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0      callNode  Lcom/oracle/truffle/api/nodes/Node;
            0   10     1          root  Lcom/oracle/truffle/api/RootCallTarget;
            0   10     2             t  Ljava/lang/Throwable;
            0   10     3  currentFrame  Lcom/oracle/truffle/api/frame/Frame;
            5   10     4   isTProfiled  Z
    MethodParameters:
              Name  Flags
      callNode      
      root          
      t             
      currentFrame  

  private static void callInnerAddStackFrameInfo(boolean, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (ZLcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // boolean isTProfiled
        start local 1 // com.oracle.truffle.api.nodes.Node callNode
        start local 2 // com.oracle.truffle.api.RootCallTarget root
        start local 3 // java.lang.Throwable t
        start local 4 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
         0: .line 420
            iload 0 /* isTProfiled */
            ifeq 3
         1: .line 421
            aload 1 /* callNode */
            aload 2 /* root */
            aload 3 /* t */
            aload 4 /* currentFrame */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.innerAddStackFrameInfo:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
         2: .line 422
            goto 4
         3: .line 423
      StackMap locals:
      StackMap stack:
            aload 1 /* callNode */
            aload 2 /* root */
            aload 3 /* t */
            aload 4 /* currentFrame */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.innerAddStackFrameInfoBoundary:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
         4: .line 425
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
        end local 3 // java.lang.Throwable t
        end local 2 // com.oracle.truffle.api.RootCallTarget root
        end local 1 // com.oracle.truffle.api.nodes.Node callNode
        end local 0 // boolean isTProfiled
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0   isTProfiled  Z
            0    5     1      callNode  Lcom/oracle/truffle/api/nodes/Node;
            0    5     2          root  Lcom/oracle/truffle/api/RootCallTarget;
            0    5     3             t  Ljava/lang/Throwable;
            0    5     4  currentFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
    MethodParameters:
              Name  Flags
      isTProfiled   
      callNode      
      root          
      t             
      currentFrame  

  private static void innerAddStackFrameInfoBoundary(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.nodes.Node callNode
        start local 1 // com.oracle.truffle.api.RootCallTarget root
        start local 2 // java.lang.Throwable t
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
         0: .line 429
            aload 0 /* callNode */
            aload 1 /* root */
            aload 2 /* t */
            aload 3 /* currentFrame */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.innerAddStackFrameInfo:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
         1: .line 430
            return
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.RootCallTarget root
        end local 0 // com.oracle.truffle.api.nodes.Node callNode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0      callNode  Lcom/oracle/truffle/api/nodes/Node;
            0    2     1          root  Lcom/oracle/truffle/api/RootCallTarget;
            0    2     2             t  Ljava/lang/Throwable;
            0    2     3  currentFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      callNode      
      root          
      t             
      currentFrame  

  private static void innerAddStackFrameInfo(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // com.oracle.truffle.api.nodes.Node callNode
        start local 1 // com.oracle.truffle.api.RootCallTarget root
        start local 2 // java.lang.Throwable t
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
         0: .line 434
            aload 2 /* t */
            instanceof com.oracle.truffle.api.TruffleException
            ifeq 1
            aload 2 /* t */
            checkcast com.oracle.truffle.api.TruffleException
            invokeinterface com.oracle.truffle.api.TruffleException.isInternalError:()Z
            ifeq 3
         1: .line 436
      StackMap locals:
      StackMap stack:
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.fillIn:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace;
            pop
         2: .line 437
            return
         3: .line 440
      StackMap locals:
      StackMap stack:
            aload 2 /* t */
            checkcast com.oracle.truffle.api.TruffleException
            invokeinterface com.oracle.truffle.api.TruffleException.getStackTraceElementLimit:()I
            istore 4 /* stackTraceElementLimit */
        start local 4 // int stackTraceElementLimit
         4: .line 442
            invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
            aload 2 /* t */
            invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.isException:(Ljava/lang/Object;)Z
            ifeq 10
         5: .line 443
            invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
            aload 2 /* t */
            invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.getLazyStackTrace:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            checkcast com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            astore 5 /* lazy */
        start local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
         6: .line 444
            aload 5 /* lazy */
            ifnonnull 20
         7: .line 445
            new com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            dup
            invokespecial com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.<init>:()V
            astore 5 /* lazy */
         8: .line 446
            invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
            aload 2 /* t */
            aload 5 /* lazy */
            invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.setLazyStackTrace:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
         9: .line 448
            goto 20
        end local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        10: .line 449
      StackMap locals: int
      StackMap stack:
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.getCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 6 /* cause */
        start local 6 // java.lang.Throwable cause
        11: .line 450
            aload 6 /* cause */
            ifnonnull 15
        12: .line 451
            aload 2 /* t */
            new com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            dup
            invokespecial com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.<init>:()V
            dup
            astore 5 /* lazy */
        start local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        13: invokestatic com.oracle.truffle.api.TruffleStackTrace.insert:(Ljava/lang/Throwable;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;)V
        14: .line 452
            goto 20
        end local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.RootCallTarget java.lang.Throwable com.oracle.truffle.api.frame.MaterializedFrame int top java.lang.Throwable
      StackMap stack:
        15: aload 6 /* cause */
            instanceof com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            ifeq 18
        16: .line 453
            aload 6 /* cause */
            checkcast com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            astore 5 /* lazy */
        start local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        17: .line 454
            goto 20
        end local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        18: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* callNode */
            aload 1 /* root */
            aload 6 /* cause */
            aload 3 /* currentFrame */
            iload 4 /* stackTraceElementLimit */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.addStackFrameInfoSlowPath:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;I)V
        19: .line 456
            return
        end local 6 // java.lang.Throwable cause
        start local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        20: .line 459
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.RootCallTarget java.lang.Throwable com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
      StackMap stack:
            aload 0 /* callNode */
            aload 1 /* root */
            aload 3 /* currentFrame */
            aload 5 /* lazy */
            iload 4 /* stackTraceElementLimit */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.appendLazyStackTrace:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;I)V
        21: .line 460
            return
        end local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        end local 4 // int stackTraceElementLimit
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.RootCallTarget root
        end local 0 // com.oracle.truffle.api.nodes.Node callNode
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   22     0                callNode  Lcom/oracle/truffle/api/nodes/Node;
            0   22     1                    root  Lcom/oracle/truffle/api/RootCallTarget;
            0   22     2                       t  Ljava/lang/Throwable;
            0   22     3            currentFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            4   22     4  stackTraceElementLimit  I
            6   10     5                    lazy  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
           13   15     5                    lazy  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
           17   18     5                    lazy  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
           20   22     5                    lazy  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
           11   20     6                   cause  Ljava/lang/Throwable;
    MethodParameters:
              Name  Flags
      callNode      
      root          
      t             
      currentFrame  

  private static void addStackFrameInfoSlowPath(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.MaterializedFrame, int);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/MaterializedFrame;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.api.nodes.Node callNode
        start local 1 // com.oracle.truffle.api.RootCallTarget root
        start local 2 // java.lang.Throwable t
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
        start local 4 // int stackTraceElementLimit
         0: .line 464
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.getOrCreateLazyStackTrace:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
            astore 5 /* lazy */
        start local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
         1: .line 465
            aload 0 /* callNode */
            aload 1 /* root */
            aload 3 /* currentFrame */
            aload 5 /* lazy */
            iload 4 /* stackTraceElementLimit */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.appendLazyStackTrace:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;I)V
         2: .line 466
            return
        end local 5 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        end local 4 // int stackTraceElementLimit
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.RootCallTarget root
        end local 0 // com.oracle.truffle.api.nodes.Node callNode
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                callNode  Lcom/oracle/truffle/api/nodes/Node;
            0    3     1                    root  Lcom/oracle/truffle/api/RootCallTarget;
            0    3     2                       t  Ljava/lang/Throwable;
            0    3     3            currentFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0    3     4  stackTraceElementLimit  I
            1    3     5                    lazy  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                        Name  Flags
      callNode                
      root                    
      t                       
      currentFrame            
      stackTraceElementLimit  

  private static com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace getOrCreateLazyStackTrace(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Throwable throwable
         0: .line 470
            invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
            aload 0 /* throwable */
            invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.isException:(Ljava/lang/Object;)Z
            ifeq 6
         1: .line 471
            invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
            aload 0 /* throwable */
            invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.getLazyStackTrace:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            checkcast com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            astore 1 /* lazy */
        start local 1 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
         2: .line 472
            aload 1 /* lazy */
            ifnonnull 5
         3: .line 473
            new com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            dup
            invokespecial com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.<init>:()V
            astore 1 /* lazy */
         4: .line 474
            invokestatic com.oracle.truffle.api.LanguageAccessor.exceptionAccess:()Lcom/oracle/truffle/api/impl/Accessor$ExceptionSupport;
            aload 0 /* throwable */
            aload 1 /* lazy */
            invokevirtual com.oracle.truffle.api.impl.Accessor$ExceptionSupport.setLazyStackTrace:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
         5: .line 476
      StackMap locals: com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
      StackMap stack:
            aload 1 /* lazy */
            areturn
        end local 1 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
         6: .line 478
      StackMap locals:
      StackMap stack:
            aload 0 /* throwable */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.findImpl:(Ljava/lang/Throwable;)Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
            astore 1 /* lazy */
        start local 1 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
         7: .line 479
            aload 1 /* lazy */
            ifnonnull 12
         8: .line 480
            aload 0 /* throwable */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.findInsertCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 2 /* insertCause */
        start local 2 // java.lang.Throwable insertCause
         9: .line 481
            aload 2 /* insertCause */
            ifnonnull 11
        10: .line 482
            aconst_null
            areturn
        11: .line 484
      StackMap locals: com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace java.lang.Throwable
      StackMap stack:
            aload 2 /* insertCause */
            new com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            dup
            invokespecial com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.<init>:()V
            dup
            astore 1 /* lazy */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.insert:(Ljava/lang/Throwable;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;)V
        end local 2 // java.lang.Throwable insertCause
        12: .line 487
      StackMap locals:
      StackMap stack:
            aload 1 /* lazy */
            areturn
        end local 1 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        end local 0 // java.lang.Throwable throwable
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0    throwable  Ljava/lang/Throwable;
            2    6     1         lazy  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
            7   13     1         lazy  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
            9   12     2  insertCause  Ljava/lang/Throwable;
    MethodParameters:
           Name  Flags
      throwable  

  private static void appendLazyStackTrace(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace, int);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.nodes.Node callNode
        start local 1 // com.oracle.truffle.api.RootCallTarget root
        start local 2 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
        start local 3 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        start local 4 // int stackTraceElementLimit
         0: .line 491
            aload 3 /* lazy */
            getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.stackTrace:Lcom/oracle/truffle/api/TruffleStackTrace;
            ifnonnull 6
         1: .line 492
            iload 4 /* stackTraceElementLimit */
            iflt 3
            aload 3 /* lazy */
            getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.frameCount:I
            iload 4 /* stackTraceElementLimit */
            if_icmplt 3
         2: .line 493
            return
         3: .line 495
      StackMap locals:
      StackMap stack:
            aload 3 /* lazy */
            new com.oracle.truffle.api.TruffleStackTrace$TracebackElement
            dup
            aload 3 /* lazy */
            getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.current:Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
            aload 0 /* callNode */
            aload 1 /* root */
            aload 2 /* currentFrame */
            invokespecial com.oracle.truffle.api.TruffleStackTrace$TracebackElement.<init>:(Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
            putfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.current:Lcom/oracle/truffle/api/TruffleStackTrace$TracebackElement;
         4: .line 496
            aload 1 /* root */
            ifnull 6
            aload 1 /* root */
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.isInternal:()Z
            ifne 6
         5: .line 497
            aload 3 /* lazy */
            dup
            getfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.frameCount:I
            iconst_1
            iadd
            putfield com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.frameCount:I
         6: .line 500
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int stackTraceElementLimit
        end local 3 // com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace lazy
        end local 2 // com.oracle.truffle.api.frame.MaterializedFrame currentFrame
        end local 1 // com.oracle.truffle.api.RootCallTarget root
        end local 0 // com.oracle.truffle.api.nodes.Node callNode
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0                callNode  Lcom/oracle/truffle/api/nodes/Node;
            0    7     1                    root  Lcom/oracle/truffle/api/RootCallTarget;
            0    7     2            currentFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0    7     3                    lazy  Lcom/oracle/truffle/api/TruffleStackTrace$LazyStackTrace;
            0    7     4  stackTraceElementLimit  I
    MethodParameters:
                        Name  Flags
      callNode                
      root                    
      currentFrame            
      lazy                    
      stackTraceElementLimit  

  private static void addStackFrames(int, int, com.oracle.truffle.api.nodes.Node, java.util.List<com.oracle.truffle.api.TruffleStackTraceElement>);
    descriptor: (IILcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // int stackFrameLimit
        start local 1 // int lazyFrames
        start local 2 // com.oracle.truffle.api.nodes.Node topCallSite
        start local 3 // java.util.List frames
         0: .line 503
            iload 0 /* stackFrameLimit */
            iflt 2
            iload 1 /* lazyFrames */
            iload 0 /* stackFrameLimit */
            if_icmplt 2
         1: .line 506
            return
         2: .line 508
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.api.TruffleStackTrace$1
            dup
            iload 1 /* lazyFrames */
            iload 0 /* stackFrameLimit */
            aload 2 /* topCallSite */
            aload 3 /* frames */
            invokespecial com.oracle.truffle.api.TruffleStackTrace$1.<init>:(IILcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
            pop
         3: .line 534
            return
        end local 3 // java.util.List frames
        end local 2 // com.oracle.truffle.api.nodes.Node topCallSite
        end local 1 // int lazyFrames
        end local 0 // int stackFrameLimit
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0  stackFrameLimit  I
            0    4     1       lazyFrames  I
            0    4     2      topCallSite  Lcom/oracle/truffle/api/nodes/Node;
            0    4     3           frames  Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
    Signature: (IILcom/oracle/truffle/api/nodes/Node;Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;)V
    MethodParameters:
                 Name  Flags
      stackFrameLimit  
      lazyFrames       
      topCallSite      final
      frames           
}
SourceFile: "TruffleStackTrace.java"
NestMembers:
  com.oracle.truffle.api.TruffleStackTrace$1  com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace  com.oracle.truffle.api.TruffleStackTrace$TracebackElement
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
  com.oracle.truffle.api.TruffleStackTrace$1
  final LazyStackTrace = com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace of com.oracle.truffle.api.TruffleStackTrace
  private final TracebackElement = com.oracle.truffle.api.TruffleStackTrace$TracebackElement of com.oracle.truffle.api.TruffleStackTrace
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
  public abstract ExceptionSupport = com.oracle.truffle.api.impl.Accessor$ExceptionSupport of com.oracle.truffle.api.impl.Accessor
  public abstract NodeSupport = com.oracle.truffle.api.impl.Accessor$NodeSupport of com.oracle.truffle.api.impl.Accessor