com.google.caja.parser.js
Class FunctionConstructor
java.lang.Object
com.google.caja.parser.AbstractParseTreeNode
com.google.caja.parser.js.AbstractExpression
com.google.caja.parser.js.FunctionConstructor
- All Implemented Interfaces:
- Expression, JsonMLCompatible, NestedScope, MutableParseTreeNode, ParseTreeNode, MessagePart, Renderable, java.lang.Cloneable
public final class FunctionConstructor
- extends AbstractExpression
- implements NestedScope
Sometimes called a function literal or a closure, an expression that
constructs a new function.
E.g.
function () { return 0; }
- Author:
- mikesamuel@gmail.com
Methods inherited from class com.google.caja.parser.AbstractParseTreeNode |
acceptPostOrder, acceptPreOrder, appendChild, children, childrenAs, childrenPart, clone, createMutation, equals, format, formatSelf, formatTree, formatTree, getAttributes, getComments, getFilePosition, hashCode, insertBefore, removeChild, replaceChild, setComments, setFilePosition, toString, toStringDeep, toStringDeep |
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
identifier
private Identifier identifier
params
private java.util.List<FormalParam> params
body
private Block body
FunctionConstructor
@ParseTreeNode.ReflectiveCtor
public FunctionConstructor(FilePosition pos,
java.lang.Void value,
java.util.List<? extends ParseTreeNode> children)
- Parameters:
value
- unused. This ctor is provided for reflection.
FunctionConstructor
public FunctionConstructor(FilePosition pos,
Identifier identifier,
java.util.List<FormalParam> params,
Block body)
childrenChanged
protected void childrenChanged()
- Description copied from class:
AbstractParseTreeNode
- Called to perform consistency checks on the child list after changes have
been made. This can be overridden to do additional checks by subclasses,
and to update derived state, but all subclasses must chain to super after
performing their own checks.
This method may throw any RuntimeException on an invalid child.
TODO(mikesamuel): maybe reliably throw an exception type, that includes
information about the troublesome node.
- Overrides:
childrenChanged
in class AbstractParseTreeNode
getParams
public java.util.List<FormalParam> getParams()
getBody
public Block getBody()
getIdentifier
public Identifier getIdentifier()
getIdentifierName
public java.lang.String getIdentifierName()
getValue
public java.lang.Object getValue()
- Specified by:
getValue
in interface ParseTreeNode
- Specified by:
getValue
in class AbstractParseTreeNode
- Returns:
- null or a value with subclass specific meaning which encapsulates
all parsed state separate from the children.
conditionResult
public java.lang.Boolean conditionResult()
- Description copied from interface:
Expression
- Returns the result of evaluating the expression in a boolean context or
null if indeterminable. This result is valid assuming that the expression
does not throw an exception. If the expression provably always throws
an exception, then it may return any result.
- Specified by:
conditionResult
in interface Expression
- Overrides:
conditionResult
in class AbstractExpression
render
public void render(RenderContext rc)
- Description copied from interface:
Renderable
- Output the textual form to
r.getOut()
.
- Specified by:
render
in interface Renderable
renderActuals
void renderActuals(RenderContext rc)
renderBody
void renderBody(RenderContext rc)
typeOf
public java.lang.String typeOf()
- Description copied from interface:
Expression
null
or the result of applying the typeof
operator to
the result of this expression.
- Specified by:
typeOf
in interface Expression
- Returns:
- if the expression yields a result with the same
typeof
in all environments in which it returns normally, then returns the
result of applying the typeof
operator to the result.
null
if the type cannot be determined.
This method is conservative, so it may return null where it is possible
to prove a bound.
toJsonML
public com.google.javascript.jscomp.jsonml.JsonML toJsonML()
- Description copied from interface:
JsonMLCompatible
- Creates a
JsonML representation of this AST.
- Specified by:
toJsonML
in interface JsonMLCompatible
Copyright (C) 2008 Google Inc.
Licensed under the Apache License, Version 2.0