index.js 951 B

123456789101112131415161718192021222324252627282930313233343536
  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 = require("@babel/plugin-syntax-throw-expressions");
  8. var _core = require("@babel/core");
  9. var _default = (0, _helperPluginUtils.declare)(api => {
  10. api.assertVersion(7);
  11. return {
  12. name: "proposal-throw-expressions",
  13. inherits: _pluginSyntaxThrowExpressions.default,
  14. visitor: {
  15. UnaryExpression(path) {
  16. const {
  17. operator,
  18. argument
  19. } = path.node;
  20. if (operator !== "throw") return;
  21. const arrow = _core.types.functionExpression(null, [_core.types.identifier("e")], _core.types.blockStatement([_core.types.throwStatement(_core.types.identifier("e"))]));
  22. path.replaceWith(_core.types.callExpression(arrow, [argument]));
  23. }
  24. }
  25. };
  26. });
  27. exports.default = _default;