index.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _helperPluginUtils = require("@babel/helper-plugin-utils");
  7. var _pluginSyntaxThrowExpressions = _interopRequireDefault(require("@babel/plugin-syntax-throw-expressions"));
  8. var _core = require("@babel/core");
  9. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  10. var _default = (0, _helperPluginUtils.declare)(api => {
  11. api.assertVersion(7);
  12. return {
  13. name: "proposal-throw-expressions",
  14. inherits: _pluginSyntaxThrowExpressions.default,
  15. visitor: {
  16. UnaryExpression(path) {
  17. const {
  18. operator,
  19. argument
  20. } = path.node;
  21. if (operator !== "throw") return;
  22. const arrow = _core.types.functionExpression(null, [_core.types.identifier("e")], _core.types.blockStatement([_core.types.throwStatement(_core.types.identifier("e"))]));
  23. path.replaceWith(_core.types.callExpression(arrow, [argument]));
  24. }
  25. }
  26. };
  27. });
  28. exports.default = _default;