diff options
Diffstat (limited to 'src/jdk/nashorn/internal/ir/ContinueNode.java')
-rw-r--r-- | src/jdk/nashorn/internal/ir/ContinueNode.java | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/src/jdk/nashorn/internal/ir/ContinueNode.java b/src/jdk/nashorn/internal/ir/ContinueNode.java index 579414a9..c58531bd 100644 --- a/src/jdk/nashorn/internal/ir/ContinueNode.java +++ b/src/jdk/nashorn/internal/ir/ContinueNode.java @@ -25,6 +25,7 @@ package jdk.nashorn.internal.ir; +import jdk.nashorn.internal.codegen.Label; import jdk.nashorn.internal.ir.annotations.Immutable; import jdk.nashorn.internal.ir.visitor.NodeVisitor; @@ -32,9 +33,8 @@ import jdk.nashorn.internal.ir.visitor.NodeVisitor; * IR representation for CONTINUE statements. */ @Immutable -public class ContinueNode extends Statement { - - private IdentNode label; +public class ContinueNode extends JumpStatement { + private static final long serialVersionUID = 1L; /** * Constructor @@ -42,16 +42,14 @@ public class ContinueNode extends Statement { * @param lineNumber line number * @param token token * @param finish finish - * @param label label for break or null if none + * @param labelName label name for continue or null if none */ - public ContinueNode(final int lineNumber, final long token, final int finish, final IdentNode label) { - super(lineNumber, token, finish); - this.label = label; + public ContinueNode(final int lineNumber, final long token, final int finish, final String labelName) { + super(lineNumber, token, finish, labelName); } - @Override - public boolean hasGoto() { - return true; + private ContinueNode(final ContinueNode continueNode, final LocalVariableConversion conversion) { + super(continueNode, conversion); } @Override @@ -63,22 +61,24 @@ public class ContinueNode extends Statement { return this; } - /** - * Get the label for this break node - * @return label, or null if none - */ - public IdentNode getLabel() { - return label; + @Override + JumpStatement createNewJumpStatement(final LocalVariableConversion conversion) { + return new ContinueNode(this, conversion); } @Override - public void toString(final StringBuilder sb) { - sb.append("continue"); + String getStatementName() { + return "continue"; + } - if (label != null) { - sb.append(' '); - label.toString(sb); - } + + @Override + public BreakableNode getTarget(final LexicalContext lc) { + return lc.getContinueTo(getLabelName()); } -} + @Override + public Label getTargetLabel(final BreakableNode target) { + return ((LoopNode)target).getContinueLabel(); + } +} |