time-to-botec

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

_baseKeys.js (776B)


      1 var isPrototype = require('./_isPrototype'),
      2     nativeKeys = require('./_nativeKeys');
      3 
      4 /** Used for built-in method references. */
      5 var objectProto = Object.prototype;
      6 
      7 /** Used to check objects for own properties. */
      8 var hasOwnProperty = objectProto.hasOwnProperty;
      9 
     10 /**
     11  * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
     12  *
     13  * @private
     14  * @param {Object} object The object to query.
     15  * @returns {Array} Returns the array of property names.
     16  */
     17 function baseKeys(object) {
     18   if (!isPrototype(object)) {
     19     return nativeKeys(object);
     20   }
     21   var result = [];
     22   for (var key in Object(object)) {
     23     if (hasOwnProperty.call(object, key) && key != 'constructor') {
     24       result.push(key);
     25     }
     26   }
     27   return result;
     28 }
     29 
     30 module.exports = baseKeys;