final class com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable implements java.lang.Iterable<com.oracle.truffle.api.debug.DebugStackFrame>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable
  super_class: java.lang.Object
{
  private final java.lang.StackTraceElement[] hostStack;
    descriptor: [Ljava/lang/StackTraceElement;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.truffle.api.debug.DebugStackFrame topStackFrame;
    descriptor: Lcom/oracle/truffle/api/debug/DebugStackFrame;
    flags: (0x0002) ACC_PRIVATE

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

  final com.oracle.truffle.api.debug.SuspendedEvent this$0;
    descriptor: Lcom/oracle/truffle/api/debug/SuspendedEvent;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(com.oracle.truffle.api.debug.SuspendedEvent, boolean);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
        start local 2 // boolean hostIncluded
         0: .line 757
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 758
            aload 0 /* this */
            iload 2 /* hostIncluded */
            ifeq 2
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokestatic com.oracle.truffle.api.debug.SuspendedEvent.cutToHostDepth:([Ljava/lang/StackTraceElement;)[Ljava/lang/StackTraceElement;
            goto 3
      StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable com.oracle.truffle.api.debug.SuspendedEvent int
      StackMap stack: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable
         2: aconst_null
      StackMap locals: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable com.oracle.truffle.api.debug.SuspendedEvent int
      StackMap stack: com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable java.lang.StackTraceElement[]
         3: putfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.hostStack:[Ljava/lang/StackTraceElement;
         4: .line 759
            return
        end local 2 // boolean hostIncluded
        end local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
            0    5     2  hostIncluded  Z
    MethodParameters:
              Name  Flags
      this$0        final
      hostIncluded  

  private com.oracle.truffle.api.debug.DebugStackFrame getTopStackFrame();
    descriptor: ()Lcom/oracle/truffle/api/debug/DebugStackFrame;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
         0: .line 762
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.topStackFrame:Lcom/oracle/truffle/api/debug/DebugStackFrame;
            ifnonnull 2
         1: .line 763
            aload 0 /* this */
            new com.oracle.truffle.api.debug.DebugStackFrame
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
            aconst_null
            iconst_0
            invokespecial com.oracle.truffle.api.debug.DebugStackFrame.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent;Lcom/oracle/truffle/api/frame/FrameInstance;I)V
            putfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.topStackFrame:Lcom/oracle/truffle/api/debug/DebugStackFrame;
         2: .line 765
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.topStackFrame:Lcom/oracle/truffle/api/debug/DebugStackFrame;
            areturn
        end local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;

  private java.util.List<com.oracle.truffle.api.debug.DebugStackFrame> getOtherFrames(boolean);
    descriptor: (Z)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
        start local 1 // boolean raw
         0: .line 769
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.otherFrames:Ljava/util/List;
            ifnonnull 4
         1: .line 770
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* frameInstances */
        start local 2 // java.util.List frameInstances
         2: .line 771
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$1
            dup
            aload 0 /* this */
            iload 1 /* raw */
            aload 2 /* frameInstances */
            invokespecial com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$1.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;ZLjava/util/List;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
            pop
         3: .line 803
            aload 0 /* this */
            aload 2 /* frameInstances */
            putfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.otherFrames:Ljava/util/List;
        end local 2 // java.util.List frameInstances
         4: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.otherFrames:Ljava/util/List;
            areturn
        end local 1 // boolean raw
        end local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
            0    5     1             raw  Z
            2    4     2  frameInstances  Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;
    Signature: (Z)Ljava/util/List<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;
    MethodParameters:
      Name  Flags
      raw   

  private boolean hasRootTag(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
        start local 1 // com.oracle.truffle.api.nodes.Node callNode
         0: .line 809
            aload 1 /* callNode */
            astore 2 /* node */
        start local 2 // com.oracle.truffle.api.nodes.Node node
         1: .line 811
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 2 /* node */
            instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode
            ifeq 3
            aload 2 /* node */
            checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
            invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.hasTag:(Ljava/lang/Class;)Z
            ifeq 3
         2: .line 812
            iconst_1
            ireturn
         3: .line 814
      StackMap locals:
      StackMap stack:
            aload 2 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            astore 2 /* node */
         4: .line 815
            aload 2 /* node */
            ifnonnull 1
         5: .line 816
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.nodes.Node node
        end local 1 // com.oracle.truffle.api.nodes.Node callNode
        end local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
            0    6     1  callNode  Lcom/oracle/truffle/api/nodes/Node;
            1    6     2      node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
          Name  Flags
      callNode  

  private int getTopFrameIndex();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
         0: .line 820
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
            getfield com.oracle.truffle.api.debug.SuspendedEvent.context:Lcom/oracle/truffle/api/debug/SuspendedContext;
            invokeinterface com.oracle.truffle.api.debug.SuspendedContext.getStackDepth:()I
            ifne 2
         1: .line 821
            iconst_0
            ireturn
         2: .line 823
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
            getfield com.oracle.truffle.api.debug.SuspendedEvent.context:Lcom/oracle/truffle/api/debug/SuspendedContext;
            invokeinterface com.oracle.truffle.api.debug.SuspendedContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            astore 1 /* node */
        start local 1 // com.oracle.truffle.api.nodes.Node node
         3: .line 824
            aload 1 /* node */
            instanceof com.oracle.truffle.api.nodes.RootNode
            ifne 4
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.hasRootTag:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 5
         4: .line 826
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            iconst_0
            ireturn
         5: .line 828
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
            3    6     1  node  Lcom/oracle/truffle/api/nodes/Node;

  public java.util.Iterator<com.oracle.truffle.api.debug.DebugStackFrame> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
         0: .line 833
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.hostStack:[Ljava/lang/StackTraceElement;
            ifnull 6
         1: .line 834
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 1 /* frameDepth */
        start local 1 // java.util.concurrent.atomic.AtomicInteger frameDepth
         2: .line 835
            getstatic com.oracle.truffle.api.debug.Debugger.ACCESSOR:Lcom/oracle/truffle/api/debug/Debugger$AccessorDebug;
            invokevirtual com.oracle.truffle.api.debug.Debugger$AccessorDebug.engineSupport:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.hostStack:[Ljava/lang/StackTraceElement;
            new com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$2
            dup
            aload 0 /* this */
            aload 0 /* this */
            iconst_1
            aload 1 /* frameDepth */
            invokespecial com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$2.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;ZLjava/util/concurrent/atomic/AtomicInteger;)V
         3: .line 844
            iconst_0
            new com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$3
            dup
            aload 0 /* this */
            aload 1 /* frameDepth */
            invokespecial com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$3.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;Ljava/util/concurrent/atomic/AtomicInteger;)V
         4: .line 849
            invokestatic java.util.function.Function.identity:()Ljava/util/function/Function;
         5: .line 835
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.mergeHostGuestFrames:([Ljava/lang/StackTraceElement;Ljava/util/Iterator;ZLjava/util/function/Function;Ljava/util/function/Function;)Ljava/util/Iterator;
            areturn
        end local 1 // java.util.concurrent.atomic.AtomicInteger frameDepth
         6: .line 851
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$GuestIterator
            dup
            aload 0 /* this */
            iconst_0
            invokespecial com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$GuestIterator.<init>:(Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;Z)V
            areturn
        end local 0 // com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;
            2    6     1  frameDepth  Ljava/util/concurrent/atomic/AtomicInteger;
    Signature: ()Ljava/util/Iterator<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;

  static com.oracle.truffle.api.debug.SuspendedEvent access$0(com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable);
    descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent$DebugStackFrameIterable;)Lcom/oracle/truffle/api/debug/SuspendedEvent;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 751
            aload 0
            getfield com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable.this$0:Lcom/oracle/truffle/api/debug/SuspendedEvent;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/lang/Iterable<Lcom/oracle/truffle/api/debug/DebugStackFrame;>;
SourceFile: "SuspendedEvent.java"
NestHost: com.oracle.truffle.api.debug.SuspendedEvent
InnerClasses:
  final AccessorDebug = com.oracle.truffle.api.debug.Debugger$AccessorDebug of com.oracle.truffle.api.debug.Debugger
  private final DebugStackFrameIterable = com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable of com.oracle.truffle.api.debug.SuspendedEvent
  com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$1
  com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$2
  com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$3
  private GuestIterator = com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable$GuestIterator of com.oracle.truffle.api.debug.SuspendedEvent$DebugStackFrameIterable
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
  public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags