Class ScriptNode

    • Constructor Detail

      • ScriptNode

        public ScriptNode()
      • ScriptNode

        public ScriptNode​(int pos)
    • Method Detail

      • getSourceName

        public String getSourceName()
        Returns the URI, path or descriptive text indicating the origin of this script's source code.
      • setSourceName

        public void setSourceName​(String sourceName)
        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 if getEncodedSource() returns non-null.
      • setEncodedSourceStart

        public void setEncodedSourceStart​(int start)
        Used by code generator.
        See Also:
        getEncodedSource()
      • getEncodedSourceEnd

        public int getEncodedSourceEnd()
        Returns the end offset of the encoded source. Only valid if getEncodedSource() returns non-null.
      • setEncodedSourceEnd

        public void setEncodedSourceEnd​(int end)
        Used by code generator.
        See Also:
        getEncodedSource()
      • setEncodedSourceBounds

        public void setEncodedSourceBounds​(int start,
                                           int end)
        Used by code generator.
        See Also:
        getEncodedSource()
      • setEncodedSource

        public void setEncodedSource​(String encodedSource)
        Used by the code generator.
        See Also:
        getEncodedSource()
      • getEncodedSource

        public 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. 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.

        Returns:
        the encoded 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

        public FunctionNode getFunctionNode​(int i)
      • addFunction

        public int addFunction​(FunctionNode fnNode)
        Adds a FunctionNode 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

        public String getRegexpString​(int index)
      • getRegexpFlags

        public String getRegexpFlags​(int index)
      • addRegExp

        public void addRegExp​(RegExpLiteral re)
        Called by IRFactory to add a RegExp to the regexp table.
      • getIndexForNameNode

        public int getIndexForNameNode​(Node nameNode)
      • getParamOrVarName

        public String getParamOrVarName​(int index)
      • getParamCount

        public int getParamCount()
      • getParamAndVarCount

        public int getParamAndVarCount()
      • getParamAndVarNames

        public String[] getParamAndVarNames()
      • getParamAndVarConst

        public boolean[] getParamAndVarConst()
      • setSymbols

        public void setSymbols​(List<Symbol> symbols)
      • 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

        public Object getCompilerData()
      • setCompilerData

        public void setCompilerData​(Object data)
      • getNextTempName

        public String getNextTempName()
      • visit

        public void visit​(NodeVisitor v)
        Description copied from class: Jump
        Jumps are only used directly during code generation, and do not support this interface.
        Overrides:
        visit in class Scope
        Parameters:
        v - the object to call with this node and its children