nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/JumpStatement.java
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/JumpStatement.java Wed Jul 05 20:16:23 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/JumpStatement.java Wed Jan 28 17:58:08 2015 +0100
@@ -101,7 +101,26 @@
* @throws ClassCastException if invoked on the kind of breakable node that this jump statement is not prepared to
* handle.
*/
- public abstract Label getTargetLabel(final BreakableNode target);
+ abstract Label getTargetLabel(final BreakableNode target);
+
+ /**
+ * Returns the label this jump statement targets.
+ * @param lc the lexical context
+ * @return the label this jump statement targets.
+ */
+ public Label getTargetLabel(final LexicalContext lc) {
+ return getTargetLabel(getTarget(lc));
+ }
+
+ /**
+ * Returns the limit node for popping scopes when this jump statement is effected.
+ * @param lc the current lexical context
+ * @return the limit node for popping scopes when this jump statement is effected.
+ */
+ public LexicalContextNode getPopScopeLimit(final LexicalContext lc) {
+ // In most cases (break and continue) this is equal to the target.
+ return getTarget(lc);
+ }
@Override
public JumpStatement setLocalVariableConversion(final LexicalContext lc, final LocalVariableConversion conversion) {