UNPKG

710 BJavaScriptView Raw
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;