aboutsummaryrefslogtreecommitdiff
path: root/node_modules/lodash/_getSymbols.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/lodash/_getSymbols.js')
-rw-r--r--node_modules/lodash/_getSymbols.js18
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;