123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- "use strict";
- exports.__esModule = true;
- var _getIterator2 = require("babel-runtime/core-js/get-iterator");
- var _getIterator3 = _interopRequireDefault(_getIterator2);
- exports.default = function (_ref) {
- var t = _ref.types;
- function statementList(key, path) {
- var paths = path.get(key);
- for (var _iterator = paths, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
- var _ref2;
- if (_isArray) {
- if (_i >= _iterator.length) break;
- _ref2 = _iterator[_i++];
- } else {
- _i = _iterator.next();
- if (_i.done) break;
- _ref2 = _i.value;
- }
- var _path = _ref2;
- var func = _path.node;
- if (!_path.isFunctionDeclaration()) continue;
- var declar = t.variableDeclaration("let", [t.variableDeclarator(func.id, t.toExpression(func))]);
- declar._blockHoist = 2;
- func.id = null;
- _path.replaceWith(declar);
- }
- }
- return {
- visitor: {
- BlockStatement: function BlockStatement(path) {
- var node = path.node,
- parent = path.parent;
- if (t.isFunction(parent, { body: node }) || t.isExportDeclaration(parent)) {
- return;
- }
- statementList("body", path);
- },
- SwitchCase: function SwitchCase(path) {
- statementList("consequent", path);
- }
- }
- };
- };
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- module.exports = exports["default"];
|