< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionExpressionTreeImpl.java

Print this page




  23  * questions.
  24  */
  25 
  26 package jdk.nashorn.api.tree;
  27 
  28 import java.util.List;
  29 import jdk.nashorn.internal.ir.FunctionNode;
  30 
  31 final class FunctionExpressionTreeImpl extends ExpressionTreeImpl
  32     implements FunctionExpressionTree {
  33     private final FunctionNode funcNode;
  34     private final String funcName;
  35     private final List<? extends ExpressionTree> params;
  36     private final BlockTree body;
  37 
  38     FunctionExpressionTreeImpl(final FunctionNode node,
  39             final List<? extends ExpressionTree> params,
  40             final BlockTree body) {
  41         super(node);
  42         funcNode = node;
  43         assert !funcNode.isDeclared() : "function expression expected";
  44 
  45         final FunctionNode.Kind kind = node.getKind();
  46         if (node.isAnonymous() || kind == FunctionNode.Kind.GETTER || kind == FunctionNode.Kind.SETTER) {
  47             funcName = null;
  48         } else {
  49             funcName = node.getIdent().getName();
  50         }
  51 
  52         this.params = params;
  53         this.body = body;
  54     }
  55 
  56     @Override
  57     public Tree.Kind getKind() {
  58         return Tree.Kind.FUNCTION_EXPRESSION;
  59     }
  60 
  61     @Override
  62     public String getName() {
  63         return funcName;




  23  * questions.
  24  */
  25 
  26 package jdk.nashorn.api.tree;
  27 
  28 import java.util.List;
  29 import jdk.nashorn.internal.ir.FunctionNode;
  30 
  31 final class FunctionExpressionTreeImpl extends ExpressionTreeImpl
  32     implements FunctionExpressionTree {
  33     private final FunctionNode funcNode;
  34     private final String funcName;
  35     private final List<? extends ExpressionTree> params;
  36     private final BlockTree body;
  37 
  38     FunctionExpressionTreeImpl(final FunctionNode node,
  39             final List<? extends ExpressionTree> params,
  40             final BlockTree body) {
  41         super(node);
  42         funcNode = node;
  43         assert !funcNode.isDeclared() || funcNode.isAnonymous() : "function expression expected";
  44 
  45         final FunctionNode.Kind kind = node.getKind();
  46         if (node.isAnonymous() || kind == FunctionNode.Kind.GETTER || kind == FunctionNode.Kind.SETTER) {
  47             funcName = null;
  48         } else {
  49             funcName = node.getIdent().getName();
  50         }
  51 
  52         this.params = params;
  53         this.body = body;
  54     }
  55 
  56     @Override
  57     public Tree.Kind getKind() {
  58         return Tree.Kind.FUNCTION_EXPRESSION;
  59     }
  60 
  61     @Override
  62     public String getName() {
  63         return funcName;


< prev index next >