Package org.mozilla.javascript.ast
Class ScriptNode
- java.lang.Object
- 
- org.mozilla.javascript.Node
- 
- org.mozilla.javascript.ast.AstNode
- 
- org.mozilla.javascript.ast.Jump
- 
- org.mozilla.javascript.ast.Scope
- 
- org.mozilla.javascript.ast.ScriptNode
 
 
 
 
 
- 
- Direct Known Subclasses:
- AstRoot,- FunctionNode
 
 public class ScriptNode extends Scope Base type forAstRootandFunctionNodenodes, which need to collect much of the same information.
- 
- 
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 Summary- 
Fields inherited from class org.mozilla.javascript.ast.ScopeparentScope, symbolTable, top
 - 
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
 
- 
 - 
Constructor SummaryConstructors Constructor Description ScriptNode()ScriptNode(int pos)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description intaddFunction(FunctionNode fnNode)Adds aFunctionNodeto the functions table for codegen.voidaddRegExp(RegExpLiteral re)Called by IRFactory to add a RegExp to the regexp table.voidaddTemplateLiteral(TemplateLiteral templateLiteral)Called by IRFactory to add a Template Literal to the templateLiterals table.voidflattenSymbolTable(boolean flattenAllTables)Assign every symbol a unique integer index.intgetBaseLineno()java.lang.ObjectgetCompilerData()java.lang.StringgetEncodedSource()Returns a canonical version of the source for this script or function, for use in implementing theObject.toSourcemethod of JavaScript objects.intgetEncodedSourceEnd()Returns the end offset of the encoded source.intgetEncodedSourceStart()Returns the start offset of the encoded source.intgetEndLineno()intgetFunctionCount()FunctionNodegetFunctionNode(int i)java.util.List<FunctionNode>getFunctions()intgetIndexForNameNode(Node nameNode)java.lang.StringgetNextTempName()boolean[]getParamAndVarConst()intgetParamAndVarCount()java.lang.String[]getParamAndVarNames()intgetParamCount()java.lang.StringgetParamOrVarName(int index)intgetRegexpCount()java.lang.StringgetRegexpFlags(int index)java.lang.StringgetRegexpString(int index)java.lang.StringgetSourceName()Returns the URI, path or descriptive text indicating the origin of this script's source code.java.util.List<Symbol>getSymbols()intgetTemplateLiteralCount()java.util.List<TemplateCharacters>getTemplateLiteralStrings(int index)booleanhasRestParameter()booleanisInStrictMode()voidsetBaseLineno(int lineno)Sets base (starting) line number for this script or function.voidsetCompilerData(java.lang.Object data)voidsetEncodedSource(java.lang.String encodedSource)Used by the code generator.voidsetEncodedSourceBounds(int start, int end)Used by code generator.voidsetEncodedSourceEnd(int end)Used by code generator.voidsetEncodedSourceStart(int start)Used by code generator.voidsetEndLineno(int lineno)voidsetInStrictMode(boolean inStrictMode)voidsetSourceName(java.lang.String sourceName)Sets the URI, path or descriptive text indicating the origin of this script's source code.voidsetSymbols(java.util.List<Symbol> symbols)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.ScopeaddChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScope, toSource
 - 
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
 
- 
 
- 
- 
- 
Method Detail- 
getSourceNamepublic java.lang.String getSourceName() Returns the URI, path or descriptive text indicating the origin of this script's source code.
 - 
setSourceNamepublic void setSourceName(java.lang.String sourceName) Sets the URI, path or descriptive text indicating the origin of this script's source code.
 - 
getEncodedSourceStartpublic int getEncodedSourceStart() Returns the start offset of the encoded source. Only valid ifgetEncodedSource()returns non-null.
 - 
setEncodedSourceStartpublic void setEncodedSourceStart(int start) Used by code generator.- See Also:
- getEncodedSource()
 
 - 
getEncodedSourceEndpublic int getEncodedSourceEnd() Returns the end offset of the encoded source. Only valid ifgetEncodedSource()returns non-null.
 - 
setEncodedSourceEndpublic void setEncodedSourceEnd(int end) Used by code generator.- See Also:
- getEncodedSource()
 
 - 
