Class Codegen

  • All Implemented Interfaces:
    Evaluator

    public class Codegen
    extends java.lang.Object
    implements Evaluator
    This class generates code for a given IR tree.
    • Constructor Detail

      • Codegen

        public Codegen()
    • Method Detail

      • captureStackInfo

        public void captureStackInfo​(RhinoException ex)
        Description copied from interface: Evaluator
        Capture stack information from the given exception.
        Specified by:
        captureStackInfo in interface Evaluator
        Parameters:
        ex - an exception thrown during execution
      • getSourcePositionFromStack

        public java.lang.String getSourcePositionFromStack​(Context cx,
                                                           int[] linep)
        Description copied from interface: Evaluator
        Get the source position information by examining the stack.
        Specified by:
        getSourcePositionFromStack in interface Evaluator
        Parameters:
        cx - Context
        linep - Array object of length >= 1; getSourcePositionFromStack will assign the line number to linep[0].
        Returns:
        the name of the file or other source container
      • getPatchedStack

        public java.lang.String getPatchedStack​(RhinoException ex,
                                                java.lang.String nativeStackTrace)
        Description copied from interface: Evaluator
        Given a native stack trace, patch it with script-specific source and line information
        Specified by:
        getPatchedStack in interface Evaluator
        Parameters:
        ex - exception
        nativeStackTrace - the native stack trace
        Returns:
        patched stack trace
      • getScriptStack

        public java.util.List<java.lang.String> getScriptStack​(RhinoException ex)
        Description copied from interface: Evaluator
        Get the script stack for the given exception
        Specified by:
        getScriptStack in interface Evaluator
        Parameters:
        ex - exception from execution
        Returns:
        list of strings for the stack trace
      • setEvalScriptFlag

        public void setEvalScriptFlag​(Script script)
        Description copied from interface: Evaluator
        Mark the given script to indicate it was created by a call to eval() or to a Function constructor.
        Specified by:
        setEvalScriptFlag in interface Evaluator
        Parameters:
        script - script to mark as from eval
      • compile

        public java.lang.Object compile​(CompilerEnvirons compilerEnv,
                                        ScriptNode tree,
                                        java.lang.String encodedSource,
                                        boolean returnFunction)
        Description copied from interface: Evaluator
        Compile the script or function from intermediate representation tree into an executable form.
        Specified by:
        compile in interface Evaluator
        Parameters:
        compilerEnv - Compiler environment
        tree - parse tree
        encodedSource - encoding of the source code for decompilation
        returnFunction - if true, compiling a function
        Returns:
        an opaque object that can be passed to either createFunctionObject or createScriptObject, depending on the value of returnFunction
      • createScriptObject

        public Script createScriptObject​(java.lang.Object bytecode,
                                         java.lang.Object staticSecurityDomain)
        Description copied from interface: Evaluator
        Create a script object.
        Specified by:
        createScriptObject in interface Evaluator
        Parameters:
        bytecode - opaque object returned by compile
        staticSecurityDomain - security domain
        Returns:
        Script object that can be evaluated
      • createFunctionObject

        public Function createFunctionObject​(Context cx,
                                             Scriptable scope,
                                             java.lang.Object bytecode,
                                             java.lang.Object staticSecurityDomain)
        Description copied from interface: Evaluator
        Create a function object.
        Specified by:
        createFunctionObject in interface Evaluator
        Parameters:
        cx - Current context
        scope - scope of the function
        bytecode - opaque object returned by compile
        staticSecurityDomain - security domain
        Returns:
        Function object that can be called
      • compileToClassFile

        public byte[] compileToClassFile​(CompilerEnvirons compilerEnv,
                                         java.lang.String mainClassName,
                                         ScriptNode scriptOrFn,
                                         java.lang.String encodedSource,
                                         boolean returnFunction)
      • setMainMethodClass

        public void setMainMethodClass​(java.lang.String className)