UNPKG

calcium-lang

Version:
28 lines 983 B
import { default as Sym } from "../symbol"; import { AttributeNotFound } from "../error"; import { invoke } from "../util"; export default function createFunction({ address, name, params, parent, }) { const self = new Proxy({}, { get(target, property, receiver) { if (property === Sym.name) return name; else if (property === Sym.call) return (args, env) => { invoke({ address: address, args, env, params: params, parent: parent, }); }; else if (property === Sym.evaluate) return (env) => self; else if (property === Sym.class) return "function"; throw new AttributeNotFound(property.toString()); }, }); return self; } //# sourceMappingURL=function.js.map