Initial commit
[yaffs-website] / node_modules / sass-graph / node_modules / lodash / _baseMatchesProperty.js
1 var baseIsEqual = require('./_baseIsEqual'),
2     get = require('./get'),
3     hasIn = require('./hasIn'),
4     isKey = require('./_isKey'),
5     isStrictComparable = require('./_isStrictComparable'),
6     matchesStrictComparable = require('./_matchesStrictComparable'),
7     toKey = require('./_toKey');
8
9 /** Used to compose bitmasks for value comparisons. */
10 var COMPARE_PARTIAL_FLAG = 1,
11     COMPARE_UNORDERED_FLAG = 2;
12
13 /**
14  * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
15  *
16  * @private
17  * @param {string} path The path of the property to get.
18  * @param {*} srcValue The value to match.
19  * @returns {Function} Returns the new spec function.
20  */
21 function baseMatchesProperty(path, srcValue) {
22   if (isKey(path) && isStrictComparable(srcValue)) {
23     return matchesStrictComparable(toKey(path), srcValue);
24   }
25   return function(object) {
26     var objValue = get(object, path);
27     return (objValue === undefined && objValue === srcValue)
28       ? hasIn(object, path)
29       : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
30   };
31 }
32
33 module.exports = baseMatchesProperty;