_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;