text: import baseIsEqual from "./_baseIsEqual.js";
  import get from "./get.js";
  import hasIn from "./hasIn.js";
  import isKey from "./_isKey.js";
  import isStrictComparable from "./_isStrictComparable.js";
  import matchesStrictComparable from "./_matchesStrictComparable.js";
  import toKey from "./_toKey.js";
  
  /** Used to compose bitmasks for value comparisons. */
  var COMPARE_PARTIAL_FLAG = 1,
    COMPARE_UNORDERED_FLAG = 2;
  
  /**
   * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
   *
   * @private
   * @param {string} path The path of the property to get.
   * @param {*} srcValue The value to match.
   * @returns {Function} Returns the new spec function.
   */
  function baseMatchesProperty(path, srcValue) {
    if (isKey(path) && isStrictComparable(srcValue)) {
      return matchesStrictComparable(toKey(path), srcValue);
    }
    return function (object) {
      var objValue = get(object, path);
      return (objValue === undefined && objValue === srcValue)
        ? hasIn(object, path)
        : baseIsEqual(
          srcValue,
          objValue,
          COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG,
        );
    };
  }
  
  export default baseMatchesProperty;
  