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
- All Implemented Interfaces:
Comparable<AstNode>
,Iterable<Node>
- Direct Known Subclasses:
AstRoot
,FunctionNode
Base type for
AstRoot
and FunctionNode
nodes, which need to collect much of the
same information.-
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.Scope
parentScope, symbolTable, top
Fields inherited from class org.mozilla.javascript.ast.AstNode
inlineComment, length, parent, position
Fields inherited from class org.mozilla.javascript.Node
ARROW_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, OBJECT_LITERAL_DESTRUCTURING, OPTIONAL_CHAINING, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, TRAILING_COMMA, type, VARIABLE_PROP
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
addFunction
(FunctionNode fnNode) Adds aFunctionNode
to the functions table for codegen.void
Called by IRFactory to add a RegExp to the regexp table.void
addTemplateLiteral
(TemplateLiteral templateLiteral) Called by IRFactory to add a Template Literal to the templateLiterals table.void
flattenSymbolTable
(boolean flattenAllTables) Assign every symbol a unique integer index.int
int
int
getFunctionNode
(int i) int
getIndexForNameNode
(Node nameNode) boolean[]
int
String[]
int
getParamOrVarName
(int index) int
Returns the end offset of the raw source.int
Returns the start offset of the raw source.int
getRegexpFlags
(int index) getRegexpString
(int index) Returns the URI, path or descriptive text indicating the origin of this script's source code.int
getTemplateLiteralStrings
(int index) boolean
boolean
void
putDestructuringRvalues
(Node left, Node right) void
setBaseLineno
(int lineno) Sets base (starting) line number for this script or function.void
setCompilerData
(Object data) void
setEndLineno
(int lineno) void
setInStrictMode
(boolean inStrictMode) void
setRawSource
(String rawSource) Used by the code generator.void
setRawSourceBounds
(int start, int end) Used by code generator.void
setRawSourceEnd
(int end) Used by code generator.void
setRawSourceStart
(int start) Used by code generator.void
setSourceName
(String sourceName) Sets the URI, path or descriptive text indicating the origin of this script's source code.void
setSymbols
(List<Symbol> symbols) void
visit
(NodeVisitor v) Jumps are only used directly during code generation, and do not support this interface.Methods inherited from class org.mozilla.javascript.ast.Scope
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScope, toSource
Methods inherited from class org.mozilla.javascript.ast.Jump
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoop
Methods inherited from class org.mozilla.javascript.ast.AstNode
addChild, 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.Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getBigInt, getChildBefore, getColumn, 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, setLineColumnNumber, setScope, setString, setType, toString, toStringTree
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
ScriptNode
public ScriptNode() -
ScriptNode
public ScriptNode(int pos)
-
-
Method Details
-
getSourceName
Returns the URI, path or descriptive text indicating the origin of this script's source code. -
setSourceName
Sets the URI, path or descriptive text indicating the origin of this script's source code. -
getRawSourceStart
public int getRawSourceStart()Returns the start offset of the raw source. Only valid ifgetRawSource()
returns non-null
. -
setRawSourceStart
public void setRawSourceStart(int start) Used by code generator.- See Also:
-
getRawSourceEnd
public int getRawSourceEnd()Returns the end offset of the raw source. Only valid ifgetRawSource()
returns non-null
. -
setRawSourceEnd
public void setRawSourceEnd(int end) Used by code generator.- See Also:
-
setRawSourceBounds
public void setRawSourceBounds(int start, int end) Used by code generator.- See Also:
-
setRawSource
Used by the code generator.- See Also:
-
getRawSource
- Returns:
- the raw source, or
null
if it was not recorded.
-
getBaseLineno
public int getBaseLineno() -
setBaseLineno
public 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. -
getEndLineno
public int getEndLineno() -
setEndLineno
public void setEndLineno(int lineno) -
getFunctionCount
public int getFunctionCount() -
getFunctionNode
-
getFunctions
-
addFunction
Adds aFunctionNode
to the functions table for codegen. Does not set the parent of the node.- Returns:
- the index of the function within its parent
-
getRegexpCount
public int getRegexpCount() -
getRegexpString
-
getRegexpFlags
-
addRegExp
Called by IRFactory to add a RegExp to the regexp table. -
getTemplateLiteralCount
public int getTemplateLiteralCount() -
getTemplateLiteralStrings
-
addTemplateLiteral
Called by IRFactory to add a Template Literal to the templateLiterals table. -
getIndexForNameNode
-
getParamOrVarName
-
getParamCount
public int getParamCount() -
getParamAndVarCount
public int getParamAndVarCount() -
getParamAndVarNames
-
getParamAndVarConst
public boolean[] getParamAndVarConst() -
hasRestParameter
public boolean hasRestParameter() -
getDefaultParams
-
getDestructuringRvalues
-
putDestructuringRvalues
-
getSymbols
-
setSymbols
-
flattenSymbolTable
public 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.
-
getCompilerData
-
setCompilerData
-
getNextTempName
-
setInStrictMode
public void setInStrictMode(boolean inStrictMode) -
isInStrictMode
public boolean isInStrictMode() -
visit
Description copied from class:Jump
Jumps are only used directly during code generation, and do not support this interface.
-