public class ScriptNode extends Scope
AstRoot
and FunctionNode
nodes, which need to
collect much of the same information.AstNode.PositionComparator
Node.NodeIterator
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, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, LAST_PROP, LEFT, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, NON_SPECIALCALL, OBJECT_IDS_PROP, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, VARIABLE_PROP
Constructor and Description |
---|
ScriptNode() |
ScriptNode(int pos) |
Modifier and Type | Method and Description |
---|---|
int |
addFunction(FunctionNode fnNode)
Adds a
FunctionNode to the functions table for codegen. |
void |
addRegExp(RegExpLiteral re)
Called by IRFactory to add a RegExp to the regexp table.
|
void |
flattenSymbolTable(boolean flattenAllTables)
Assign every symbol a unique integer index.
|
int |
getBaseLineno() |
java.lang.Object |
getCompilerData() |
java.lang.String |
getEncodedSource()
Returns a canonical version of the source for this script or function,
for use in implementing the
Object.toSource method of
JavaScript objects. |
int |
getEncodedSourceEnd()
Returns the end offset of the encoded source.
|
int |
getEncodedSourceStart()
Returns the start offset of the encoded source.
|
int |
getEndLineno() |
int |
getFunctionCount() |
FunctionNode |
getFunctionNode(int i) |
java.util.List<FunctionNode> |
getFunctions() |
int |
getIndexForNameNode(Node nameNode) |
java.lang.String |
getNextTempName() |
boolean[] |
getParamAndVarConst() |
int |
getParamAndVarCount() |
java.lang.String[] |
getParamAndVarNames() |
int |
getParamCount() |
java.lang.String |
getParamOrVarName(int index) |
int |
getRegexpCount() |
java.lang.String |
getRegexpFlags(int index) |
java.lang.String |
getRegexpString(int index) |
java.lang.String |
getSourceName()
Returns the URI, path or descriptive text indicating the origin
of this script's source code.
|
java.util.List<Symbol> |
getSymbols() |
void |
setBaseLineno(int lineno)
Sets base (starting) line number for this script or function.
|
void |
setCompilerData(java.lang.Object data) |
void |
setEncodedSource(java.lang.String encodedSource)
Used by the code generator.
|
void |
setEncodedSourceBounds(int start,
int end)
Used by code generator.
|
void |
setEncodedSourceEnd(int end)
Used by code generator.
|
void |
setEncodedSourceStart(int start)
Used by code generator.
|
void |
setEndLineno(int lineno) |
void |
setSourceName(java.lang.String sourceName)
Sets the URI, path or descriptive text indicating the origin
of this script's source code.
|
void |
setSymbols(java.util.List<Symbol> symbols) |
void |
visit(NodeVisitor v)
Jumps are only used directly during code generation, and do
not support this interface.
|
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScope, toSource
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoop
addChild, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, setBounds, setLength, setParent, setPosition, setRelative, shortName, toSource
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
public java.lang.String getSourceName()
public void setSourceName(java.lang.String sourceName)
public int getEncodedSourceStart()
getEncodedSource()
returns non-null
.public void setEncodedSourceStart(int start)
getEncodedSource()
public int getEncodedSourceEnd()
getEncodedSource()
returns non-null
.public void setEncodedSourceEnd(int end)
getEncodedSource()
public void setEncodedSourceBounds(int start, int end)
getEncodedSource()
public void setEncodedSource(java.lang.String encodedSource)
getEncodedSource()
public java.lang.String getEncodedSource()
Object.toSource
method of
JavaScript objects. This source encoding is only recorded during code
generation. It must be passed back to
Decompiler.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 as Object.toSource
with respect to
formatting, parenthesization and other details.
null
if it was not recorded.public int getBaseLineno()
public void setBaseLineno(int lineno)
public int getEndLineno()
public void setEndLineno(int lineno)
public int getFunctionCount()
public FunctionNode getFunctionNode(int i)
public java.util.List<FunctionNode> getFunctions()
public int addFunction(FunctionNode fnNode)
FunctionNode
to the functions table for codegen.
Does not set the parent of the node.public int getRegexpCount()
public java.lang.String getRegexpString(int index)
public java.lang.String getRegexpFlags(int index)
public void addRegExp(RegExpLiteral re)
public int getIndexForNameNode(Node nameNode)
public java.lang.String getParamOrVarName(int index)
public int getParamCount()
public int getParamAndVarCount()
public java.lang.String[] getParamAndVarNames()
public boolean[] getParamAndVarConst()
public java.util.List<Symbol> getSymbols()
public void setSymbols(java.util.List<Symbol> symbols)
public void flattenSymbolTable(boolean flattenAllTables)
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.public java.lang.Object getCompilerData()
public void setCompilerData(java.lang.Object data)
public java.lang.String getNextTempName()
public void visit(NodeVisitor v)
Jump
Copyright © 2010 - 2020 Adobe. All Rights Reserved