UNPKG

js-slang

Version:

Javascript-based implementations of Source, written in Typescript

21 lines (20 loc) 913 B
import * as es from 'estree'; import { Context, Node, Value } from '../types'; import Closure from './closure'; export type Evaluator<T extends Node> = (node: T, context: Context) => IterableIterator<Value>; /** * WARNING: Do not use object literal shorthands, e.g. * { * *Literal(node: es.Literal, ...) {...}, * *ThisExpression(node: es.ThisExpression, ..._ {...}, * ... * } * They do not minify well, raising uncaught syntax errors in production. * See: https://github.com/webpack/webpack/issues/7566 */ export declare const evaluators: { [nodeType: string]: Evaluator<Node>; }; export declare function evaluate(node: Node, context: Context): Generator<any, any, undefined>; export declare function apply(context: Context, fun: Closure | Value, args: Value[], node: es.CallExpression, thisContext?: Value): Generator<any, undefined, unknown>; export { evaluate as nonDetEvaluate };