UNPKG

@effectful/cc

Version:

Multi-prompt delimited continuations runtime

38 lines (36 loc) 954 B
"use strict"; exports.__esModule = true; exports.copyFrame = exports.SubCont = exports.Prompt = exports.FrameFlags = void 0; exports.newPrompt = newPrompt; exports.push = exports.pop = void 0; var _ctrl = require("@effectful/debugger/ctrl"); exports.Frame = _ctrl.Frame; exports.copyFrame = _ctrl.copyFrame; exports.push = _ctrl.push; exports.pop = _ctrl.pop; var _state = require("@effectful/debugger/state"); exports.context = _state.context; exports.FrameFlags = _state.FrameFlags; let promptId = 0; class Prompt { id = promptId++; stack = []; constructor(name) { this.name = name; } } exports.Prompt = Prompt; class SubCont { constructor(from, till) { this.from = from; this.till = till; } } /** * Creates a new prompt, distinct from all existing prompts */ exports.SubCont = SubCont; function newPrompt() { let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "p"; return new Prompt(name); }