java.lang.Object
org.htmlunit.corejs.javascript.Node
org.htmlunit.corejs.javascript.ast.AstNode
org.htmlunit.corejs.javascript.ast.Jump
- All Implemented Interfaces:
Comparable<AstNode>,Iterable<Node>
- Direct Known Subclasses:
BreakStatement,ContinueStatement,Label,Scope
Used for code generation. During codegen, the AST is transformed into an Intermediate
Representation (IR) in which loops, ifs, switches and other control-flow statements are rewritten
as labeled jumps. If the parser is set to IDE-mode, the resulting AST will not contain any
instances of this class.
-
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
FieldsFields 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 TypeMethodDescriptiongetLoop()voidsetContinue(Node continueTarget) voidsetDefault(Node defaultTarget) voidsetFinally(Node finallyTarget) voidsetJumpStatement(Jump jumpStatement) voidtoSource(int depth) Jumps are only used directly during code generation, and do not support this interface.voidvisit(NodeVisitor visitor) Jumps are only used directly during code generation, and do not support this interface.Methods 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
-
target
-
-
Constructor Details
-
Jump
public Jump() -
Jump
public Jump(int nodeType) -
Jump
-
-
Method Details
-
getJumpStatement
-
setJumpStatement
-
getDefault
-
setDefault
-
getFinally
-
setFinally
-
getLoop
-
setLoop
-
getContinue
-
setContinue
-
visit
Jumps are only used directly during code generation, and do not support this interface.- Specified by:
visitin classAstNode- Parameters:
visitor- the object to call with this node and its children- Throws:
UnsupportedOperationException- always when called
-
toSource
Jumps are only used directly during code generation, and do not support this interface.- Specified by:
toSourcein classAstNode- Parameters:
depth- the current recursion depth, typically beginning at 0 when called on the root node.- Throws:
UnsupportedOperationException- always when called
-