UNPKG

calcium-lang

Version:
27 lines 743 B
import { evaluate } from "../util"; import { None } from "../factory"; import { Kind } from "../runtime/block"; /** * return an expression, if any (default `None`) */ export default class Return { constructor(expr) { this.expr = expr; } execute(env) { var _a; env.returnedValue = evaluate((_a = this.expr) !== null && _a !== void 0 ? _a : None, env); while (true) { const block = env.lastBlock; switch (block.kind) { case Kind.Call: block.exit(env); return; default: env.blocks.pop(); continue; } } } } //# sourceMappingURL=return.js.map