@effectful/cc
Version:
Multi-prompt delimited continuations runtime
38 lines (36 loc) • 954 B
JavaScript
;
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);
}