code: function hasPath(object, path, hasFunc) {
      path = isKey(path, object) ? [path] : castPath(path);
  
      var result,
          index = -1,
          length = path.length;
  
      while (++index < length) {
        var key = toKey(path[index]);
        if (!(result = object != null && hasFunc(object, key))) {
          break;
        }
        object = object[key];
      }
      if (result) {
        return result;
      }
      var length = object ? object.length : 0;
      return !!length && isLength(length) && isIndex(key, length) &&
        (isArray(object) || isArguments(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`.