java.lang.Object
org.htmlunit.corejs.javascript.Node
org.htmlunit.corejs.javascript.ast.AstNode
org.htmlunit.corejs.javascript.ast.Jump
org.htmlunit.corejs.javascript.ast.Scope
org.htmlunit.corejs.javascript.ast.Loop
org.htmlunit.corejs.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.htmlunit.corejs.javascript.ast.AstNode
AstNode.DebugPrintVisitor, AstNode.PositionComparatorNested classes/interfaces inherited from class org.htmlunit.corejs.javascript.Node
Node.NodeIterator -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected intprotected booleanprotected booleanprotected AstNodeprotected AstNodeFields inherited from class org.htmlunit.corejs.javascript.ast.Scope
parentScope, symbolTable, top, varSymbolTableFields inherited from class org.htmlunit.corejs.javascript.ast.AstNode
inlineComment, length, parent, positionFields inherited from class org.htmlunit.corejs.javascript.Node
ARROW_FUNCTION_PROP, ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_PROP, CONST_IDS_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, FIRST_PROP, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, IS_CONST_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, NUMBER_OF_SPREAD, OBJECT_IDS_PROP, OBJECT_LITERAL_DESTRUCTURING, OBJECT_REST_PROP, OPTIONAL_CHAINING, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SUPER_PROPERTY_ACCESS, 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) Jumps are only used directly during code generation, and do not support this interface.voidvisit(NodeVisitor v) Visits this node, the iterator, the iterated object, and the body.Methods inherited from class org.htmlunit.corejs.javascript.ast.Loop
getBody, getLp, getRp, setBody, setLp, setParens, setRpMethods inherited from class org.htmlunit.corejs.javascript.ast.Scope
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, getVarSymbol, getVarSymbolTable, joinScopes, joinVarScopes, moveSymbol, putSymbol, putVarSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScopeMethods inherited from class org.htmlunit.corejs.javascript.ast.Jump
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoopMethods inherited from class org.htmlunit.corejs.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.htmlunit.corejs.javascript.Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, clearAllLabelIds, clearLabelId, 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:JumpJumps are only used directly during code generation, and do not support this interface. -
visit
Visits this node, the iterator, the iterated object, and the body.
-