Class Node


  • public class Node
    extends java.lang.Object
    This class implements the root of the intermediate representation.
    • Field Detail

      • INCRDECR_PROP

        public static final com.google.javascript.rhino.Node.Prop INCRDECR_PROP
      • QUOTED_PROP

        public static final com.google.javascript.rhino.Node.Prop QUOTED_PROP
      • IS_CONSTANT_NAME

        public static final com.google.javascript.rhino.Node.Prop IS_CONSTANT_NAME
      • IS_NAMESPACE

        public static final com.google.javascript.rhino.Node.Prop IS_NAMESPACE
      • DIRECT_EVAL

        public static final com.google.javascript.rhino.Node.Prop DIRECT_EVAL
      • FREE_CALL

        public static final com.google.javascript.rhino.Node.Prop FREE_CALL
      • SLASH_V

        public static final com.google.javascript.rhino.Node.Prop SLASH_V
      • REFLECTED_OBJECT

        public static final com.google.javascript.rhino.Node.Prop REFLECTED_OBJECT
      • STATIC_MEMBER

        public static final com.google.javascript.rhino.Node.Prop STATIC_MEMBER
      • GENERATOR_FN

        public static final com.google.javascript.rhino.Node.Prop GENERATOR_FN
      • YIELD_ALL

        public static final com.google.javascript.rhino.Node.Prop YIELD_ALL
      • EXPORT_DEFAULT

        public static final com.google.javascript.rhino.Node.Prop EXPORT_DEFAULT
      • EXPORT_ALL_FROM

        public static final com.google.javascript.rhino.Node.Prop EXPORT_ALL_FROM
      • COMPUTED_PROP_METHOD

        public static final com.google.javascript.rhino.Node.Prop COMPUTED_PROP_METHOD
      • COMPUTED_PROP_GETTER

        public static final com.google.javascript.rhino.Node.Prop COMPUTED_PROP_GETTER
      • COMPUTED_PROP_SETTER

        public static final com.google.javascript.rhino.Node.Prop COMPUTED_PROP_SETTER
      • COMPUTED_PROP_VARIABLE

        public static final com.google.javascript.rhino.Node.Prop COMPUTED_PROP_VARIABLE
      • OPT_ES6_TYPED

        public static final com.google.javascript.rhino.Node.Prop OPT_ES6_TYPED
      • GENERIC_TYPE_LIST

        public static final com.google.javascript.rhino.Node.Prop GENERIC_TYPE_LIST
      • IMPLEMENTS

        public static final com.google.javascript.rhino.Node.Prop IMPLEMENTS
      • CONSTRUCT_SIGNATURE

        public static final com.google.javascript.rhino.Node.Prop CONSTRUCT_SIGNATURE
      • ACCESS_MODIFIER

        public static final com.google.javascript.rhino.Node.Prop ACCESS_MODIFIER
      • PARSE_RESULTS

        public static final com.google.javascript.rhino.Node.Prop PARSE_RESULTS
      • GOOG_MODULE

        public static final com.google.javascript.rhino.Node.Prop GOOG_MODULE
      • FEATURE_SET

        public static final com.google.javascript.rhino.Node.Prop FEATURE_SET
      • IS_TYPESCRIPT_ABSTRACT

        public static final com.google.javascript.rhino.Node.Prop IS_TYPESCRIPT_ABSTRACT
      • TRANSPILED

        public static final com.google.javascript.rhino.Node.Prop TRANSPILED
      • MODULE_ALIAS

        public static final com.google.javascript.rhino.Node.Prop MODULE_ALIAS
      • MODULE_EXPORT

        public static final com.google.javascript.rhino.Node.Prop MODULE_EXPORT
      • IS_SHORTHAND_PROPERTY

        public static final com.google.javascript.rhino.Node.Prop IS_SHORTHAND_PROPERTY
      • ES6_MODULE

        public static final com.google.javascript.rhino.Node.Prop ES6_MODULE
      • MAX_COLUMN_NUMBER

        public static final int MAX_COLUMN_NUMBER
        MAX_COLUMN_NUMBER represents the maximum column number that can be represented. JSCompiler's modifications to Rhino cause all tokens located beyond the maximum column to MAX_COLUMN_NUMBER.
        See Also:
        Constant Field Values
    • Method Detail

      • getNonJSDocCommentString

        public final java.lang.String getNonJSDocCommentString()
        Get the NonJSDoc comment string attached to this node.
        Returns:
        the information or empty string if no nonJSDoc is attached to this node
      • setNonJSDocComment

        public final Node setNonJSDocComment​(NonJSDocComment comment)
        Sets the NonJSDoc comment attached to this node.
      • setIsParenthesized

        public final void setIsParenthesized​(boolean b)
        Sets whether this node is inside parentheses.
      • getIsParenthesized

        public final boolean getIsParenthesized()
        Check whether node was inside parentheses.
      • newNumber

        public static Node newNumber​(double number)
      • newBigInt

        public static Node newBigInt​(java.math.BigInteger bigint)
      • newString

        public static Node newString​(java.lang.String str)
      • newString

        public static Node newString​(Token token,
                                     java.lang.String str)
      • newTemplateLitString

        public static Node newTemplateLitString​(java.lang.String cooked,
                                                java.lang.String raw)
      • getToken

        public final Token getToken()
      • setToken

        public final void setToken​(Token token)
      • hasChildren

        public final boolean hasChildren()
      • getOnlyChild

        public final Node getOnlyChild()
      • getFirstChild

        @Nullable
        public final Node getFirstChild()
      • getFirstFirstChild

        @Nullable
        public final Node getFirstFirstChild()
        Get the first child of the first child. This method assumes that the first child exists.
        Returns:
        The first child of the first child.
      • getSecondChild

        @Nullable
        public final Node getSecondChild()
      • getLastChild

        @Nullable
        public final Node getLastChild()
      • getNext

        @Nullable
        public final Node getNext()
      • getPrevious

        @Nullable
        public final Node getPrevious()
      • getChildAtIndex

        public final Node getChildAtIndex​(int i)
        Gets the ith child, note that this is O(N) where N is the number of children.
        Parameters:
        i - The index
        Returns:
        The ith child
      • getIndexOfChild

        public final int getIndexOfChild​(Node child)
        Gets the index of a child, note that this is O(N) where N is the number of children.
        Parameters:
        child - The child
        Returns:
        The index of the child
      • addChildToFront

        public final void addChildToFront​(Node child)
      • addChildToBack

        public final void addChildToBack​(Node child)
      • addChildrenToFront

        public final void addChildrenToFront​(@Nullable
                                             Node children)
        Add all children to the front of this node.
        Parameters:
        children - first of a list of sibling nodes who have no parent. NOTE: Usually you would get this argument from a removeChildren() call. A single detached node will not work because its sibling pointers will not be correctly initialized.
      • addChildrenToBack

        public final void addChildrenToBack​(Node children)
      • insertAfter

        public final void insertAfter​(Node existing)
      • insertBefore

        public final void insertBefore​(Node existing)
      • addChildrenAfter

        public final void addChildrenAfter​(@Nullable
                                           Node children,
                                           @Nullable
                                           Node node)
        Add all children after 'node'. If 'node' is null, add them to the front of this node.
        Parameters:
        children - first of a list of sibling nodes who have no parent. NOTE: Usually you would get this argument from a removeChildren() call. A single detached node will not work because its sibling pointers will not be correctly initialized.
      • replaceWith

        public final void replaceWith​(Node replacement)
        Swaps `replacement` and its subtree into the position of `this`.
      • detach

        public final Node detach()
        Removes this node from its parent, but retains its subtree.
      • removeFirstChild

        @Nullable
        public final Node removeFirstChild()
        Removes the first child of Node. Equivalent to: node.removeChild(node.getFirstChild());
        Returns:
        The removed Node.
      • removeChildren

        @Nullable
        public final Node removeChildren()
        Returns:
        A Node that is the head of the list of children.
      • detachChildren

        public final void detachChildren()
        Removes all children from this node and isolates the children from each other.
      • clonePropsFrom

        public final Node clonePropsFrom​(Node other)
        Clone the properties from the provided node without copying the property object. The receiving node may not have any existing properties.
        Parameters:
        other - The node to clone properties from.
        Returns:
        this node.
      • getProp

        @Nullable
        public final java.lang.Object getProp​(com.google.javascript.rhino.Node.Prop propType)
      • getBooleanProp

        public final boolean getBooleanProp​(com.google.javascript.rhino.Node.Prop propType)
      • putProp

        public final void putProp​(com.google.javascript.rhino.Node.Prop prop,
                                  @Nullable
                                  java.lang.Object value)
      • putBooleanProp

        public final void putBooleanProp​(com.google.javascript.rhino.Node.Prop propType,
                                         boolean value)
      • putIntProp

        public final void putIntProp​(com.google.javascript.rhino.Node.Prop prop,
                                     int value)
      • serializeProperties

        public final java.util.EnumSet<com.google.javascript.jscomp.serialization.NodeProperty> serializeProperties()
      • deserializeProperties

        public final void deserializeProperties​(java.util.List<com.google.javascript.jscomp.serialization.NodeProperty> serializedNodeBooleanPropertyList)
      • setDeclaredTypeExpression

        public final void setDeclaredTypeExpression​(Node typeExpression)
        Sets the syntactical type specified on this node.
      • getDeclaredTypeExpression

        @Nullable
        public final Node getDeclaredTypeExpression()
        Returns the syntactical type specified on this node. Not to be confused with getJSType() which returns the compiler-inferred type.
      • setJSTypeBeforeCast

        public final void setJSTypeBeforeCast​(JSType type)
        Sets the type of this node before casting.
      • getJSTypeBeforeCast

        @Nullable
        public final JSType getJSTypeBeforeCast()
        Returns the type of this node before casting. This annotation will only exist on the first child of a CAST node after type checking.
      • setColorFromTypeCast

        public final void setColorFromTypeCast()
        Indicate that this node's color comes from a type assertion. Only set when colors are present; when JSTypes are on the AST we instead preserve the actual JSType before the type assertion.
      • isColorFromTypeCast

        public final boolean isColorFromTypeCast()
        Indicates that this node's color comes from a type assertion. Only set when colors are present.
      • getDouble

        public final double getDouble()
      • setDouble

        public final void setDouble​(double x)
      • getBigInt

        public final java.math.BigInteger getBigInt()
      • setBigInt

        public final void setBigInt​(java.math.BigInteger number)
      • getString

        public final java.lang.String getString()
      • setString

        public final void setString​(java.lang.String str)
      • getRawString

        public final java.lang.String getRawString()
      • getCookedString

        @Nullable
        public final java.lang.String getCookedString()
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toString

        public final java.lang.String toString​(boolean printSource,
                                               boolean printAnnotations,
                                               boolean printType)
      • toStringTree

        @CheckReturnValue
        public final java.lang.String toStringTree()
      • appendStringTree

        public final void appendStringTree​(java.lang.Appendable appendable)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • setStaticSourceFileFrom

        public final void setStaticSourceFileFrom​(Node other)
      • setSourceFileForTesting

        public final void setSourceFileForTesting​(java.lang.String name)
        Sets the source file to a non-extern file of the given name.
      • getSourceFileName

        @Nullable
        public java.lang.String getSourceFileName()
      • getStaticSourceFile

        @Nullable
        public StaticSourceFile getStaticSourceFile()
        Returns the source file associated with this input.
      • setInputId

        public void setInputId​(InputId inputId)
        Parameters:
        inputId -
      • getInputId

        @Nullable
        public InputId getInputId()
        Returns:
        The Id of the CompilerInput associated with this Node.
      • getOriginalName

        @Nullable
        @Deprecated
        public final java.lang.String getOriginalName()
        Deprecated.
        "original name" is poorly defined.
        The original name of this node, if the node has been renamed.

        Do not use original name to make optimization decisions. The original intent was to preserve some naming for lightly optimized code to put into source maps. It is not rigorously defined and is not a suitable replacement for a canonical identifier. "Original name" is not associated with any scope and easily transfers to unrelated values. Its existance and use beyond its original purpose has delayed creating useful more precise alternatives.

      • setOriginalName

        public final void setOriginalName​(java.lang.String s)
      • isIndexable

        public final boolean isIndexable()
        Whether this node should be indexed by static analysis / code indexing tools.
      • makeNonIndexable

        public final void makeNonIndexable()
      • makeNonIndexableRecursive

        public final void makeNonIndexableRecursive()
      • isFromExterns

        public final boolean isFromExterns()
      • getLength

        public final int getLength()
      • setLength

        public final void setLength​(int length)
      • getLineno

        public final int getLineno()
      • getCharno

        public final int getCharno()
      • getLocation

        public final java.lang.String getLocation()
      • getSourceOffset

        public int getSourceOffset()
      • getSourcePosition

        public final int getSourcePosition()
      • setLinenoCharno

        public final Node setLinenoCharno​(int lineno,
                                          int charno)
        Merges the line number and character number in one integer.

        The charno takes the first 12 bits and the line number takes the rest. If the charno is greater than (2^12)-1 it is adjusted to (2^12)-1

      • children

        @Deprecated
        public final java.lang.Iterable<Node> children()
        Deprecated.
        Return an iterable object that iterates over this node's children. The iterator does not support the optional operation Iterator.remove().

        To iterate over a node's children, one can write

        Node n = ...;
         for (Node child : n.children()) { ...
        NOTE: Do not use 'children' for recursive descent of the AST. The overhead of using iterators rather then getFirstChild()/getNext() is very significant. We have deprecated it as it is easy to misuse.
      • getParent

        @Nullable
        public final Node getParent()
      • hasParent

        public final boolean hasParent()
      • getGrandparent

        @Nullable
        public final Node getGrandparent()
      • getAncestor

        @Nullable
        public final Node getAncestor​(int level)
        Gets the ancestor node relative to this.
        Parameters:
        level - 0 = this, 1 = the parent, etc.
      • isDescendantOf

        public final boolean isDescendantOf​(Node node)
        Returns:
        True if this Node is node or a descendant of node.
      • isOnlyChildOf

        public final boolean isOnlyChildOf​(Node possibleParent)
      • isFirstChildOf

        public final boolean isFirstChildOf​(Node possibleParent)
      • isSecondChildOf

        public final boolean isSecondChildOf​(Node possibleParent)
      • getAncestors

        public final Node.AncestorIterable getAncestors()
        Iterates all of the node's ancestors excluding itself.
      • hasOneChild

        public final boolean hasOneChild()
        Check for one child more efficiently than by iterating over all the children as is done with Node.getChildCount().
        Returns:
        Whether the node has exactly one child.
      • hasTwoChildren

        public final boolean hasTwoChildren()
        Check for two children more efficiently than getChildCount() == 2
        Returns:
        Whether the node has exactly two children.
      • hasZeroOrOneChild

        public final boolean hasZeroOrOneChild()
        Check for zero or one child more efficiently than by iterating over all the children as is done with Node.getChildCount().
        Returns:
        Whether the node has no children or exactly one child.
      • hasMoreThanOneChild

        public final boolean hasMoreThanOneChild()
        Check for more than one child more efficiently than by iterating over all the children as is done with Node.getChildCount().
        Returns:
        Whether the node more than one child.
      • hasXChildren

        public final boolean hasXChildren​(int x)
        Check for has exactly the number of specified children.
        Returns:
        Whether the node has exactly the number of children specified.
      • getChildCount

        public final int getChildCount()
      • hasChild

        public final boolean hasChild​(Node child)
      • isEquivalentToShallow

        public final boolean isEquivalentToShallow​(Node node)
        Checks equivalence without going into child nodes
      • isEquivalentWithSideEffectsTo

        public final boolean isEquivalentWithSideEffectsTo​(Node node)
        Returns true if this node is equivalent semantically to another including side effects.
      • isEquivalentWithSideEffectsToShallow

        public final boolean isEquivalentWithSideEffectsToShallow​(Node node)
        Returns true if this node is equivalent semantically to another including side effects.
      • isEquivalentToTyped

        public final boolean isEquivalentToTyped​(Node node)
        Returns true if this node is equivalent semantically to another and the types are equivalent.
      • isEquivalentTo

        public final boolean isEquivalentTo​(Node node)
        Returns true if this node is equivalent semantically to another
      • isEquivalentTo

        public boolean isEquivalentTo​(Node node,
                                      boolean compareType,
                                      boolean recurse,
                                      boolean jsDoc,
                                      boolean sideEffect)
        Parameters:
        compareType - Whether to compare the JSTypes of the nodes.
        recurse - Whether to compare the children of the current node. If not, only the count of the children are compared.
        jsDoc - Whether to check that the JsDoc of the nodes are equivalent.
        sideEffect - Whether to check that the side-effect flags of the nodes are equivalent.
        Returns:
        Whether this node is equivalent semantically to the provided node.
      • getQualifiedName

        @Nullable
        public final java.lang.String getQualifiedName()
        This function takes a set of GETPROP nodes and produces a string that is each property separated by dots. If the node ultimately under the left sub-tree is not a simple name, this is not a valid qualified name.
        Returns:
        a null if this is not a qualified name, or a dot-separated string of the name and properties.
      • getQualifiedNameObject

        @Nullable
        public final QualifiedName getQualifiedNameObject()
      • getOriginalQualifiedName

        @Nullable
        @Deprecated
        public final java.lang.String getOriginalQualifiedName()
        Deprecated.
        "original name" is poorly defined. See #getOriginalName
        This function takes a set of GETPROP nodes and produces a string that is each property separated by dots. If the node ultimately under the left sub-tree is not a simple name, this is not a valid qualified name. This method returns the original name of each segment rather than the renamed version.
        Returns:
        a null if this is not a qualified name, or a dot-separated string of the name and properties.
      • isQualifiedName

        public final boolean isQualifiedName()
        Returns whether a node corresponds to a simple or a qualified name, such as x or a.b.c or this.a.
      • matchesName

        public final boolean matchesName​(java.lang.String name)
        Returns whether a node matches a simple name, such as x, returns false if this is not a NAME node.
      • matchesName

        public final boolean matchesName​(Node n)
        Check that if two NAME node match, returns false if either node is not a NAME node. As a empty string is not considered a valid Name (it is an AST placeholder), empty strings are never considered to be matches.
      • matchesQualifiedName

        public final boolean matchesQualifiedName​(java.lang.String name)
        Returns whether a node matches a simple or a qualified name, such as x or a.b.c or this.a.
      • matchesQualifiedName

        public final boolean matchesQualifiedName​(Node n)
        Returns whether a node matches a simple or a qualified name, such as x or a.b.c or this.a.
      • isUnscopedQualifiedName

        public final boolean isUnscopedQualifiedName()
        Returns whether a node corresponds to a simple or a qualified name without a "this" reference, such as a.b.c, but not this.a .
      • isValidAssignmentTarget

        public final boolean isValidAssignmentTarget()
      • clone

        @GwtIncompatible
        public final java.lang.Object clone()
        Overrides:
        clone in class java.lang.Object
      • cloneNode

        @CheckReturnValue
        public final Node cloneNode()
        Returns:
        A detached clone of the Node, specifically excluding its children.
      • cloneTree

        @CheckReturnValue
        public final Node cloneTree()
        Returns:
        A detached clone of the Node and all its children.
      • cloneTree

        @CheckReturnValue
        public final Node cloneTree​(boolean cloneTypeExprs)
      • srcref

        public final Node srcref​(Node other)
        Copy the source info from `other` onto `this`.
      • srcrefTree

        public final Node srcrefTree​(Node other)
        For all Nodes in the subtree of `this`, copy the source info from `other`.
      • srcrefIfMissing

        public final Node srcrefIfMissing​(Node other)
        Iff source info is not set on `this`, copy the source info from `other`.
      • srcrefTreeIfMissing

        public final Node srcrefTreeIfMissing​(Node other)
        For all Nodes in the subtree of `this`, iff source info is not set, copy the source info from `other`.
      • getJSType

        @Nullable
        public final JSType getJSType()
        Returns the compiler inferred type on this node. Not to be confused with getDeclaredTypeExpression() which returns the syntactically specified type.
      • getJSTypeRequired

        public final JSType getJSTypeRequired()
        Returns the compiled inferred type on this node, or throws an NPE if there isn't one.
      • setJSType

        public final Node setJSType​(@Nullable
                                    JSType x)
      • getColor

        @Nullable
        public final Color getColor()
        Returns the compiled inferred type on this node. Not to be confused with getDeclaredTypeExpression() which returns the syntactically specified type.
      • setColor

        public final Node setColor​(@Nullable
                                   Color x)
      • copyTypeFrom

        public final Node copyTypeFrom​(Node other)
        Copies a nodes JSType or Color (if present)
      • getJSDocInfo

        @Nullable
        public final JSDocInfo getJSDocInfo()
        Get the JSDocInfo attached to this node.
        Returns:
        the information or null if no JSDoc is attached to this node
      • setChangeTime

        public final void setChangeTime​(int time)
        This node was last changed at time
      • getChangeTime

        public final int getChangeTime()
        Returns the time of the last change for this node
      • setDeleted

        public final void setDeleted​(boolean deleted)
      • isDeleted

        public final boolean isDeleted()
      • setTypedefTypeProp

        public final void setTypedefTypeProp​(JSType type)
        If this node represents a typedef declaration, the associated JSType
      • getTypedefTypeProp

        public final JSType getTypedefTypeProp()
        If this node represents a typedef declaration, the associated JSType
      • setUnusedParameter

        public final void setUnusedParameter​(boolean unused)
        Parameters:
        unused - Whether a parameter was function to be unused. Set by RemoveUnusedVars
      • isUnusedParameter

        public final boolean isUnusedParameter()
        Returns:
        Whether a parameter was function to be unused. Set by RemoveUnusedVars
      • setShorthandProperty

        public final void setShorthandProperty​(boolean shorthand)
        Sets the isShorthandProperty annotation.
      • isShorthandProperty

        public final boolean isShorthandProperty()
        Whether this {x:x} property was originally parsed as {x}.
      • isOptionalEs6Typed

        public final boolean isOptionalEs6Typed()
        Returns whether this node is an optional node in the ES6 Typed syntax.
      • setIsSyntheticBlock

        public final void setIsSyntheticBlock​(boolean val)
        Sets whether this is a synthetic block that should not be considered a real source block.
      • isSyntheticBlock

        public final boolean isSyntheticBlock()
        Returns whether this is a synthetic block that should not be considered a real source block.
      • setUseStrict

        public final void setUseStrict​(boolean x)
        Sets whether this node contained the "use strict" directive.
      • isUseStrict

        public final boolean isUseStrict()
        Returns whether this node contained the "use strict" directive.
      • setIsAddedBlock

        public final void setIsAddedBlock​(boolean val)
        Sets whether this is an added block that should not be considered a real source block. Eg: In "if (true) x;", the "x;" is put under an added block in the AST.
      • isAddedBlock

        public final boolean isAddedBlock()
        Returns whether this is an added block that should not be considered a real source block.
      • setIsGeneratorFunction

        public final void setIsGeneratorFunction​(boolean isGenerator)
        Sets whether this node is a generator node. This method is meaningful only on Token.FUNCTION or Token.MEMBER_FUNCTION_DEF nodes.
      • isGeneratorFunction

        public final boolean isGeneratorFunction()
        Returns whether this node is a generator function node.
      • setGeneratorMarker

        public final void setGeneratorMarker​(boolean isGeneratorMarker)
        Sets whether this node subtree contains YIELD nodes.

        It's used in the translation of generators.

      • isGeneratorMarker

        public final boolean isGeneratorMarker()
        Returns whether this node was marked as containing YIELD nodes.

        It's used in the translation of generators.

      • setGeneratorSafe

        public final void setGeneratorSafe​(boolean isGeneratorSafe)
        See Also:
        isGeneratorSafe()
      • isGeneratorSafe

        public final boolean isGeneratorSafe()
        Used when translating ES6 generators. If this returns true, this Node was generated by the compiler, and it is safe to copy this node to the transpiled output with no further changes.
      • isOptionalChainStart

        public final boolean isOptionalChainStart()
        Returns whether this node is an optional chaining node.
      • setIsArrowFunction

        public final void setIsArrowFunction​(boolean isArrow)
        Sets whether this node is a arrow function node. This method is meaningful only on Token.FUNCTION
      • isArrowFunction

        public final boolean isArrowFunction()
        Returns whether this node is a arrow function node.
      • setIsAsyncFunction

        public void setIsAsyncFunction​(boolean isAsync)
        Sets whether this node is an async function node. This method is meaningful only on Token.FUNCTION
      • isAsyncFunction

        public final boolean isAsyncFunction()
        Returns whether this is an async function node.
      • isAsyncGeneratorFunction

        public final boolean isAsyncGeneratorFunction()
        Returns whether this is an async generator function node.
      • setYieldAll

        public final void setYieldAll​(boolean isGenerator)
        Sets whether this node is a generator node. This method is meaningful only on Token.FUNCTION or Token.MEMBER_FUNCTION_DEF nodes.
      • setTrailingComma

        public final void setTrailingComma​(boolean hasTrailingComma)
        Indicates that there was a trailing comma in this list
      • hasTrailingComma

        public final boolean hasTrailingComma()
        Returns true if there was a trailing comma in the orginal code
      • setSideEffectFlags

        public final void setSideEffectFlags​(int flags)
        Marks this function or constructor call's side effect flags. This property is only meaningful for Token.CALL and Token.NEW nodes.
      • getSideEffectFlags

        public final int getSideEffectFlags()
        Returns the side effects flags for this node.
      • isOnlyModifiesThisCall

        public final boolean isOnlyModifiesThisCall()
        Returns whether the only side-effect is "modifies this" or there are no side effects.
      • isOnlyModifiesArgumentsCall

        public final boolean isOnlyModifiesArgumentsCall()
        Returns whether the only side-effect is "modifies arguments" or there are no side effects.
      • isNoSideEffectsCall

        public final boolean isNoSideEffectsCall()
        Returns true if this node is a function or constructor call that has no side effects.
      • mayMutateArguments

        public final boolean mayMutateArguments()
        Returns true if this is a new/call that may mutate its arguments.
      • mayMutateGlobalStateOrThrow

        public final boolean mayMutateGlobalStateOrThrow()
        Returns true if this is a new/call that may mutate global state or throw.
      • isDeclaredConstantVar

        public final boolean isDeclaredConstantVar()
        Returns whether this variable is declared as a constant.

        The compiler considers a variable to be declared if:

        • it is declared with the const keyword, or
        • It is declared with a jsdoc @const annotation, or
        • The current coding convention considers it to be a constant.

        Only valid to call on a name node.

      • setDeclaredConstantVar

        public final void setDeclaredConstantVar​(boolean value)
        Sets this variable to be a declared constant.

        See isDeclaredConstantVar() for the rules.

      • isInferredConstantVar

        public final boolean isInferredConstantVar()
        Returns whether this variable is inferred to be constant.

        The compiler infers a variable to be a constant if:

        • It is assigned at its declaration site, and
        • It is never reassigned during its lifetime, and
        • It is not defined by an extern.

        Only valid to call on a name node.

      • setInferredConstantVar

        public final void setInferredConstantVar​(boolean value)
        Sets this variable to be an inferred constant. *

        See isInferredConstantVar() for the rules.

      • isQuotedString

        public final boolean isQuotedString()
      • setQuotedString

        public final void setQuotedString()
      • isAdd

        public final boolean isAdd()
        AST type check methods
      • isSub

        public final boolean isSub()
      • isAnd

        public final boolean isAnd()
      • isAssignAnd

        public final boolean isAssignAnd()
      • isArrayLit

        public final boolean isArrayLit()
      • isArrayPattern

        public final boolean isArrayPattern()
      • isAssign

        public final boolean isAssign()
      • isAssignAdd

        public final boolean isAssignAdd()
      • isNormalBlock

        public final boolean isNormalBlock()
      • isBlock

        public final boolean isBlock()
      • isRoot

        public final boolean isRoot()
      • isAwait

        public final boolean isAwait()
      • isBigInt

        public final boolean isBigInt()
      • isBitNot

        public final boolean isBitNot()
      • isBreak

        public final boolean isBreak()
      • isCall

        public final boolean isCall()
      • isCase

        public final boolean isCase()
      • isCast

        public final boolean isCast()
      • isCatch

        public final boolean isCatch()
      • isClass

        public final boolean isClass()
      • isClassMembers

        public final boolean isClassMembers()
      • isComma

        public final boolean isComma()
      • isComputedProp

        public final boolean isComputedProp()
      • isContinue

        public final boolean isContinue()
      • isConst

        public final boolean isConst()
      • isDebugger

        public final boolean isDebugger()
      • isDec

        public final boolean isDec()
      • isDefaultCase

        public final boolean isDefaultCase()
      • isDefaultValue

        public final boolean isDefaultValue()
      • isDelProp

        public final boolean isDelProp()
      • isDestructuringLhs

        public final boolean isDestructuringLhs()
      • isDestructuringPattern

        public final boolean isDestructuringPattern()
      • isDo

        public final boolean isDo()
      • isEmpty

        public final boolean isEmpty()
      • isExponent

        public final boolean isExponent()
      • isAssignExponent

        public final boolean isAssignExponent()
      • isExport

        public final boolean isExport()
      • isExportSpec

        public final boolean isExportSpec()
      • isExportSpecs

        public final boolean isExportSpecs()
      • isExprResult

        public final boolean isExprResult()
      • isFalse

        public final boolean isFalse()
      • isVanillaFor

        public final boolean isVanillaFor()
      • isForIn

        public final boolean isForIn()
      • isForOf

        public final boolean isForOf()
      • isForAwaitOf

        public final boolean isForAwaitOf()
      • isFunction

        public final boolean isFunction()
      • isGetterDef

        public final boolean isGetterDef()
      • isGetElem

        public final boolean isGetElem()
      • isGetProp

        public final boolean isGetProp()
      • isHook

        public final boolean isHook()
      • isIf

        public final boolean isIf()
      • isImport

        public final boolean isImport()
      • isImportMeta

        public final boolean isImportMeta()
      • isImportStar

        public final boolean isImportStar()
      • isImportSpec

        public final boolean isImportSpec()
      • isImportSpecs

        public final boolean isImportSpecs()
      • isIn

        public final boolean isIn()
      • isInc

        public final boolean isInc()
      • isInstanceOf

        public final boolean isInstanceOf()
      • isInterfaceMembers

        public final boolean isInterfaceMembers()
      • isRecordType

        public final boolean isRecordType()
      • isCallSignature

        public final boolean isCallSignature()
      • isIndexSignature

        public final boolean isIndexSignature()
      • isLabel

        public final boolean isLabel()
      • isLabelName

        public final boolean isLabelName()
      • isLet

        public final boolean isLet()
      • isMemberFunctionDef

        public final boolean isMemberFunctionDef()
      • isMemberVariableDef

        public final boolean isMemberVariableDef()
      • isMemberFieldDef

        public final boolean isMemberFieldDef()
      • isComputedFieldDef

        public final boolean isComputedFieldDef()
      • isModuleBody

        public final boolean isModuleBody()
      • isName

        public final boolean isName()
      • isNE

        public final boolean isNE()
      • isNeg

        public final boolean isNeg()
      • isNew

        public final boolean isNew()
      • isNot

        public final boolean isNot()
      • isNull

        public final boolean isNull()
      • isNullishCoalesce

        public final boolean isNullishCoalesce()
      • isAssignNullishCoalesce

        public final boolean isAssignNullishCoalesce()
      • isNumber

        public final boolean isNumber()
      • isObjectLit

        public final boolean isObjectLit()
      • isObjectPattern

        public final boolean isObjectPattern()
      • isOptChainCall

        public final boolean isOptChainCall()
      • isOptChainGetElem

        public final boolean isOptChainGetElem()
      • isOptChainGetProp

        public final boolean isOptChainGetProp()
      • isOr

        public final boolean isOr()
      • isAssignOr

        public final boolean isAssignOr()
      • isParamList

        public final boolean isParamList()
      • isRegExp

        public final boolean isRegExp()
      • isRest

        public final boolean isRest()
      • isObjectRest

        public final boolean isObjectRest()
      • isReturn

        public final boolean isReturn()
      • isScript

        public final boolean isScript()
      • isSetterDef

        public final boolean isSetterDef()
      • isSpread

        public final boolean isSpread()
      • isString

        public final boolean isString()
      • isStringKey

        public final boolean isStringKey()
      • isStringLit

        public final boolean isStringLit()
      • isSuper

        public final boolean isSuper()
      • isSwitch

        public final boolean isSwitch()
      • isTaggedTemplateLit

        public final boolean isTaggedTemplateLit()
      • isTemplateLit

        public final boolean isTemplateLit()
      • isTemplateLitString

        public final boolean isTemplateLitString()
      • isTemplateLitSub

        public final boolean isTemplateLitSub()
      • isThis

        public final boolean isThis()
      • isThrow

        public final boolean isThrow()
      • isTrue

        public final boolean isTrue()
      • isTry

        public final boolean isTry()
      • isTypeOf

        public final boolean isTypeOf()
      • isVar

        public final boolean isVar()
      • isVoid

        public final boolean isVoid()
      • isWhile

        public final boolean isWhile()
      • isWith

        public final boolean isWith()
      • isYield

        public final boolean isYield()