1var baseIsMatch = require('./_baseIsMatch'), 2 getMatchData = require('./_getMatchData'), 3 matchesStrictComparable = require('./_matchesStrictComparable'); 4 5/** 6 * The base implementation of `_.matches` which doesn't clone `source`. 7 * 8 * @private 9 * @param {Object} source The object of property values to match. 10 * @returns {Function} Returns the new spec function. 11 */ 12function baseMatches(source) { 13 var matchData = getMatchData(source); 14 if (matchData.length == 1 && matchData[0][2]) { 15 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 16 } 17 return function(object) { 18 return object === source || baseIsMatch(object, source, matchData); 19 }; 20} 21 22module.exports = baseMatches; 23