Package org.mozilla.javascript.ast
Class Scope
- java.lang.Object
- 
- org.mozilla.javascript.Node
- 
- org.mozilla.javascript.ast.AstNode
- 
- org.mozilla.javascript.ast.Jump
- 
- org.mozilla.javascript.ast.Scope
 
 
 
 
- 
- Direct Known Subclasses:
- ArrayComprehension,- GeneratorExpression,- LetNode,- Loop,- ScriptNode
 
 public class Scope extends Jump Represents a scope in the lexical scope chain. Base type for allAstNodeimplementations that can introduce a new scope.
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNodeAstNode.DebugPrintVisitor, AstNode.PositionComparator
 - 
Nested classes/interfaces inherited from class org.mozilla.javascript.NodeNode.NodeIterator
 
- 
 - 
Field SummaryFields Modifier and Type Field Description protected ScopeparentScopeprotected java.util.Map<java.lang.String,Symbol>symbolTableprotected ScriptNodetop- 
Fields inherited from class org.mozilla.javascript.ast.AstNodeinlineComment, length, parent, position
 - 
Fields inherited from class org.mozilla.javascript.NodeARROW_FUNCTION_PROP, ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_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, 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, SHORTHAND_PROPERTY_NAME, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, TRAILING_COMMA, type, VARIABLE_PROP
 
- 
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddChildScope(Scope child)Add a scope to our list of child scopes.voidclearParentScope()Used only for code generation.java.util.List<Scope>getChildScopes()Return a list of the scopes whose parent is this scope.ScopegetDefiningScope(java.lang.String name)Returns the scope in which this name is definedScopegetParentScope()java.util.List<AstNode>getStatements()Returns a copy of the child list, with each child cast to anAstNode.SymbolgetSymbol(java.lang.String name)Looks up a symbol in this scope.java.util.Map<java.lang.String,Symbol>getSymbolTable()Returns the symbol table for this scope.ScriptNodegetTop()Returns current script or function scopestatic voidjoinScopes(Scope source, Scope dest)Copies all symbols from source scope to dest scope.voidputSymbol(Symbol symbol)Enters a symbol into this scope.voidreplaceWith(Scope newScope)Used by the parser; not intended for typical use.voidsetParentScope(Scope parentScope)Sets parent scopevoidsetSymbolTable(java.util.Map<java.lang.String,Symbol> table)Sets the symbol table for this scope.voidsetTop(ScriptNode top)Sets top current script or function scopestatic ScopesplitScope(Scope scope)Creates a new scope node, moving symbol table information from "scope" to the new node, and making "scope" a nested scope contained by the new node.java.lang.StringtoSource(int depth)Emits source code for this node.voidvisit(NodeVisitor v)Jumps are only used directly during code generation, and do not support this interface.- 
Methods inherited from class org.mozilla.javascript.ast.JumpgetContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoop
 - 
Methods inherited from class org.mozilla.javascript.ast.AstNodeaddChild, 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, toSource
 - 
Methods inherited from class org.mozilla.javascript.NodeaddChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getBigInt, 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, setBigInt, setDouble, setJsDocNode, setLineno, setScope, setString, setType, toString, toStringTree
 
- 
 
- 
- 
- 
Field Detail- 
symbolTableprotected java.util.Map<java.lang.String,Symbol> symbolTable 
 - 
parentScopeprotected Scope parentScope 
 - 
topprotected ScriptNode top 
 
- 
 - 
Method Detail- 
getParentScopepublic Scope getParentScope() 
 - 
setParentScopepublic void setParentScope(Scope parentScope) Sets parent scope
 - 
clearParentScopepublic void clearParentScope() Used only for code generation.
 - 
getChildScopespublic java.util.List<Scope> getChildScopes() Return a list of the scopes whose parent is this scope.- Returns:
- the list of scopes we enclose, or nullif none
 
 - 
addChildScopepublic void addChildScope(Scope child) Add a scope to our list of child scopes. Sets the child's parent scope to this scope.- Throws:
- java.lang.IllegalStateException- if the child's parent scope is non-- null
 
 - 
replaceWithpublic void replaceWith(Scope newScope) Used by the parser; not intended for typical use. Changes the parent-scope links for this scope's child scopes to the specified new scope. Copies symbols from this scope into new scope.- Parameters:
- newScope- the scope that will replace this one on the scope stack.
 
 - 
getToppublic ScriptNode getTop() Returns current script or function scope
 - 
setToppublic void setTop(ScriptNode top) Sets top current script or function scope
 - 
splitScopepublic static Scope splitScope(Scope scope) Creates a new scope node, moving symbol table information from "scope" to the new node, and making "scope" a nested scope contained by the new node. Useful for injecting a new scope in a scope chain.
 - 
joinScopespublic static void joinScopes(Scope source, Scope dest) Copies all symbols from source scope to dest scope.
 - 
getDefiningScopepublic Scope getDefiningScope(java.lang.String name) Returns the scope in which this name is defined- Parameters:
- name- the symbol to look up
- Returns:
- this Scope, one of its parent scopes, ornullif the name is not defined any this scope chain
 
 - 
getSymbolpublic Symbol getSymbol(java.lang.String name) Looks up a symbol in this scope.- Parameters:
- name- the symbol name
- Returns:
- the Symbol, or nullif not found
 
 - 
putSymbolpublic void putSymbol(Symbol symbol) Enters a symbol into this scope.
 - 
getSymbolTablepublic java.util.Map<java.lang.String,Symbol> getSymbolTable() Returns the symbol table for this scope.- Returns:
- the symbol table. May be null.
 
 - 
setSymbolTablepublic void setSymbolTable(java.util.Map<java.lang.String,Symbol> table) Sets the symbol table for this scope. May benull.
 - 
getStatementspublic java.util.List<AstNode> getStatements() Returns a copy of the child list, with each child cast to anAstNode.- Throws:
- java.lang.ClassCastException- if any non-- AstNodeobjects are in the child list, e.g. if this method is called after the code generator begins the tree transformation.
 
 - 
toSourcepublic java.lang.String toSource(int depth) Description copied from class:AstNodeEmits 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 nullchildren that are expected to be non-nullwhen no errors are present. In this situation, the behavior of thetoSourcemethod is undefined:toSourceimplementations may assume that the AST node is error-free, since it is intended to be invoked only at runtime after a successful parse.
 - 
visitpublic void visit(NodeVisitor v) Description copied from class:JumpJumps are only used directly during code generation, and do not support this interface.
 
- 
 
-