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
- All Implemented Interfaces:
Comparable<AstNode>
,Iterable<Node>
- Direct Known Subclasses:
ArrayComprehensionLoop
,GeneratorExpressionLoop
For-in or for-each-in or for-of statement. Node type is
Token.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
Modifier and TypeFieldDescriptionprotected int
protected int
protected boolean
protected boolean
protected AstNode
protected AstNode
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, OBJECT_LITERAL_DESTRUCTURING, OPTIONAL_CHAINING, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, TRAILING_COMMA, type, VARIABLE_PROP
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
Returns position of "each" keywordint
Returns position of "in" or "of" keywordReturns object being iterated overReturns loop iterator expressionboolean
Returns whether the loop is a for-each loopboolean
isForOf()
Returns whether the loop is a for-of loopvoid
setEachPosition
(int eachPosition) Sets position of "each" keywordvoid
setInPosition
(int inPosition) Sets position of "in" or "of" keywordvoid
setIsForEach
(boolean isForEach) Sets whether the loop is a for-each loopvoid
setIsForOf
(boolean isForOf) Sets whether the loop is a for-each loopvoid
setIteratedObject
(AstNode object) Sets object being iterated over, and sets its parent to this node.void
setIterator
(AstNode iterator) Sets loop iterator expression: the part before the "in" or "of" keyword.toSource
(int depth) Emits source code for this node.void
visit
(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, getColumn, 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, setLineColumnNumber, setScope, setString, setType, toString, toStringTree
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
iterator
-
iteratedObject
-
inPosition
protected int inPosition -
eachPosition
protected int eachPosition -
isForEach
protected boolean isForEach -
isForOf
protected boolean isForOf
-
-
Constructor Details
-
ForInLoop
public ForInLoop() -
ForInLoop
public ForInLoop(int pos) -
ForInLoop
public ForInLoop(int pos, int len)
-
-
Method Details
-
getIterator
Returns loop iterator expression -
setIterator
Sets loop iterator expression: the part before the "in" or "of" keyword. Also sets its parent to this node.- Throws:
IllegalArgumentException
- ifiterator
isnull
-
getIteratedObject
Returns object being iterated over -
setIteratedObject
Sets object being iterated over, and sets its parent to this node.- Throws:
IllegalArgumentException
- ifobject
isnull
-
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
Description copied from class:AstNode
Emits 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
null
children that are expected to be non-null
when no errors are present. In this situation, the behavior of thetoSource
method is undefined:toSource
implementations may assume that the AST node is error-free, since it is intended to be invoked only at runtime after a successful parse. -
visit
Visits this node, the iterator, the iterated object, and the body.
-