* The base implementation of `_.conformsTo` which accepts `props` to check. * * @private * @param {Object} object The object to inspect. * @param {Object} source The object of property predicates to conform to. * @returns {boolean} Returns `true` if `object` conforms, else `
(object, source, props)
| 2763 | * @returns {boolean} Returns `true` if `object` conforms, else `false`. |
| 2764 | */ |
| 2765 | function baseConformsTo(object, source, props) { |
| 2766 | var length = props.length; |
| 2767 | if (object == null) { |
| 2768 | return !length; |
| 2769 | } |
| 2770 | object = Object(object); |
| 2771 | while (length--) { |
| 2772 | var key = props[length], |
| 2773 | predicate = source[key], |
| 2774 | value = object[key]; |
| 2775 | |
| 2776 | if ((value === undefined && !(key in object)) || !predicate(value)) { |
| 2777 | return false; |
| 2778 | } |
| 2779 | } |
| 2780 | return true; |
| 2781 | } |
| 2782 | |
| 2783 | /** |
| 2784 | * The base implementation of `_.delay` and `_.defer` which accepts `args` |
no test coverage detected