You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

es-proposals.js 1.4KB

1234567891011121314151617181920212223242526272829303132333435
  1. "use strict";;
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. var types_1 = __importDefault(require("../lib/types"));
  7. var shared_1 = __importDefault(require("../lib/shared"));
  8. var core_1 = __importDefault(require("./core"));
  9. function default_1(fork) {
  10. fork.use(core_1.default);
  11. var types = fork.use(types_1.default);
  12. var Type = types.Type;
  13. var def = types.Type.def;
  14. var or = Type.or;
  15. var shared = fork.use(shared_1.default);
  16. var defaults = shared.defaults;
  17. // https://github.com/tc39/proposal-optional-chaining
  18. // `a?.b` as per https://github.com/estree/estree/issues/146
  19. def("OptionalMemberExpression")
  20. .bases("MemberExpression")
  21. .build("object", "property", "computed", "optional")
  22. .field("optional", Boolean, defaults["true"]);
  23. // a?.b()
  24. def("OptionalCallExpression")
  25. .bases("CallExpression")
  26. .build("callee", "arguments", "optional")
  27. .field("optional", Boolean, defaults["true"]);
  28. // https://github.com/tc39/proposal-nullish-coalescing
  29. // `a ?? b` as per https://github.com/babel/babylon/pull/761/files
  30. var LogicalOperator = or("||", "&&", "??");
  31. def("LogicalExpression")
  32. .field("operator", LogicalOperator);
  33. }
  34. exports.default = default_1;
  35. module.exports = exports["default"];