Evaluator

interface Evaluator

What it takes to turn an IR tree into something runnable. Upstream has two implementations, an interpreter and a bytecode compiler; this port only ever has the interpreter.

Inheritors

Functions

Link copied to clipboard

Records where in the script ex was thrown.

Link copied to clipboard
abstract fun compile(compilerEnv: CompilerEnvirons, tree: ScriptNode, rawSource: String, returnFunction: Boolean): Any

Compiles tree into a runnable form.

Link copied to clipboard
abstract fun createFunctionObject(cx: Context, scope: Scriptable, bytecode: Any, staticSecurityDomain: Any?): Function

Wraps compiled bytecode as a callable function living in scope.

Link copied to clipboard
abstract fun createScriptObject(bytecode: Any, staticSecurityDomain: Any?): Script

Wraps compiled bytecode as a runnable script.

Link copied to clipboard
abstract fun getPatchedStack(ex: RhinoException, nativeStackTrace: String): String

Rewrites a platform stack trace so it names script sources and lines.

Link copied to clipboard

The script-level stack for ex, one entry per frame.

Link copied to clipboard

Reads the current source position off the interpreter stack. The line number is written to linep[0]; the return value is the source name.

Link copied to clipboard
abstract fun setEvalScriptFlag(script: Script)

Marks script as having come from eval or the Function constructor.