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.PositionComparatorNested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected intprotected booleanprotected booleanprotected AstNodeprotected AstNodeFields inherited from class org.mozilla.javascript.ast.Scope
parentScope, symbolTable, topFields inherited from class org.mozilla.javascript.ast.AstNode
inlineComment, length, parent, positionFields 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintReturns position of "each" keywordintReturns position of "in" or "of" keywordReturns object being iterated overReturns loop iterator expressionbooleanReturns 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.toSource(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, setRpMethods inherited from class org.mozilla.javascript.ast.Scope
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScopeMethods inherited from class org.mozilla.javascript.ast.Jump
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoopMethods 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, toSourceMethods 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, toStringTreeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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- ifiteratorisnull
-
getIteratedObject
Returns object being iterated over -
setIteratedObject
Sets object being iterated over, and sets its parent to this node.- Throws:
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
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
Visits this node, the iterator, the iterated object, and the body.
-