org.mozilla.javascript.ast
Class Jump

java.lang.Object
  extended by org.mozilla.javascript.Node
      extended by org.mozilla.javascript.ast.AstNode
          extended by org.mozilla.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 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
 Node target
           
 
Fields inherited from class org.mozilla.javascript.ast.AstNode
length, parent, position
 
Fields inherited from class org.mozilla.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
 
Constructor Summary
Jump()
           
Jump(int nodeType)
           
Jump(int type, int lineno)
           
Jump(int type, Node child)
           
Jump(int type, Node child, int lineno)
           
 
Method Summary
 Node getContinue()
           
 Node getDefault()
           
 Node getFinally()
           
 Jump getJumpStatement()
           
 Jump getLoop()
           
 void setContinue(Node continueTarget)
           
 void setDefault(Node defaultTarget)
           
 void setFinally(Node finallyTarget)
           
 void setJumpStatement(Jump jumpStatement)
           
 void setLoop(Jump loop)
           
 java.lang.String toSource(int depth)
          Emits source code for this node.
 void visit(NodeVisitor visitor)
          Jumps are only used directly during code generation, and do not support this interface.
 
Methods inherited from class org.mozilla.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 org.mozilla.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
 

Field Detail

target

public Node target
Constructor Detail

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)
Method Detail

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.