whole_func_string: function hasPath(object, path, hasFunc) {
  	  path = isKey$1(path, object) ? [path] : castPath$1(path);
  
  	  var result,
  	      index = -1,
  	      length = path.length;
  
  	  while (++index < length) {
  	    var key = toKey$1(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$1(object) || isArguments(object));
  	}
func_code_string: function hasPath(object, path, hasFunc) {
  	  path = isKey$1(path, object) ? [path] : castPath$1(path);
  
  	  var result,
  	      index = -1,
  	      length = path.length;
  
  	  while (++index < length) {
  	    var key = toKey$1(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$1(object) || isArguments(object));
  	}
func_documentation_string: 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`.