diff options
Diffstat (limited to 'src/jdk/nashorn/internal/ir/LexicalContextNode.java')
-rw-r--r-- | src/jdk/nashorn/internal/ir/LexicalContextNode.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/jdk/nashorn/internal/ir/LexicalContextNode.java b/src/jdk/nashorn/internal/ir/LexicalContextNode.java index bb6a681d..b53d9f6b 100644 --- a/src/jdk/nashorn/internal/ir/LexicalContextNode.java +++ b/src/jdk/nashorn/internal/ir/LexicalContextNode.java @@ -44,8 +44,14 @@ public interface LexicalContextNode { Node accept(final LexicalContext lc, final NodeVisitor<? extends LexicalContext> visitor); // Would be a default method on Java 8 + /** + * Helper class for accept for items of this lexical context, delegates to the + * subclass accept and makes sure that the node is on the context before accepting + * and gets popped after accepting (and that the stack is consistent in that the + * node has been replaced with the possible new node resulting in visitation) + */ static class Acceptor { - static Node accept(LexicalContextNode node, final NodeVisitor<? extends LexicalContext> visitor) { + static Node accept(final LexicalContextNode node, final NodeVisitor<? extends LexicalContext> visitor) { final LexicalContext lc = visitor.getLexicalContext(); lc.push(node); final LexicalContextNode newNode = (LexicalContextNode)node.accept(lc, visitor); |