code: function hasPath(object, path, hasFunc) {
    path = _castPath(path, object);
  
    var index = -1,
        length = path.length,
        result = false;
  
    while (++index < length) {
      var key = _toKey(path[index]);
      if (!(result = object != null && hasFunc(object, key))) {
        break;
      }
      object = object[key];
    }
    if (result || ++index != length) {
      return result;
    }
    length = object == null ? 0 : object.length;
    return !!length && isLength_1(length) && _isIndex(key, length) &&
      (isArray_1(object) || isArguments_1(object));
  }
docs: Checks if `path` exists on `object`.
  
  @private
  @param {Object} object The object to query.
  @param {Array|string} path The path to check.
  @param {Function} hasFunc The function to check properties.
  @returns {boolean} Returns `true` if `path` exists, else `false`.