1 var Stack = require(
'./_Stack'),
2 baseIsEqual = require(
'./_baseIsEqual');
5 var COMPARE_PARTIAL_FLAG = 1,
6 COMPARE_UNORDERED_FLAG = 2;
18 function baseIsMatch(
object, source, matchData, customizer) {
19 var index = matchData.length,
21 noCustomizer = !customizer;
26 object = Object(
object);
28 var data = matchData[index];
29 if ((noCustomizer && data[2])
30 ? data[1] !==
object[data[0]]
31 : !(data[0] in
object)
36 while (++index < length) {
37 data = matchData[index];
39 objValue =
object[key],
42 if (noCustomizer && data[2]) {
43 if (objValue === undefined && !(key in
object)) {
47 var stack =
new Stack;
49 var result = customizer(objValue, srcValue, key,
object, source, stack);
51 if (!(result === undefined
52 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
62 module.exports = baseIsMatch;