org.mozilla.javascript.ast

## Class Block

- java.lang.Object
- - org.mozilla.javascript.Node
  - - org.mozilla.javascript.ast.AstNode
    - - org.mozilla.javascript.ast.Block

- All Implemented Interfaces:
    java.lang.Comparable<AstNode>, java.lang.Iterable<Node>

      public class Block
      extends AstNode

  A block statement delimited by curly braces. The node position is the position of the open-curly, and the length extends to the position of the close-curly. Node type is `Token.BLOCK`.

      Block :
           { Statement* }

- - ### 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

    - ### 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

    Constructors
    Constructor and Description
    `Block()`
    `Block(int pos)`
    `Block(int pos, int len)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addStatement(AstNode statement)` Alias for `AstNode.addChild(org.mozilla.javascript.ast.AstNode)`.
    `java.lang.String` | `toSource(int depth)` Emits source code for this node.
    `void` | `visit(NodeVisitor v)` Visits this node and its children in an arbitrary order.

    - ### 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`

- - ### Constructor Detail

    - #### Block

          public Block()

    - #### Block

          public Block(int pos)

    - #### Block

          public Block(int pos,
               int len)

  - ### Method Detail

    - #### addStatement

          public void addStatement(AstNode statement)

      Alias for `AstNode.addChild(org.mozilla.javascript.ast.AstNode)`.

    - #### 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.

    - #### visit

          public void visit(NodeVisitor v)

      Description copied from class: `AstNode`
      Visits this node and its children in an arbitrary order.

      It's up to each node subclass to decide the order for processing its children. The subclass also decides (and should document) which child nodes are not passed to the `NodeVisitor`. For instance, nodes representing keywords like `each` or `in` may not be passed to the visitor object. The visitor can simply query the current node for these children if desired.

      Generally speaking, the order will be deterministic; the order is whatever order is decided by each child node. Normally child nodes will try to visit their children in lexical order, but there may be exceptions to this rule.

      Specified by:
        `visit` in class `AstNode`
      Parameters:
        `v` - the object to call with this node and its children