time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

_baseConformsTo.js (718B)


      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  */
      9 function 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 
     27 module.exports = baseConformsTo;