@effectful/cc
Version:
Multi-prompt delimited continuations runtime
263 lines (262 loc) • 8.23 kB
JavaScript
"no-ctrl";
var $M = require("@effectful/debugger/apiMin"),
$x = $M.context,
$ret = $M.ret,
$unhandled = $M.unhandled,
$raise = $M.raise,
$force = $M.force,
$mcall = $M.mcall,
$m = $M.module("src/async.ts", null, typeof module === "undefined" ? null : module, null, "$", {
__webpack_require__: typeof __webpack_require__ !== "undefined" && __webpack_require__
}, null),
$s$1 = [{
_macro: [1, null],
CC: [2, null],
prompt: [3, "4:6-4:12"],
reify: [4, "14:16-14:21"],
reflect: [5, "35:16-35:23"]
}, null, 0],
$s$2 = [{
value: [1, "14:25-14:46"]
}, $s$1, 1],
$s$3 = [{
cont: [1, "15:27-15:31"]
}, $s$2, 2],
$s$4 = [{
value: [1, "17:11-17:16"]
}, $s$3, 3],
$s$5 = [{}, $s$4, 4],
$s$6 = [{
error: [1, "18:11-18:16"]
}, $s$3, 3],
$s$7 = [{}, $s$6, 4],
$s$8 = [{
body: [1, "35:27-35:40"],
resolve: [2, "36:6-36:33"],
reject: [3, "37:6-37:38"],
promise: [4, "38:8-38:15"]
}, $s$1, 1],
$s$9 = [{
rs: [1, "38:34-38:36"],
rj: [2, "38:38-38:40"]
}, $s$8, 2],
$s$10 = [{}, $s$8, 2],
$s$11 = [{
e: [1, "45:13-45:14"]
}, $s$10, 2],
$m$0 = $M.fun("m$0", "async.ts", null, null, [], 0, 6, "1:0-51:0", 160, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$l[4 /*reify*/] = $m$1($);
$l[5 /*reflect*/] = $m$7($);
module.exports.__esModule = true;
module.exports.reflect = $l[5 /*reflect*/];
module.exports.reify = $l[4 /*reify*/];
$l[1 /*_macro*/] = null;
$.goto = 1;
$p = ($x.moduleId = require.resolve("./main"), $force(require("./main")));
$.state = 1;
case 1:
$l[2 /*CC*/] = $p;
$.goto = 2;
$p = $mcall("newPrompt", $l[2 /*CC*/], "async");
$.state = 2;
case 2:
$l[3 /*prompt*/] = $p;
$.goto = 4;
continue;
case 3:
$.goto = 4;
return $unhandled($.error);
case 4:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, null, null, 0, [[2, null, $s$1], [2, "4:15-4:36", $s$1], [0, "4:6-4:36", $s$1], [16, "51:0-51:0", $s$1], [16, "51:0-51:0", $s$1]]),
$m$1 = $M.fun("m$1", "reify", null, $m$0, ["value"], 0, 2, "14:7-24:1", 128, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$.goto = 1;
$p = $mcall("shift", $l[0][2 /*CC*/], $l[0][3 /*prompt*/], $m$2($));
$.state = 1;
case 1:
$.result = $p;
$.goto = 3;
continue;
case 2:
$.goto = 3;
return $unhandled($.error);
case 3:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, null, null, 1, [[2, "15:9-23:7", $s$2], [0, null, $s$2], [16, "24:1-24:1", $s$2], [16, "24:1-24:1", $s$2]]),
$m$2 = $M.fun("m$2", null, null, $m$1, ["cont"], 0, 2, "15:26-22:9", 132, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$.goto = 1;
$p = $mcall("then", $l[0][1 /*value*/], $m$3($), $m$5($));
$.state = 1;
case 1:
$.result = $p;
$.goto = 3;
continue;
case 2:
$.goto = 3;
return $unhandled($.error);
case 3:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, null, null, 2, [[2, "16:8-22:9", $s$3], [0, null, $s$3], [16, "22:9-22:9", $s$3], [16, "22:9-22:9", $s$3]]),
$m$3 = $M.fun("m$3", null, null, $m$2, ["value"], 0, 2, "17:10-17:38", 132, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$.goto = 1;
$p = ($x.call = $l[0][1 /*cont*/])($m$4($));
$.state = 1;
case 1:
$.result = $p;
$.goto = 3;
continue;
case 2:
$.goto = 3;
return $unhandled($.error);
case 3:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, null, null, 3, [[2, "17:21-17:38", $s$4], [0, null, $s$4], [16, "17:38-17:38", $s$4], [16, "17:38-17:38", $s$4]]),
$m$4 = $M.fun("m$4", null, null, $m$3, [], 0, 1, "17:26-17:37", 132, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$.result = $l[0][1 /*value*/];
$.goto = 2;
continue;
case 1:
$.goto = 2;
return $unhandled($.error);
case 2:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, null, null, 4, [[0, null, $s$5], [16, "17:37-17:37", $s$5], [16, "17:37-17:37", $s$5]]),
$m$5 = $M.fun("m$5", null, null, $m$2, ["error"], 0, 2, "18:10-21:14", 132, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$.goto = 1;
$p = ($x.call = $l[0][1 /*cont*/])($m$6($));
$.state = 1;
case 1:
$.result = $p;
$.goto = 3;
continue;
case 2:
$.goto = 3;
return $unhandled($.error);
case 3:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, null, null, 3, [[2, "19:12-21:14", $s$6], [0, null, $s$6], [16, "21:14-21:14", $s$6], [16, "21:14-21:14", $s$6]]),
$m$6 = $M.fun("m$6", null, null, $m$5, [], 0, 1, "19:17-21:13", 132, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$.goto = 2;
return $raise($l[0][1 /*error*/]);
case 1:
$.goto = 2;
return $unhandled($.error);
case 2:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, null, null, 4, [[0, "20:14-20:26", $s$7], [16, "21:13-21:13", $s$7], [16, "21:13-21:13", $s$7]]),
$m$7 = $M.fun("m$7", "reflect", null, $m$0, ["body"], 0, 5, "35:7-50:1", 128, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$.goto = 1;
$p = new ($x.call = Promise)($m$8($));
$.state = 1;
case 1:
$l[4 /*promise*/] = $p;
$.goto = 2;
$mcall("pushPrompt", $l[0][2 /*CC*/], $l[0][3 /*prompt*/], $m$9($));
$.state = 2;
case 2:
$.result = $l[4 /*promise*/];
$.goto = 4;
continue;
case 3:
$.goto = 4;
return $unhandled($.error);
case 4:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, null, null, 1, [[2, "38:18-41:4", $s$8], [2, "42:2-48:4", $s$8], [0, null, $s$8], [16, "50:1-50:1", $s$8], [16, "50:1-50:1", $s$8]]),
$m$8 = $M.fun("m$8", null, null, $m$7, ["rs", "rj"], 0, 3, "38:33-41:3", 132, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$l[0][2 /*resolve*/] = $l[1 /*rs*/];
$l[0][3 /*reject*/] = $l[2 /*rj*/];
$.goto = 2;
continue;
case 1:
$.goto = 2;
return $unhandled($.error);
case 2:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, null, null, 2, [[0, "39:4-39:16", $s$9], [16, "41:3-41:3", $s$9], [16, "41:3-41:3", $s$9]]),
$m$9 = $M.fun("m$9", null, null, $m$7, [], 0, 3, "42:24-48:3", 128, function ($, $l, $p) {
for (;;) switch ($.state = $.goto) {
case 0:
$.state = 1;
case 1:
$l[2] = $l[0][2 /*resolve*/];
$.goto = 2;
$p = ($x.call = $l[0][1 /*body*/])();
$.state = 2;
case 2:
$.goto = 3;
($x.call = $l[2])($p);
$.state = 3;
case 3:
$.goto = 6;
continue;
case 4:
$l[1 /*e*/] = $.error;
$.error = void 0;
$.goto = 3;
($x.call = $l[0][3 /*reject*/])($l[1 /*e*/]);
continue;
case 5:
$.goto = 6;
return $unhandled($.error);
case 6:
return $ret($.result);
default:
throw new Error("Invalid state");
}
}, function ($, $l) {
switch ($.state) {
case 2:
case 1:
$.goto = 4;
break;
default:
$.goto = 5;
}
}, null, 2, [[0, null, $s$10], [3, "44:14-44:20", $s$10], [3, "44:6-44:21", $s$10], [0, null, $s$10], [2, "46:6-46:15", $s$11], [16, "48:3-48:3", $s$10], [16, "48:3-48:3", $s$10]]);
$M.moduleExports();