code: function hasPath(object, path, hasFunc) {
          if (object == null) {
            return false;
          }
          var result = hasFunc(object, path);
          if (!result && !isKey(path)) {
            path = baseCastPath(path);
            object = parent(object, path);
            if (object != null) {
              path = last(path);
              result = hasFunc(object, path);
            }
          }
          var length = object ? object.length : undefined;
          return result || !!length && isLength(length) && isIndex(path, length) && (isArray(object) || isString(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`.