text: /*istanbul ignore next*/"use strict";
  
  exports.__esModule = true;
  exports.definitions = undefined;
  
  exports.default = function ( /*istanbul ignore next*/_ref) {
    /*istanbul ignore next*/var t = _ref.types;
  
    var RUNTIME_MODULE_NAME = "babel-runtime";
  
    function has(obj, key) {
      return Object.prototype.hasOwnProperty.call(obj, key);
    }
  
    return {
      visitor: {
        // Array.from -> _core.Array.from
        MemberExpression: { /*istanbul ignore next*/
          enter: function enter(path, state) {
            if (state.opts.polyfill === false) return;
            if (!path.isReferenced()) return;
  
            /*istanbul ignore next*/var node = path.node;
  
            var obj = node.object;
            var prop = node.property;
  
            if (!t.isReferenced(obj, node)) return;
            if (node.computed) return;
            if (!has( /*istanbul ignore next*/_definitions2.default.methods, obj.name)) return;
  
            var methods = /*istanbul ignore next*/_definitions2.default.methods[obj.name];
            if (!has(methods, prop.name)) return;
  
            // doesn't reference the global
            if (path.scope.getBindingIdentifier(obj.name)) return;
  
            path.replaceWith(state.addImport( /*istanbul ignore next*/RUNTIME_MODULE_NAME + "/core-js/" + methods[prop.name], "default", /*istanbul ignore next*/obj.name + "$" + prop.name));
          }
        }
      }
    };
  };
  
  var /*istanbul ignore next*/_definitions = require("./definitions");
  
  /*istanbul ignore next*/
  var _definitions2 = _interopRequireDefault(_definitions);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  exports.definitions = _definitions2.default;