"use strict"; exports.__esModule = true; exports.toComputedKey = toComputedKey; exports.ensureBlock = ensureBlock; exports.arrowFunctionToShadowed = arrowFunctionToShadowed; var _babelTypes = require("babel-types"); var t = _interopRequireWildcard(_babelTypes); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function toComputedKey() { var node = this.node; var key = void 0; if (this.isMemberExpression()) { key = node.property; } else if (this.isProperty() || this.isMethod()) { key = node.key; } else { throw new ReferenceError("todo"); } if (!node.computed) { if (t.isIdentifier(key)) key = t.stringLiteral(key.name); } return key; } function ensureBlock() { return t.ensureBlock(this.node); } function arrowFunctionToShadowed() { if (!this.isArrowFunctionExpression()) return; this.ensureBlock(); var node = this.node; node.expression = false; node.type = "FunctionExpression"; node.shadow = node.shadow || true; }