time-to-botec

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

_getSymbols.js (886B)


      1 var arrayFilter = require('./_arrayFilter'),
      2     stubArray = require('./stubArray');
      3 
      4 /** Used for built-in method references. */
      5 var objectProto = Object.prototype;
      6 
      7 /** Built-in value references. */
      8 var propertyIsEnumerable = objectProto.propertyIsEnumerable;
      9 
     10 /* Built-in method references for those with the same name as other `lodash` methods. */
     11 var nativeGetSymbols = Object.getOwnPropertySymbols;
     12 
     13 /**
     14  * Creates an array of the own enumerable symbols of `object`.
     15  *
     16  * @private
     17  * @param {Object} object The object to query.
     18  * @returns {Array} Returns the array of symbols.
     19  */
     20 var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
     21   if (object == null) {
     22     return [];
     23   }
     24   object = Object(object);
     25   return arrayFilter(nativeGetSymbols(object), function(symbol) {
     26     return propertyIsEnumerable.call(object, symbol);
     27   });
     28 };
     29 
     30 module.exports = getSymbols;