本文整理汇总了Java中jdk.nashorn.internal.ir.visitor.NodeVisitor.leaveCallNode方法的典型用法代码示例。如果您正苦于以下问题:Java NodeVisitor.leaveCallNode方法的具体用法?Java NodeVisitor.leaveCallNode怎么用?Java NodeVisitor.leaveCallNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类jdk.nashorn.internal.ir.visitor.NodeVisitor
的用法示例。
在下文中一共展示了NodeVisitor.leaveCallNode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: accept
import jdk.nashorn.internal.ir.visitor.NodeVisitor; //导入方法依赖的package包/类
/**
* Assist in IR navigation.
*
* @param visitor IR navigating visitor.
*
* @return node or replacement
*/
@Override
public Node accept(final LexicalContext lc, final NodeVisitor<? extends LexicalContext> visitor) {
if (visitor.enterCallNode(this)) {
final CallNode newCallNode = (CallNode)visitor.leaveCallNode(
setFunction((Expression)function.accept(visitor)).
setArgs(Node.accept(visitor, args)).
setEvalArgs(evalArgs == null ?
null :
evalArgs.setArgs(Node.accept(visitor, evalArgs.getArgs()))));
// Theoretically, we'd need to instead pass lc to every setter and do a replacement on each. In practice,
// setType from TypeOverride can't accept a lc, and we don't necessarily want to go there now.
if (this != newCallNode) {
return Node.replaceInLexicalContext(lc, this, newCallNode);
}
}
return this;
}