diff options
Diffstat (limited to 'node_modules/lodash/_getSymbols.js')
-rw-r--r-- | node_modules/lodash/_getSymbols.js | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/node_modules/lodash/_getSymbols.js b/node_modules/lodash/_getSymbols.js index b53c1270b..7d6eafebb 100644 --- a/node_modules/lodash/_getSymbols.js +++ b/node_modules/lodash/_getSymbols.js @@ -1,6 +1,12 @@ -var overArg = require('./_overArg'), +var arrayFilter = require('./_arrayFilter'), stubArray = require('./stubArray'); +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeGetSymbols = Object.getOwnPropertySymbols; @@ -11,6 +17,14 @@ var nativeGetSymbols = Object.getOwnPropertySymbols; * @param {Object} object The object to query. * @returns {Array} Returns the array of symbols. */ -var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray; +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; module.exports = getSymbols; |