import baseIsEqual from "./_baseIsEqual.mjs";
import get from "./get.mjs";
import hasIn from "./hasIn.mjs";
import isKey from "./_isKey.mjs";
import isStrictComparable from "./_isStrictComparable.mjs";
import matchesStrictComparable from "./_matchesStrictComparable.mjs";
import toKey from "./_toKey.mjs";
var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
function baseMatchesProperty(path, srcValue) {
  if (isKey(path) && isStrictComparable(srcValue)) {
    return matchesStrictComparable(toKey(path), srcValue);
  }
  return function(object) {
    var objValue = get(object, path);
    return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
  };
}
export {
  baseMatchesProperty as default
};
