net.sourceforge.htmlunit.corejs.javascript.ast
Class Jump
java.lang.Object
net.sourceforge.htmlunit.corejs.javascript.Node
net.sourceforge.htmlunit.corejs.javascript.ast.AstNode
net.sourceforge.htmlunit.corejs.javascript.ast.Jump
- All Implemented Interfaces:
- java.lang.Comparable<AstNode>, java.lang.Iterable<Node>
- Direct Known Subclasses:
- BreakStatement, ContinueStatement, Label, Scope, SwitchStatement
public class Jump
- extends AstNode
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 classes/interfaces inherited from class net.sourceforge.htmlunit.corejs.javascript.Node |
Node.NodeIterator |
| Fields inherited from class net.sourceforge.htmlunit.corejs.javascript.Node |
ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_PROP, CONTROL_BLOCK_PROP, DECR_FLAG, DESCENDANTS_FLAG, DESTRUCTURING_ARRAY_LENGTH, DESTRUCTURING_NAMES, DESTRUCTURING_PARAMS, DESTRUCTURING_SHORTHAND, 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, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, type, VARIABLE_PROP |
| Methods inherited from class net.sourceforge.htmlunit.corejs.javascript.ast.AstNode |
addChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, printList, setBounds, setLength, setParent, setPosition, setRelative, shortName, toSource |
| Methods inherited from class net.sourceforge.htmlunit.corejs.javascript.Node |
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, 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, setDouble, setJsDocNode, setLineno, setScope, setString, setType, toString, toStringTree |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
target
public Node target
Jump
public Jump()
Jump
public Jump(int nodeType)
Jump
public Jump(int type,
int lineno)
Jump
public Jump(int type,
Node child)
Jump
public Jump(int type,
Node child,
int lineno)
getJumpStatement
public Jump getJumpStatement()
setJumpStatement
public void setJumpStatement(Jump jumpStatement)
getDefault
public Node getDefault()
setDefault
public void setDefault(Node defaultTarget)
getFinally
public Node getFinally()
setFinally
public void setFinally(Node finallyTarget)
getLoop
public Jump getLoop()
setLoop
public void setLoop(Jump loop)
getContinue
public Node getContinue()
setContinue
public void setContinue(Node continueTarget)
visit
public void visit(NodeVisitor visitor)
- Jumps are only used directly during code generation, and do not support
this interface.
- Specified by:
visit in class AstNode
- Parameters:
visitor - the object to call with this node and its children
- Throws:
java.lang.UnsupportedOperationException
toSource
public java.lang.String toSource(int depth)
- 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 the
toSource 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.
- Specified by:
toSource in class AstNode
- Parameters:
depth - the current recursion depth, typically beginning at 0 when
called on the root node.