1234567891011121314151617181920212223242526272829303132333435 |
- "use strict";;
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- var types_1 = __importDefault(require("../lib/types"));
- var shared_1 = __importDefault(require("../lib/shared"));
- var core_1 = __importDefault(require("./core"));
- function default_1(fork) {
- fork.use(core_1.default);
- var types = fork.use(types_1.default);
- var Type = types.Type;
- var def = types.Type.def;
- var or = Type.or;
- var shared = fork.use(shared_1.default);
- var defaults = shared.defaults;
- // https://github.com/tc39/proposal-optional-chaining
- // `a?.b` as per https://github.com/estree/estree/issues/146
- def("OptionalMemberExpression")
- .bases("MemberExpression")
- .build("object", "property", "computed", "optional")
- .field("optional", Boolean, defaults["true"]);
- // a?.b()
- def("OptionalCallExpression")
- .bases("CallExpression")
- .build("callee", "arguments", "optional")
- .field("optional", Boolean, defaults["true"]);
- // https://github.com/tc39/proposal-nullish-coalescing
- // `a ?? b` as per https://github.com/babel/babylon/pull/761/files
- var LogicalOperator = or("||", "&&", "??");
- def("LogicalExpression")
- .field("operator", LogicalOperator);
- }
- exports.default = default_1;
- module.exports = exports["default"];
|