public final class com.oracle.truffle.js.nodes.control.ForNode extends com.oracle.truffle.js.nodes.control.StatementNode implements com.oracle.truffle.js.nodes.control.ResumableNode
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.nodes.control.ForNode
  super_class: com.oracle.truffle.js.nodes.control.StatementNode
{
  private com.oracle.truffle.api.nodes.LoopNode loop;
    descriptor: Lcom/oracle/truffle/api/nodes/LoopNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.function.IterationScopeNode copy;
    descriptor: Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  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=1, locals=0, args_size=0
         0: .line 70
            ldc Lcom/oracle/truffle/js/nodes/control/ForNode;
            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.js.nodes.control.ForNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(com.oracle.truffle.api.nodes.RepeatingNode, com.oracle.truffle.js.nodes.function.IterationScopeNode);
    descriptor: (Lcom/oracle/truffle/api/nodes/RepeatingNode;Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
        start local 1 // com.oracle.truffle.api.nodes.RepeatingNode repeatingNode
        start local 2 // com.oracle.truffle.js.nodes.function.IterationScopeNode copy
         0: .line 75
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.control.StatementNode.<init>:()V
         1: .line 76
            aload 0 /* this */
            aload 2 /* copy */
            putfield com.oracle.truffle.js.nodes.control.ForNode.copy:Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;
         2: .line 77
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 1 /* repeatingNode */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createLoopNode:(Lcom/oracle/truffle/api/nodes/RepeatingNode;)Lcom/oracle/truffle/api/nodes/LoopNode;
            putfield com.oracle.truffle.js.nodes.control.ForNode.loop:Lcom/oracle/truffle/api/nodes/LoopNode;
         3: .line 78
            return
        end local 2 // com.oracle.truffle.js.nodes.function.IterationScopeNode copy
        end local 1 // com.oracle.truffle.api.nodes.RepeatingNode repeatingNode
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/oracle/truffle/js/nodes/control/ForNode;
            0    4     1  repeatingNode  Lcom/oracle/truffle/api/nodes/RepeatingNode;
            0    4     2           copy  Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;
    MethodParameters:
               Name  Flags
      repeatingNode  
      copy           

  public static com.oracle.truffle.js.nodes.control.ForNode createFor(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.function.IterationScopeNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/ForNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=7, args_size=6
        start local 0 // com.oracle.truffle.js.nodes.JavaScriptNode condition
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        start local 3 // com.oracle.truffle.js.nodes.function.IterationScopeNode copy
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode isFirstNode
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode setNotFirstNode
         0: .line 81
            aload 1 /* body */
            instanceof com.oracle.truffle.js.nodes.control.DiscardResultNode
            ifeq 1
            aload 1 /* body */
            checkcast com.oracle.truffle.js.nodes.control.DiscardResultNode
            invokevirtual com.oracle.truffle.js.nodes.control.DiscardResultNode.getOperand:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* body */
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
         2: astore 6 /* nonVoidBody */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode nonVoidBody
         3: .line 82
            new com.oracle.truffle.js.nodes.control.ForNode
            dup
            new com.oracle.truffle.js.nodes.control.ForNode$ForRepeatingNode
            dup
            aload 0 /* condition */
            aload 6 /* nonVoidBody */
            aload 2 /* modify */
            aload 3 /* copy */
            aload 4 /* isFirstNode */
            aload 5 /* setNotFirstNode */
            invokespecial com.oracle.truffle.js.nodes.control.ForNode$ForRepeatingNode.<init>:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
            aload 3 /* copy */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.cloneNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.function.IterationScopeNode
            invokespecial com.oracle.truffle.js.nodes.control.ForNode.<init>:(Lcom/oracle/truffle/api/nodes/RepeatingNode;Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;)V
            areturn
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode nonVoidBody
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode setNotFirstNode
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode isFirstNode
        end local 3 // com.oracle.truffle.js.nodes.function.IterationScopeNode copy
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.nodes.JavaScriptNode condition
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0        condition  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    4     1             body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    4     2           modify  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    4     3             copy  Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;
            0    4     4      isFirstNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    4     5  setNotFirstNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    4     6      nonVoidBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                 Name  Flags
      condition        
      body             
      modify           
      copy             
      isFirstNode      
      setNotFirstNode  

  public boolean hasTag(java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
        start local 1 // java.lang.Class tag
         0: .line 87
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;
            if_acmpne 2
         1: .line 88
            iconst_1
            ireturn
         2: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tag */
            invokespecial com.oracle.truffle.js.nodes.control.StatementNode.hasTag:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class tag
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/nodes/control/ForNode;
            0    3     1   tag  Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;)Z
    MethodParameters:
      Name  Flags
      tag   

  public java.lang.Object getNodeObject();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
         0: .line 95
            ldc "type"
            getstatic com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag$Type.ForIteration:Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag$Type;
            invokevirtual com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag$Type.name:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.nodes.instrumentation.JSTags.createNodeObjectDescriptor:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/instrumentation/NodeObjectDescriptor;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/control/ForNode;

  public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
        start local 1 // java.util.Set materializedTags
         0: .line 100
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.control.ForNode.hasMaterializationTag:(Ljava/util/Set;)Z
            ifeq 9
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.loop:Lcom/oracle/truffle/api/nodes/LoopNode;
            invokevirtual com.oracle.truffle.api.nodes.LoopNode.getRepeatingNode:()Lcom/oracle/truffle/api/nodes/RepeatingNode;
            invokestatic com.oracle.truffle.js.nodes.control.AbstractRepeatingNode.materializationNeeded:(Lcom/oracle/truffle/api/nodes/RepeatingNode;)Z
            ifeq 9
         1: .line 101
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.copy:Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.control.ForNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.function.IterationScopeNode
            astore 2 /* newCopy */
        start local 2 // com.oracle.truffle.js.nodes.function.IterationScopeNode newCopy
         2: .line 106
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.loop:Lcom/oracle/truffle/api/nodes/LoopNode;
            invokevirtual com.oracle.truffle.api.nodes.LoopNode.getRepeatingNode:()Lcom/oracle/truffle/api/nodes/RepeatingNode;
            checkcast com.oracle.truffle.js.nodes.control.AbstractRepeatingNode
            aload 1 /* materializedTags */
            invokevirtual com.oracle.truffle.js.nodes.control.AbstractRepeatingNode.materializeInstrumentableNodes:(Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
            checkcast com.oracle.truffle.js.nodes.control.AbstractRepeatingNode
            astore 3 /* materializedLoop */
        start local 3 // com.oracle.truffle.js.nodes.control.AbstractRepeatingNode materializedLoop
         3: .line 107
            aload 3 /* materializedLoop */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.loop:Lcom/oracle/truffle/api/nodes/LoopNode;
            invokevirtual com.oracle.truffle.api.nodes.LoopNode.getRepeatingNode:()Lcom/oracle/truffle/api/nodes/RepeatingNode;
            if_acmpne 5
         4: .line 108
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.loop:Lcom/oracle/truffle/api/nodes/LoopNode;
            invokevirtual com.oracle.truffle.api.nodes.LoopNode.getRepeatingNode:()Lcom/oracle/truffle/api/nodes/RepeatingNode;
            checkcast com.oracle.truffle.js.nodes.control.AbstractRepeatingNode
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.control.ForNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.control.AbstractRepeatingNode
            astore 3 /* materializedLoop */
         5: .line 110
      StackMap locals: com.oracle.truffle.js.nodes.function.IterationScopeNode com.oracle.truffle.js.nodes.control.AbstractRepeatingNode
      StackMap stack:
            aload 0 /* this */
            aload 3 /* materializedLoop */
            getfield com.oracle.truffle.js.nodes.control.AbstractRepeatingNode.bodyNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.nodes.control.ForNode.transferSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
         6: .line 111
            new com.oracle.truffle.js.nodes.control.ForNode
            dup
            aload 3 /* materializedLoop */
            aload 2 /* newCopy */
            invokespecial com.oracle.truffle.js.nodes.control.ForNode.<init>:(Lcom/oracle/truffle/api/nodes/RepeatingNode;Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;)V
            astore 4 /* materializedNode */
        start local 4 // com.oracle.truffle.js.nodes.control.ForNode materializedNode
         7: .line 112
            aload 0 /* this */
            aload 4 /* materializedNode */
            invokestatic com.oracle.truffle.js.nodes.control.ForNode.transferSourceSectionAndTags:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
         8: .line 113
            aload 4 /* materializedNode */
            areturn
        end local 4 // com.oracle.truffle.js.nodes.control.ForNode materializedNode
        end local 3 // com.oracle.truffle.js.nodes.control.AbstractRepeatingNode materializedLoop
        end local 2 // com.oracle.truffle.js.nodes.function.IterationScopeNode newCopy
         9: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lcom/oracle/truffle/js/nodes/control/ForNode;
            0   10     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
            2    9     2           newCopy  Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;
            3    9     3  materializedLoop  Lcom/oracle/truffle/js/nodes/control/AbstractRepeatingNode;
            7    9     4  materializedNode  Lcom/oracle/truffle/js/nodes/control/ForNode;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
    MethodParameters:
                  Name  Flags
      materializedTags  

  private static boolean hasMaterializationTag(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Set materializedTags
         0: .line 120
            aload 0 /* materializedTags */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
            aload 0 /* materializedTags */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBlockTag;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 121
            aload 0 /* materializedTags */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 120
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // java.util.Set materializedTags
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Z
    MethodParameters:
                  Name  Flags
      materializedTags  

  public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 126
            aload 0 /* this */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.control.ForNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;)V
         1: .line 127
            getstatic com.oracle.truffle.js.nodes.control.ForNode.EMPTY:Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/nodes/control/ForNode;
            0    2     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
    MethodParameters:
       Name  Flags
      frame  

  public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 132
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.loop:Lcom/oracle/truffle/api/nodes/LoopNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.copy:Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.function.IterationScopeNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/frame/VirtualFrame;
            invokevirtual com.oracle.truffle.api.nodes.LoopNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            pop
         1: .line 133
            return
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/nodes/control/ForNode;
            0    2     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
    MethodParameters:
       Name  Flags
      frame  

  public java.lang.Object resume(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 137
            aload 0 /* this */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.control.ForNode.getStateAndReset:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 2 /* state */
        start local 2 // java.lang.Object state
         1: .line 138
            aload 2 /* state */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.copy:Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.function.IterationScopeNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/frame/VirtualFrame;
            invokeinterface com.oracle.truffle.api.frame.VirtualFrame.materialize:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: aload 2 /* state */
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.castMaterializedFrame:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/MaterializedFrame;
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.frame.MaterializedFrame
         3: astore 3 /* loopFrame */
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame loopFrame
         4: .line 140
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.loop:Lcom/oracle/truffle/api/nodes/LoopNode;
            aload 3 /* loopFrame */
            invokevirtual com.oracle.truffle.api.nodes.LoopNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            pop
         5: .line 141
            goto 9
      StackMap locals: com.oracle.truffle.js.nodes.control.ForNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object com.oracle.truffle.api.frame.MaterializedFrame
      StackMap stack: com.oracle.truffle.js.nodes.control.YieldException
         6: astore 4 /* e */
        start local 4 // com.oracle.truffle.js.nodes.control.YieldException e
         7: .line 142
            aload 0 /* this */
            aload 1 /* frame */
            aload 3 /* loopFrame */
            invokevirtual com.oracle.truffle.js.nodes.control.ForNode.setState:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)V
         8: .line 143
            aload 4 /* e */
            athrow
        end local 4 // com.oracle.truffle.js.nodes.control.YieldException e
         9: .line 145
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.control.ForNode.EMPTY:Ljava/lang/Object;
            areturn
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame loopFrame
        end local 2 // java.lang.Object state
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/oracle/truffle/js/nodes/control/ForNode;
            0   10     1      frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1   10     2      state  Ljava/lang/Object;
            4   10     3  loopFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            7    9     4          e  Lcom/oracle/truffle/js/nodes/control/YieldException;
      Exception table:
        from    to  target  type
           4     5       6  Class com.oracle.truffle.js.nodes.control.YieldException
    MethodParameters:
       Name  Flags
      frame  

  public boolean isResultAlwaysOfType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
        start local 1 // java.lang.Class clazz
         0: .line 150
            getstatic com.oracle.truffle.js.nodes.control.ForNode.$assertionsDisabled:Z
            ifne 1
            getstatic com.oracle.truffle.js.nodes.control.ForNode.EMPTY:Ljava/lang/Object;
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 151
      StackMap locals:
      StackMap stack:
            aload 1 /* clazz */
            ldc Lcom/oracle/truffle/js/runtime/objects/Undefined;
            if_acmpne 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/js/nodes/control/ForNode;
            0    3     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  protected com.oracle.truffle.js.nodes.JavaScriptNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
        start local 1 // java.util.Set materializedTags
         0: .line 156
            new com.oracle.truffle.js.nodes.control.ForNode
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.loop:Lcom/oracle/truffle/api/nodes/LoopNode;
            invokevirtual com.oracle.truffle.api.nodes.LoopNode.getRepeatingNode:()Lcom/oracle/truffle/api/nodes/RepeatingNode;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.control.ForNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.api.nodes.RepeatingNode
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.copy:Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.control.ForNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.function.IterationScopeNode
            invokespecial com.oracle.truffle.js.nodes.control.ForNode.<init>:(Lcom/oracle/truffle/api/nodes/RepeatingNode;Lcom/oracle/truffle/js/nodes/function/IterationScopeNode;)V
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/truffle/js/nodes/control/ForNode;
            0    1     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                  Name  Flags
      materializedTags  

  public com.oracle.truffle.api.nodes.LoopNode getLoopNode();
    descriptor: ()Lcom/oracle/truffle/api/nodes/LoopNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.control.ForNode this
         0: .line 160
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.control.ForNode.loop:Lcom/oracle/truffle/api/nodes/LoopNode;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.control.ForNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/control/ForNode;
}
SourceFile: "ForNode.java"
NestMembers:
  com.oracle.truffle.js.nodes.control.ForNode$ForRepeatingNode
InnerClasses:
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  private final ForRepeatingNode = com.oracle.truffle.js.nodes.control.ForNode$ForRepeatingNode of com.oracle.truffle.js.nodes.control.ForNode
  public final ControlFlowBlockTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBlockTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final ControlFlowBranchTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBranchTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final ControlFlowRootTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final Type = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag$Type of com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.NodeInfo(shortName = "for")