code: function _getPathKey (target, key, includeNonEnumerables) {
      if (includeNonEnumerables && key in Object(target) || _isEnumerable(target, key)) {
          return key;
      }
  
      var n = +key;
      var len = target && target.length;
  
      return n >= -len && n < len ? n < 0 ? n + len : n : void 0;
  }
docs: Helper to retrieve the correct key while evaluating a path.
  @private
  @param {Object} target
  @param {String} key
  @param {Boolean} includeNonEnumerables
  @returns {String|Number|Undefined}