public abstract class jdk.nashorn.internal.ir.LoopNode extends jdk.nashorn.internal.ir.BreakableStatement
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.nashorn.internal.ir.LoopNode
  super_class: jdk.nashorn.internal.ir.BreakableStatement
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  protected final jdk.nashorn.internal.codegen.Label continueLabel;
    descriptor: Ljdk/nashorn/internal/codegen/Label;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final jdk.nashorn.internal.ir.JoinPredecessorExpression test;
    descriptor: Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final jdk.nashorn.internal.ir.Block body;
    descriptor: Ljdk/nashorn/internal/ir/Block;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final boolean controlFlowEscapes;
    descriptor: Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected void <init>(int, long, int, jdk.nashorn.internal.ir.Block, jdk.nashorn.internal.ir.JoinPredecessorExpression, boolean);
    descriptor: (IJILjdk/nashorn/internal/ir/Block;Ljdk/nashorn/internal/ir/JoinPredecessorExpression;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=8, args_size=7
        start local 0 // jdk.nashorn.internal.ir.LoopNode this
        start local 1 // int lineNumber
        start local 2 // long token
        start local 4 // int finish
        start local 5 // jdk.nashorn.internal.ir.Block body
        start local 6 // jdk.nashorn.internal.ir.JoinPredecessorExpression test
        start local 7 // boolean controlFlowEscapes
         0: .line 62
            aload 0 /* this */
            iload 1 /* lineNumber */
            lload 2 /* token */
            iload 4 /* finish */
            new jdk.nashorn.internal.codegen.Label
            dup
            ldc "while_break"
            invokespecial jdk.nashorn.internal.codegen.Label.<init>:(Ljava/lang/String;)V
            invokespecial jdk.nashorn.internal.ir.BreakableStatement.<init>:(IJILjdk/nashorn/internal/codegen/Label;)V
         1: .line 63
            aload 0 /* this */
            new jdk.nashorn.internal.codegen.Label
            dup
            ldc "while_continue"
            invokespecial jdk.nashorn.internal.codegen.Label.<init>:(Ljava/lang/String;)V
            putfield jdk.nashorn.internal.ir.LoopNode.continueLabel:Ljdk/nashorn/internal/codegen/Label;
         2: .line 64
            aload 0 /* this */
            aload 5 /* body */
            putfield jdk.nashorn.internal.ir.LoopNode.body:Ljdk/nashorn/internal/ir/Block;
         3: .line 65
            aload 0 /* this */
            iload 7 /* controlFlowEscapes */
            putfield jdk.nashorn.internal.ir.LoopNode.controlFlowEscapes:Z
         4: .line 66
            aload 0 /* this */
            aload 6 /* test */
            putfield jdk.nashorn.internal.ir.LoopNode.test:Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
         5: .line 67
            return
        end local 7 // boolean controlFlowEscapes
        end local 6 // jdk.nashorn.internal.ir.JoinPredecessorExpression test
        end local 5 // jdk.nashorn.internal.ir.Block body
        end local 4 // int finish
        end local 2 // long token
        end local 1 // int lineNumber
        end local 0 // jdk.nashorn.internal.ir.LoopNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Ljdk/nashorn/internal/ir/LoopNode;
            0    6     1          lineNumber  I
            0    6     2               token  J
            0    6     4              finish  I
            0    6     5                body  Ljdk/nashorn/internal/ir/Block;
            0    6     6                test  Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
            0    6     7  controlFlowEscapes  Z
    MethodParameters:
                    Name  Flags
      lineNumber          final
      token               final
      finish              final
      body                final
      test                final
      controlFlowEscapes  final

  protected void <init>(jdk.nashorn.internal.ir.LoopNode, jdk.nashorn.internal.ir.JoinPredecessorExpression, jdk.nashorn.internal.ir.Block, boolean, jdk.nashorn.internal.ir.LocalVariableConversion);
    descriptor: (Ljdk/nashorn/internal/ir/LoopNode;Ljdk/nashorn/internal/ir/JoinPredecessorExpression;Ljdk/nashorn/internal/ir/Block;ZLjdk/nashorn/internal/ir/LocalVariableConversion;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // jdk.nashorn.internal.ir.LoopNode this
        start local 1 // jdk.nashorn.internal.ir.LoopNode loopNode
        start local 2 // jdk.nashorn.internal.ir.JoinPredecessorExpression test
        start local 3 // jdk.nashorn.internal.ir.Block body
        start local 4 // boolean controlFlowEscapes
        start local 5 // jdk.nashorn.internal.ir.LocalVariableConversion conversion
         0: .line 80
            aload 0 /* this */
            aload 1 /* loopNode */
            aload 5 /* conversion */
            invokespecial jdk.nashorn.internal.ir.BreakableStatement.<init>:(Ljdk/nashorn/internal/ir/BreakableStatement;Ljdk/nashorn/internal/ir/LocalVariableConversion;)V
         1: .line 81
            aload 0 /* this */
            new jdk.nashorn.internal.codegen.Label
            dup
            aload 1 /* loopNode */
            getfield jdk.nashorn.internal.ir.LoopNode.continueLabel:Ljdk/nashorn/internal/codegen/Label;
            invokespecial jdk.nashorn.internal.codegen.Label.<init>:(Ljdk/nashorn/internal/codegen/Label;)V
            putfield jdk.nashorn.internal.ir.LoopNode.continueLabel:Ljdk/nashorn/internal/codegen/Label;
         2: .line 82
            aload 0 /* this */
            aload 2 /* test */
            putfield jdk.nashorn.internal.ir.LoopNode.test:Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
         3: .line 83
            aload 0 /* this */
            aload 3 /* body */
            putfield jdk.nashorn.internal.ir.LoopNode.body:Ljdk/nashorn/internal/ir/Block;
         4: .line 84
            aload 0 /* this */
            iload 4 /* controlFlowEscapes */
            putfield jdk.nashorn.internal.ir.LoopNode.controlFlowEscapes:Z
         5: .line 85
            return
        end local 5 // jdk.nashorn.internal.ir.LocalVariableConversion conversion
        end local 4 // boolean controlFlowEscapes
        end local 3 // jdk.nashorn.internal.ir.Block body
        end local 2 // jdk.nashorn.internal.ir.JoinPredecessorExpression test
        end local 1 // jdk.nashorn.internal.ir.LoopNode loopNode
        end local 0 // jdk.nashorn.internal.ir.LoopNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Ljdk/nashorn/internal/ir/LoopNode;
            0    6     1            loopNode  Ljdk/nashorn/internal/ir/LoopNode;
            0    6     2                test  Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
            0    6     3                body  Ljdk/nashorn/internal/ir/Block;
            0    6     4  controlFlowEscapes  Z
            0    6     5          conversion  Ljdk/nashorn/internal/ir/LocalVariableConversion;
    MethodParameters:
                    Name  Flags
      loopNode            final
      test                final
      body                final
      controlFlowEscapes  final
      conversion          final

  public abstract jdk.nashorn.internal.ir.Node ensureUniqueLabels(jdk.nashorn.internal.ir.LexicalContext);
    descriptor: (Ljdk/nashorn/internal/ir/LexicalContext;)Ljdk/nashorn/internal/ir/Node;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      lc    final

  public boolean controlFlowEscapes();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.ir.LoopNode this
         0: .line 96
            aload 0 /* this */
            getfield jdk.nashorn.internal.ir.LoopNode.controlFlowEscapes:Z
            ireturn
        end local 0 // jdk.nashorn.internal.ir.LoopNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/ir/LoopNode;

  public boolean isTerminal();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.ir.LoopNode this
         0: .line 102
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.ir.LoopNode.mustEnter:()Z
            ifne 2
         1: .line 103
            iconst_0
            ireturn
         2: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.ir.LoopNode.controlFlowEscapes:Z
            ifeq 4
         3: .line 107
            iconst_0
            ireturn
         4: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.ir.LoopNode.body:Ljdk/nashorn/internal/ir/Block;
            invokevirtual jdk.nashorn.internal.ir.Block.isTerminal:()Z
            ifeq 6
         5: .line 111
            iconst_1
            ireturn
         6: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.ir.LoopNode.test:Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
            ifnonnull 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
        end local 0 // jdk.nashorn.internal.ir.LoopNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/nashorn/internal/ir/LoopNode;

  public abstract boolean mustEnter();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public jdk.nashorn.internal.codegen.Label getContinueLabel();
    descriptor: ()Ljdk/nashorn/internal/codegen/Label;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.ir.LoopNode this
         0: .line 128
            aload 0 /* this */
            getfield jdk.nashorn.internal.ir.LoopNode.continueLabel:Ljdk/nashorn/internal/codegen/Label;
            areturn
        end local 0 // jdk.nashorn.internal.ir.LoopNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/ir/LoopNode;

  public java.util.List<jdk.nashorn.internal.codegen.Label> getLabels();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.ir.LoopNode this
         0: .line 133
            iconst_2
            anewarray jdk.nashorn.internal.codegen.Label
            dup
            iconst_0
            aload 0 /* this */
            getfield jdk.nashorn.internal.ir.LoopNode.breakLabel:Ljdk/nashorn/internal/codegen/Label;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield jdk.nashorn.internal.ir.LoopNode.continueLabel:Ljdk/nashorn/internal/codegen/Label;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // jdk.nashorn.internal.ir.LoopNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/ir/LoopNode;
    Signature: ()Ljava/util/List<Ljdk/nashorn/internal/codegen/Label;>;

  public boolean isLoop();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.ir.LoopNode this
         0: .line 138
            iconst_1
            ireturn
        end local 0 // jdk.nashorn.internal.ir.LoopNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/ir/LoopNode;

  public abstract jdk.nashorn.internal.ir.Block getBody();
    descriptor: ()Ljdk/nashorn/internal/ir/Block;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract jdk.nashorn.internal.ir.LoopNode setBody(jdk.nashorn.internal.ir.LexicalContext, jdk.nashorn.internal.ir.Block);
    descriptor: (Ljdk/nashorn/internal/ir/LexicalContext;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/LoopNode;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      lc    final
      body  final

  public final jdk.nashorn.internal.ir.JoinPredecessorExpression getTest();
    descriptor: ()Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.ir.LoopNode this
         0: .line 159
            aload 0 /* this */
            getfield jdk.nashorn.internal.ir.LoopNode.test:Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
            areturn
        end local 0 // jdk.nashorn.internal.ir.LoopNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/ir/LoopNode;

  public abstract jdk.nashorn.internal.ir.LoopNode setTest(jdk.nashorn.internal.ir.LexicalContext, jdk.nashorn.internal.ir.JoinPredecessorExpression);
    descriptor: (Ljdk/nashorn/internal/ir/LexicalContext;Ljdk/nashorn/internal/ir/JoinPredecessorExpression;)Ljdk/nashorn/internal/ir/LoopNode;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      lc    final
      test  final

  public abstract jdk.nashorn.internal.ir.LoopNode setControlFlowEscapes(jdk.nashorn.internal.ir.LexicalContext, boolean);
    descriptor: (Ljdk/nashorn/internal/ir/LexicalContext;Z)Ljdk/nashorn/internal/ir/LoopNode;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
                    Name  Flags
      lc                  final
      controlFlowEscapes  final

  public abstract boolean hasPerIterationScope();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public jdk.nashorn.internal.ir.LocalVariableConversion getLocalVariableConversion();
    descriptor: ()Ljdk/nashorn/internal/ir/LocalVariableConversion;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial jdk.nashorn.internal.ir.BreakableStatement.getLocalVariableConversion:()Ljdk/nashorn/internal/ir/LocalVariableConversion;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public jdk.nashorn.internal.ir.JoinPredecessor setLocalVariableConversion(jdk.nashorn.internal.ir.LexicalContext, jdk.nashorn.internal.ir.LocalVariableConversion);
    descriptor: (Ljdk/nashorn/internal/ir/LexicalContext;Ljdk/nashorn/internal/ir/LocalVariableConversion;)Ljdk/nashorn/internal/ir/JoinPredecessor;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokespecial jdk.nashorn.internal.ir.BreakableStatement.setLocalVariableConversion:(Ljdk/nashorn/internal/ir/LexicalContext;Ljdk/nashorn/internal/ir/LocalVariableConversion;)Ljdk/nashorn/internal/ir/JoinPredecessor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public boolean isBreakableWithoutLabel();
    descriptor: ()Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial jdk.nashorn.internal.ir.BreakableStatement.isBreakableWithoutLabel:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public jdk.nashorn.internal.codegen.Label getBreakLabel();
    descriptor: ()Ljdk/nashorn/internal/codegen/Label;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial jdk.nashorn.internal.ir.BreakableStatement.getBreakLabel:()Ljdk/nashorn/internal/codegen/Label;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public jdk.nashorn.internal.ir.Node accept(jdk.nashorn.internal.ir.visitor.NodeVisitor);
    descriptor: (Ljdk/nashorn/internal/ir/visitor/NodeVisitor;)Ljdk/nashorn/internal/ir/Node;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial jdk.nashorn.internal.ir.BreakableStatement.accept:(Ljdk/nashorn/internal/ir/visitor/NodeVisitor;)Ljdk/nashorn/internal/ir/Node;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "LoopNode.java"