50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
![]() |
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = exports.PARAM_YIELD = exports.PARAM_RETURN = exports.PARAM_IN = exports.PARAM_AWAIT = exports.PARAM = void 0;
|
||
|
exports.functionFlags = functionFlags;
|
||
|
const PARAM = 0b0000,
|
||
|
PARAM_YIELD = 0b0001,
|
||
|
PARAM_AWAIT = 0b0010,
|
||
|
PARAM_RETURN = 0b0100,
|
||
|
PARAM_IN = 0b1000;
|
||
|
exports.PARAM_IN = PARAM_IN;
|
||
|
exports.PARAM_RETURN = PARAM_RETURN;
|
||
|
exports.PARAM_AWAIT = PARAM_AWAIT;
|
||
|
exports.PARAM_YIELD = PARAM_YIELD;
|
||
|
exports.PARAM = PARAM;
|
||
|
class ProductionParameterHandler {
|
||
|
constructor() {
|
||
|
this.stacks = [];
|
||
|
}
|
||
|
enter(flags) {
|
||
|
this.stacks.push(flags);
|
||
|
}
|
||
|
exit() {
|
||
|
this.stacks.pop();
|
||
|
}
|
||
|
currentFlags() {
|
||
|
return this.stacks[this.stacks.length - 1];
|
||
|
}
|
||
|
get hasAwait() {
|
||
|
return (this.currentFlags() & PARAM_AWAIT) > 0;
|
||
|
}
|
||
|
get hasYield() {
|
||
|
return (this.currentFlags() & PARAM_YIELD) > 0;
|
||
|
}
|
||
|
get hasReturn() {
|
||
|
return (this.currentFlags() & PARAM_RETURN) > 0;
|
||
|
}
|
||
|
get hasIn() {
|
||
|
return (this.currentFlags() & PARAM_IN) > 0;
|
||
|
}
|
||
|
}
|
||
|
exports.default = ProductionParameterHandler;
|
||
|
function functionFlags(isAsync, isGenerator) {
|
||
|
return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);
|
||
|
}
|
||
|
|
||
|
//# sourceMappingURL=production-parameter.js.map
|