occam-languages 2.1.17 → 2.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -36,7 +36,20 @@ function breakable(innerFunction) {
|
|
|
36
36
|
const continuation = remainingArguments.pop(), context = remainingArguments.pop();
|
|
37
37
|
this.break(context, ()=>{
|
|
38
38
|
setImmediate(()=>{
|
|
39
|
-
|
|
39
|
+
// 1. Identify what we are about to run
|
|
40
|
+
const nodeString = this.getString ? this.getString() : 'Unknown Node';
|
|
41
|
+
const funcName = innerFunction.name || 'anonymous function';
|
|
42
|
+
const watchdog = setTimeout(()=>{
|
|
43
|
+
console.error(`\n🚨 CONTINUATION LEAK DETECTED!`);
|
|
44
|
+
console.error(`Function: ${funcName}`);
|
|
45
|
+
console.error(`Node: ${nodeString}`);
|
|
46
|
+
console.error(`The baton was passed here but never handed back.\n`);
|
|
47
|
+
}, 2000);
|
|
48
|
+
const safeContinuation = (...args)=>{
|
|
49
|
+
clearTimeout(watchdog);
|
|
50
|
+
continuation(...args);
|
|
51
|
+
};
|
|
52
|
+
innerFunction.call(this, ...remainingArguments, context, safeContinuation);
|
|
40
53
|
});
|
|
41
54
|
});
|
|
42
55
|
};
|
|
@@ -79,4 +92,4 @@ const _default = {
|
|
|
79
92
|
lineIndexFromNodeAndTokens
|
|
80
93
|
};
|
|
81
94
|
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJlYWtQb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgc2V0SW1tZWRpYXRlKCgpID0+
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJlYWtQb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgICAgLy8gMS4gSWRlbnRpZnkgd2hhdCB3ZSBhcmUgYWJvdXQgdG8gcnVuXG4gICAgICAgIGNvbnN0IG5vZGVTdHJpbmcgPSB0aGlzLmdldFN0cmluZyA/IHRoaXMuZ2V0U3RyaW5nKCkgOiAnVW5rbm93biBOb2RlJztcbiAgICAgICAgY29uc3QgZnVuY05hbWUgPSBpbm5lckZ1bmN0aW9uLm5hbWUgfHwgJ2Fub255bW91cyBmdW5jdGlvbic7XG5cbiAgICAgICAgY29uc3Qgd2F0Y2hkb2cgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBcXG7wn5qoIENPTlRJTlVBVElPTiBMRUFLIERFVEVDVEVEIWApO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZ1bmN0aW9uOiAke2Z1bmNOYW1lfWApO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYE5vZGU6ICR7bm9kZVN0cmluZ31gKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBUaGUgYmF0b24gd2FzIHBhc3NlZCBoZXJlIGJ1dCBuZXZlciBoYW5kZWQgYmFjay5cXG5gKTtcbiAgICAgICAgfSwgMjAwMCk7XG5cbiAgICAgICAgY29uc3Qgc2FmZUNvbnRpbnVhdGlvbiA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHdhdGNoZG9nKTtcbiAgICAgICAgICBjb250aW51YXRpb24oLi4uYXJncyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCwgc2FmZUNvbnRpbnVhdGlvbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbn1cblxuLy8gZXhwb3J0IGZ1bmN0aW9uIF9icmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuLy8gICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4vLyAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuLy8gICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG4vL1xuLy8gICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuLy8gICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbi8vICAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCwgY29udGludWF0aW9uKTtcbi8vICAgICAgIH0pO1xuLy8gICAgIH0pO1xuLy8gICB9O1xuLy8gfVxuXG5leHBvcnQgZnVuY3Rpb24gYnJlYWtQb2ludEZyb21KU09OKGpzb24pIHtcbiAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgKHsgYnJlYWtQb2ludCB9ID0ganNvbik7XG5cbiAgaWYgKGJyZWFrUG9pbnQgIT09IG51bGwpIHtcbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnQ7ICAvLy9cblxuICAgIGpzb24gPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgYnJlYWtQb2ludCA9IEJyZWFrUG9pbnQuZnJvbUpTT04oanNvbik7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBicmVha1BvaW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCkge1xuICBsZXQgYnJlYWtQb2ludEpTT04gPSBudWxsO1xuXG4gIGlmIChicmVha1BvaW50ICE9PSBudWxsKSB7XG4gICAgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50LnRvSlNPTigpO1xuICB9XG5cbiAgcmV0dXJuIGJyZWFrUG9pbnRKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSB7XG4gIGxldCBsaW5lSW5kZXggPSAwO1xuXG4gIGNvbnN0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpO1xuXG4gIHRva2Vucy5zb21lKCh0b2tlbiwgdG9rZW5JbmRleCkgPT4ge1xuICAgIGNvbnN0IHRva2VuRW5kT2ZMaW5lVG9rZW4gPSB0b2tlbi5pc0VuZE9mTGluZVRva2VuKCk7XG5cbiAgICBpZiAodG9rZW5FbmRPZkxpbmVUb2tlbikge1xuICAgICAgbGluZUluZGV4ICs9IDE7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuSW5kZXggPT09IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBsaW5lSW5kZXg7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYnJlYWthYmxlLFxuICBicmVha1BvaW50RnJvbUpTT04sXG4gIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OLFxuICBsaW5lSW5kZXhGcm9tTm9kZUFuZFRva2Vuc1xufTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrYWJsZSIsImxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zIiwiaW5uZXJGdW5jdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsImNvbnRleHQiLCJicmVhayIsInNldEltbWVkaWF0ZSIsIm5vZGVTdHJpbmciLCJnZXRTdHJpbmciLCJmdW5jTmFtZSIsIm5hbWUiLCJ3YXRjaGRvZyIsInNldFRpbWVvdXQiLCJjb25zb2xlIiwiZXJyb3IiLCJzYWZlQ29udGludWF0aW9uIiwiYXJncyIsImNsZWFyVGltZW91dCIsImNhbGwiLCJqc29uIiwiYnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwiQnJlYWtQb2ludCIsImZyb21KU09OIiwidG9KU09OIiwibm9kZSIsInRva2VucyIsImxpbmVJbmRleCIsImZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJzb21lIiwidG9rZW4iLCJ0b2tlbkluZGV4IiwidG9rZW5FbmRPZkxpbmVUb2tlbiIsImlzRW5kT2ZMaW5lVG9rZW4iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQThDZ0JBO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBMURBQztlQUFBQTs7UUF3RmhCO2VBQUE7O1FBcEJnQkM7ZUFBQUE7OzttRUF0RU87Ozs7OztBQUVoQixTQUFTRCxVQUFVRSxhQUFhO0lBQ3JDLE9BQU8sU0FBUyxHQUFHQyxrQkFBa0I7UUFDbkMsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDQyxVQUFVSCxtQkFBbUJFLEdBQUc7UUFFdEMsSUFBSSxDQUFDRSxLQUFLLENBQUNELFNBQVM7WUFDbEJFLGFBQWE7Z0JBQ1gsdUNBQXVDO2dCQUN2QyxNQUFNQyxhQUFhLElBQUksQ0FBQ0MsU0FBUyxHQUFHLElBQUksQ0FBQ0EsU0FBUyxLQUFLO2dCQUN2RCxNQUFNQyxXQUFXVCxjQUFjVSxJQUFJLElBQUk7Z0JBRXZDLE1BQU1DLFdBQVdDLFdBQVc7b0JBQzFCQyxRQUFRQyxLQUFLLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztvQkFDaERELFFBQVFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRUwsVUFBVTtvQkFDckNJLFFBQVFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRVAsWUFBWTtvQkFDbkNNLFFBQVFDLEtBQUssQ0FBQyxDQUFDLGtEQUFrRCxDQUFDO2dCQUNwRSxHQUFHO2dCQUVILE1BQU1DLG1CQUFtQixDQUFDLEdBQUdDO29CQUMzQkMsYUFBYU47b0JBQ2JULGdCQUFnQmM7Z0JBQ2xCO2dCQUVBaEIsY0FBY2tCLElBQUksQ0FBQyxJQUFJLEtBQUtqQixvQkFBb0JHLFNBQVNXO1lBQzNEO1FBQ0Y7SUFDRjtBQUNGO0FBZU8sU0FBU25CLG1CQUFtQnVCLElBQUk7SUFDckMsSUFBSUM7SUFFSCxDQUFBLEVBQUVBLFVBQVUsRUFBRSxHQUFHRCxJQUFHO0lBRXJCLElBQUlDLGVBQWUsTUFBTTtRQUN2QixNQUFNQyxpQkFBaUJELFlBQWEsR0FBRztRQUV2Q0QsT0FBT0UsZ0JBQWlCLEdBQUc7UUFFM0JELGFBQWFFLG1CQUFVLENBQUNDLFFBQVEsQ0FBQ0osT0FBUSxHQUFHO0lBQzlDO0lBRUEsT0FBT0M7QUFDVDtBQUVPLFNBQVN2QiwyQkFBMkJ1QixVQUFVO0lBQ25ELElBQUlDLGlCQUFpQjtJQUVyQixJQUFJRCxlQUFlLE1BQU07UUFDdkJDLGlCQUFpQkQsV0FBV0ksTUFBTTtJQUNwQztJQUVBLE9BQU9IO0FBQ1Q7QUFFTyxTQUFTdEIsMkJBQTJCMEIsSUFBSSxFQUFFQyxNQUFNO0lBQ3JELElBQUlDLFlBQVk7SUFFaEIsTUFBTUMsNkJBQTZCSCxLQUFLSSw2QkFBNkIsQ0FBQ0g7SUFFdEVBLE9BQU9JLElBQUksQ0FBQyxDQUFDQyxPQUFPQztRQUNsQixNQUFNQyxzQkFBc0JGLE1BQU1HLGdCQUFnQjtRQUVsRCxJQUFJRCxxQkFBcUI7WUFDdkJOLGFBQWE7UUFDZjtRQUVBLElBQUlLLGVBQWVKLDRCQUE0QjtZQUM3QyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9EO0FBQ1Q7TUFFQSxXQUFlO0lBQ2I3QjtJQUNBRjtJQUNBQztJQUNBRTtBQUNGIn0=
|
package/package.json
CHANGED
|
@@ -9,12 +9,41 @@ export function breakable(innerFunction) {
|
|
|
9
9
|
|
|
10
10
|
this.break(context, () => {
|
|
11
11
|
setImmediate(() => {
|
|
12
|
-
|
|
12
|
+
// 1. Identify what we are about to run
|
|
13
|
+
const nodeString = this.getString ? this.getString() : 'Unknown Node';
|
|
14
|
+
const funcName = innerFunction.name || 'anonymous function';
|
|
15
|
+
|
|
16
|
+
const watchdog = setTimeout(() => {
|
|
17
|
+
console.error(`\n🚨 CONTINUATION LEAK DETECTED!`);
|
|
18
|
+
console.error(`Function: ${funcName}`);
|
|
19
|
+
console.error(`Node: ${nodeString}`);
|
|
20
|
+
console.error(`The baton was passed here but never handed back.\n`);
|
|
21
|
+
}, 2000);
|
|
22
|
+
|
|
23
|
+
const safeContinuation = (...args) => {
|
|
24
|
+
clearTimeout(watchdog);
|
|
25
|
+
continuation(...args);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
innerFunction.call(this, ...remainingArguments, context, safeContinuation);
|
|
13
29
|
});
|
|
14
30
|
});
|
|
15
31
|
};
|
|
16
32
|
}
|
|
17
33
|
|
|
34
|
+
// export function _breakable(innerFunction) {
|
|
35
|
+
// return function(...remainingArguments) {
|
|
36
|
+
// const continuation = remainingArguments.pop(),
|
|
37
|
+
// context = remainingArguments.pop();
|
|
38
|
+
//
|
|
39
|
+
// this.break(context, () => {
|
|
40
|
+
// setImmediate(() => {
|
|
41
|
+
// innerFunction.call(this, ...remainingArguments, context, continuation);
|
|
42
|
+
// });
|
|
43
|
+
// });
|
|
44
|
+
// };
|
|
45
|
+
// }
|
|
46
|
+
|
|
18
47
|
export function breakPointFromJSON(json) {
|
|
19
48
|
let breakPoint;
|
|
20
49
|
|