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.PositionComparatorNested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Objectprivate List<FunctionNode> private Stringprivate intprivate intprivate intprivate List<FunctionNode> private booleanprivate boolean[]private intprivate List<RegExpLiteral> private Stringprivate List<TemplateLiteral> private intprivate String[]Fields inherited from class org.mozilla.javascript.ast.Scope
parentScope, symbolTable, topFields inherited from class org.mozilla.javascript.ast.AstNode
inlineComment, length, parent, positionFields 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, 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, type, VARIABLE_PROP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintaddFunction(FunctionNode fnNode) Adds aFunctionNodeto the functions table for codegen.voidCalled by IRFactory to add a RegExp to the regexp table.(package private) voidvoidaddTemplateLiteral(TemplateLiteral templateLiteral) Called by IRFactory to add a Template Literal to the templateLiterals table.voidflattenSymbolTable(boolean flattenAllTables) Assign every symbol a unique integer index.intReturns a canonical version of the source for this script or function, for use in implementing theObject.toSourcemethod of JavaScript objects.intReturns the end offset of the encoded source.intReturns the start offset of the encoded source.intintgetFunctionNode(int i) intgetIndexForNameNode(Node nameNode) boolean[]intString[]intgetParamOrVarName(int index) intgetRegexpFlags(int index) getRegexpString(int index) Returns the URI, path or descriptive text indicating the origin of this script's source code.intgetTemplateLiteralStrings(int index) booleanvoidsetBaseLineno(int lineno) Sets base (starting) line number for this script or function.voidsetCompilerData(Object data) voidsetEncodedSource(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(String sourceName) Sets the URI, path or descriptive text indicating the origin of this script's source code.voidsetSymbols(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.Scope
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScope, toSourceMethods inherited from class org.mozilla.javascript.ast.Jump
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoopMethods 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, toSourceMethods inherited from class org.mozilla.javascript.Node
addChildAfter, 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, toStringTreeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
encodedSourceStart
private int encodedSourceStart -
encodedSourceEnd
private int encodedSourceEnd -
sourceName
-
encodedSource
-
endLineno
private int endLineno -
functions
-
regexps
-
templateLiterals
-
EMPTY_LIST
-
symbols
-
paramCount
private int paramCount -
variableNames
-
isConsts
private boolean[] isConsts -
compilerData
-
tempNumber
private int tempNumber -
inStrictMode
private boolean inStrictMode
-
-
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. -
getEncodedSourceStart
public int getEncodedSourceStart()Returns the start offset of the encoded source. Only valid ifgetEncodedSource()returns non-null. -
setEncodedSourceStart
public void setEncodedSourceStart(int start) Used by code generator.- See Also:
-
getEncodedSourceEnd
public int getEncodedSourceEnd()Returns the end offset of the encoded source. Only valid ifgetEncodedSource()returns non-null. -
setEncodedSourceEnd
public void setEncodedSourceEnd(int end) Used by code generator.- See Also:
-
setEncodedSourceBounds
public void setEncodedSourceBounds(int start, int end) Used by code generator.- See Also:
-
setEncodedSource
Used by the code generator.- See Also:
-
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.
-
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 aFunctionNodeto 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() -
addSymbol
-
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:JumpJumps are only used directly during code generation, and do not support this interface.
-