org.mozilla.javascript

## Interface Evaluator

All Known Implementing Classes:
  Codegen, Interpreter

    public interface Evaluator

Abstraction of evaluation, which can be implemented either by an interpreter or compiler.

### Method Summary

Methods
`void` `captureStackInfo(RhinoException ex)` Capture stack information from the given exception.
`java.lang.Object` `compile(CompilerEnvirons compilerEnv, ScriptNode tree, java.lang.String encodedSource, boolean returnFunction)` Compile the script or function from intermediate representation tree into an executable form.
`Function` `createFunctionObject(Context cx, Scriptable scope, java.lang.Object bytecode, java.lang.Object staticSecurityDomain)` Create a function object.
`Script` `createScriptObject(java.lang.Object bytecode, java.lang.Object staticSecurityDomain)` Create a script object.
`java.lang.String` `getPatchedStack(RhinoException ex, java.lang.String nativeStackTrace)` Given a native stack trace, patch it with script-specific source and line information
`java.util.List<java.lang.String>` `getScriptStack(RhinoException ex)` Get the script stack for the given exception
`java.lang.String` `getSourcePositionFromStack(Context cx, int[] linep)` Get the source position information by examining the stack.
`void` `setEvalScriptFlag(Script script)` Mark the given script to indicate it was created by a call to eval() or to a Function constructor.

### Method Detail

#### compile

    java.lang.Object compile(CompilerEnvirons compilerEnv,
                           ScriptNode tree,
                           java.lang.String encodedSource,
                           boolean returnFunction)

Compile the script or function from intermediate representation tree into an executable form.

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

#### createFunctionObject

    Function createFunctionObject(Context cx,
                                Scriptable scope,
                                java.lang.Object bytecode,
                                java.lang.Object staticSecurityDomain)

Create a function object.

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

#### createScriptObject

    Script createScriptObject(java.lang.Object bytecode,
                            java.lang.Object staticSecurityDomain)

Create a script object.

Parameters:
  `bytecode` - opaque object returned by compile
  `staticSecurityDomain` - security domain
Returns:
  Script object that can be evaluated

#### captureStackInfo

    void captureStackInfo(RhinoException ex)

Capture stack information from the given exception.

Parameters:
  `ex` - an exception thrown during execution

#### getSourcePositionFromStack

    java.lang.String getSourcePositionFromStack(Context cx,
                                              int[] linep)

Get the source position information by examining the stack.

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

    java.lang.String getPatchedStack(RhinoException ex,
                                   java.lang.String nativeStackTrace)

Given a native stack trace, patch it with script-specific source and line information

Parameters:
  `ex` - exception
  `nativeStackTrace` - the native stack trace
Returns:
  patched stack trace

#### getScriptStack

    java.util.List<java.lang.String> getScriptStack(RhinoException ex)

Get the script stack for the given exception

Parameters:
  `ex` - exception from execution
Returns:
  list of strings for the stack trace

#### setEvalScriptFlag

    void setEvalScriptFlag(Script script)

Mark the given script to indicate it was created by a call to eval() or to a Function constructor.

Parameters:
  `script` - script to mark as from eval