| 
								
							 | 
							
								var baseIsEqual = require('./_baseIsEqual'),
							 | 
						
						
						
							| 
								
							 | 
							
								    get = require('./get'),
							 | 
						
						
						
							| 
								
							 | 
							
								    hasIn = require('./hasIn'),
							 | 
						
						
						
							| 
								
							 | 
							
								    isKey = require('./_isKey'),
							 | 
						
						
						
							| 
								
							 | 
							
								    isStrictComparable = require('./_isStrictComparable'),
							 | 
						
						
						
							| 
								
							 | 
							
								    matchesStrictComparable = require('./_matchesStrictComparable'),
							 | 
						
						
						
							| 
								
							 | 
							
								    toKey = require('./_toKey');
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** 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);
							 | 
						
						
						
							| 
								
							 | 
							
								  };
							 | 
						
						
						
							| 
								
							 | 
							
								}
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								module.exports = baseMatchesProperty;
							 |