1/** 2 * The base implementation of `_.conformsTo` which accepts `props` to check. 3 * 4 * @private 5 * @param {Object} object The object to inspect. 6 * @param {Object} source The object of property predicates to conform to. 7 * @returns {boolean} Returns `true` if `object` conforms, else `false`. 8 */ 9function baseConformsTo(object, source, props) { 10 var length = props.length; 11 if (object == null) { 12 return !length; 13 } 14 object = Object(object); 15 while (length--) { 16 var key = props[length], 17 predicate = source[key], 18 value = object[key]; 19 20 if ((value === undefined && !(key in object)) || !predicate(value)) { 21 return false; 22 } 23 } 24 return true; 25} 26 27module.exports = baseConformsTo; 28