Package org.mozilla.javascript.ast
Class ForInLoop
- java.lang.Object
-
- org.mozilla.javascript.Node
-
- org.mozilla.javascript.ast.AstNode
-
- org.mozilla.javascript.ast.Jump
-
- org.mozilla.javascript.ast.Scope
-
- org.mozilla.javascript.ast.Loop
-
- org.mozilla.javascript.ast.ForInLoop
-
- Direct Known Subclasses:
ArrayComprehensionLoop,GeneratorExpressionLoop
public class ForInLoop extends Loop
For-in or for-each-in or for-of statement. Node type isToken.FOR.for [each] ( LeftHandSideExpression in Expression ) Statement
for [each] ( var VariableDeclarationNoIn in Expression ) Statement
for ( LeftHandSideExpression of Expression ) Statement
for ( ForDeclaration of Expression ) Statement
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNode
AstNode.DebugPrintVisitor, AstNode.PositionComparator
-
Nested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator
-
-
Field Summary
Fields Modifier and Type Field Description protected inteachPositionprotected intinPositionprotected booleanisForEachprotected booleanisForOfprotected AstNodeiteratedObjectprotected AstNodeiterator-
Fields inherited from class org.mozilla.javascript.ast.Scope
parentScope, symbolTable, top
-
Fields inherited from class org.mozilla.javascript.ast.AstNode
inlineComment, length, parent, position
-
Fields inherited from class org.mozilla.javascript.Node
ARROW_FUNCTION_PROP, ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_PROP, CONTROL_BLOCK_PROP, DECR_FLAG, DESCENDANTS_FLAG, DESTRUCTURING_ARRAY_LENGTH, DESTRUCTURING_NAMES, DESTRUCTURING_PARAMS, DIRECTCALL_PROP, END_DROPS_OFF, END_RETURNS, END_RETURNS_VALUE, END_UNREACHED, END_YIELDS, EXPRESSION_CLOSURE_PROP, first, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, last, LAST_PROP, LEFT, lineno, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, next, NON_SPECIALCALL, OBJECT_IDS_PROP, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SHORTHAND_PROPERTY_NAME, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, TRAILING_COMMA, type, VARIABLE_PROP
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetEachPosition()Returns position of "each" keywordintgetInPosition()Returns position of "in" or "of" keywordAstNodegetIteratedObject()Returns object being iterated overAstNodegetIterator()Returns loop iterator expressionbooleanisForEach()Returns whether the loop is a for-each loopbooleanisForOf()Returns whether the loop is a for-of loopvoidsetEachPosition(int eachPosition)Sets position of "each" keywordvoidsetInPosition(int inPosition)Sets position of "in" or "of" keywordvoidsetIsForEach(boolean isForEach)Sets whether the loop is a for-each loopvoidsetIsForOf(boolean isForOf)Sets whether the loop is a for-each loopvoidsetIteratedObject(AstNode object)Sets object being iterated over, and sets its parent to this node.voidsetIterator(AstNode iterator)Sets loop iterator expression: the part before the "in" or "of" keyword.java.lang.StringtoSource(int depth)Emits source code for this node.voidvisit(NodeVisitor v)Visits this node, the iterator, the iterated object, and the body.-
Methods inherited from class org.mozilla.javascript.ast.Loop
getBody, getLp, getRp, setBody, setLp, setParens, setRp
-
Methods inherited from class org.mozilla.javascript.ast.Scope
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScope
-
Methods inherited from class org.mozilla.javascript.ast.Jump
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoop
-
Methods inherited from class org.mozilla.javascript.ast.AstNode
addChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getInlineComment, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, printList, setBounds, setInlineComment, setLength, setParent, setPosition, setRelative, shortName, toSource
-
Methods inherited from class org.mozilla.javascript.Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getBigInt, getChildBefore, getDouble, getExistingIntProp, getFirstChild, getIntProp, getJsDoc, getJsDocNode, getLastChild, getLastSibling, getNext, getProp, getScope, getString, getType, hasChildren, hasConsistentReturnUsage, iterator, labelId, labelId, newNumber, newString, newString, newTarget, putIntProp, putProp, removeChild, removeChildren, removeProp, replaceChild, replaceChildAfter, resetTargets, setBigInt, setDouble, setJsDocNode, setLineno, setScope, setString, setType, toString, toStringTree
-
-
-
-
Method Detail
-
getIterator
public AstNode getIterator()
Returns loop iterator expression
-
setIterator
public void setIterator(AstNode iterator)
Sets loop iterator expression: the part before the "in" or "of" keyword. Also sets its parent to this node.- Throws:
java.lang.IllegalArgumentException- ifiteratorisnull
-
getIteratedObject
public AstNode getIteratedObject()
Returns object being iterated over
-
setIteratedObject
public void setIteratedObject(AstNode object)
Sets object being iterated over, and sets its parent to this node.- Throws:
java.lang.IllegalArgumentException- ifobjectisnull
-
isForEach
public boolean isForEach()
Returns whether the loop is a for-each loop
-
setIsForEach
public void setIsForEach(boolean isForEach)
Sets whether the loop is a for-each loop
-
isForOf
public boolean isForOf()
Returns whether the loop is a for-of loop
-
setIsForOf
public void setIsForOf(boolean isForOf)
Sets whether the loop is a for-each loop
-
getInPosition
public int getInPosition()
Returns position of "in" or "of" keyword
-
setInPosition
public void setInPosition(int inPosition)
Sets position of "in" or "of" keyword- Parameters:
inPosition- position of "in" or "of" keyword, or -1 if not present (e.g. in presence of a syntax error)
-
getEachPosition
public int getEachPosition()
Returns position of "each" keyword
-
setEachPosition
public void setEachPosition(int eachPosition)
Sets position of "each" keyword- Parameters:
eachPosition- position of "each" keyword, or -1 if not present.
-
toSource
public java.lang.String toSource(int depth)
Description copied from class:AstNodeEmits source code for this node. Callee is responsible for calling this function recursively on children, incrementing indent as appropriate.Note: if the parser was in error-recovery mode, some AST nodes may have
nullchildren that are expected to be non-nullwhen no errors are present. In this situation, the behavior of thetoSourcemethod is undefined:toSourceimplementations may assume that the AST node is error-free, since it is intended to be invoked only at runtime after a successful parse.
-
visit
public void visit(NodeVisitor v)
Visits this node, the iterator, the iterated object, and the body.
-
-