setEncodedSourceBoundspublic void setEncodedSourceBounds(int start, int end)Used by code generator.- See Also:
- getEncodedSource()
 
 - 
setEncodedSourcepublic void setEncodedSource(java.lang.String encodedSource) Used by the code generator.- See Also:
- getEncodedSource()
 
 - 
getEncodedSourcepublic java.lang.String getEncodedSource() Returns a canonical version of the source for this script or function, for use in implementing theObject.toSourcemethod of JavaScript objects. This source encoding is only recorded during code generation. It must be passed back toDecompiler.decompile(java.lang.String, int, org.mozilla.javascript.UintMap)to construct the human-readable source string.Given a parsed AST, you can always convert it to source code using the AstNode.toSource(int)method, although it's not guaranteed to produce exactly the same results asObject.toSourcewith respect to formatting, parenthesization and other details.- Returns:
- the encoded source, or nullif it was not recorded.
 
 - 
getBaseLinenopublic int getBaseLineno() 
 - 
setBaseLinenopublic void setBaseLineno(int lineno) Sets base (starting) line number for this script or function. This is a one-time operation, and throws an exception if the line number has already been set.
 - 
getEndLinenopublic int getEndLineno() 
 - 
setEndLinenopublic void setEndLineno(int lineno) 
 - 
getFunctionCountpublic int getFunctionCount() 
 - 
getFunctionNodepublic FunctionNode getFunctionNode(int i) 
 - 
getFunctionspublic java.util.List<FunctionNode> getFunctions() 
 - 
addFunctionpublic int addFunction(FunctionNode fnNode) Adds aFunctionNodeto the functions table for codegen. Does not set the parent of the node.- Returns:
- the index of the function within its parent
 
 - 
getRegexpCountpublic int getRegexpCount() 
 - 
getRegexpStringpublic java.lang.String getRegexpString(int index) 
 - 
getRegexpFlagspublic java.lang.String getRegexpFlags(int index) 
 - 
addRegExppublic void addRegExp(RegExpLiteral re) Called by IRFactory to add a RegExp to the regexp table.
 - 
getTemplateLiteralCountpublic int getTemplateLiteralCount() 
 - 
getTemplateLiteralStringspublic java.util.List<TemplateCharacters> getTemplateLiteralStrings(int index) 
 - 
addTemplateLiteralpublic void addTemplateLiteral(TemplateLiteral templateLiteral) Called by IRFactory to add a Template Literal to the templateLiterals table.
 - 
getIndexForNameNodepublic int getIndexForNameNode(Node nameNode) 
 - 
getParamOrVarNamepublic java.lang.String getParamOrVarName(int index) 
 - 
getParamCountpublic int getParamCount() 
 - 
getParamAndVarCountpublic int getParamAndVarCount() 
 - 
getParamAndVarNamespublic java.lang.String[] getParamAndVarNames() 
 - 
getParamAndVarConstpublic boolean[] getParamAndVarConst() 
 - 
hasRestParameterpublic boolean hasRestParameter() 
 - 
getSymbolspublic java.util.List<Symbol> getSymbols() 
 - 
setSymbolspublic void setSymbols(java.util.List<Symbol> symbols) 
 - 
flattenSymbolTablepublic void flattenSymbolTable(boolean flattenAllTables) Assign every symbol a unique integer index. Generate arrays of variable names and constness that can be indexed by those indices.- Parameters:
- flattenAllTables- if true, flatten all symbol tables, included nested block scope symbol tables. If false, just flatten the script's or function's symbol table.
 
 - 
getCompilerDatapublic java.lang.Object getCompilerData() 
 - 
setCompilerDatapublic void setCompilerData(java.lang.Object data) 
 - 
getNextTempNamepublic java.lang.String getNextTempName() 
 - 
setInStrictModepublic void setInStrictMode(boolean inStrictMode) 
 - 
isInStrictModepublic boolean isInStrictMode() 
 - 
visitpublic void visit(NodeVisitor v) Description copied from class:JumpJumps are only used directly during code generation, and do not support this interface.
 
- 
 
-