diff options
Diffstat (limited to 'desktop/node_modules/object-keys/index.js')
-rw-r--r-- | desktop/node_modules/object-keys/index.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/desktop/node_modules/object-keys/index.js b/desktop/node_modules/object-keys/index.js new file mode 100644 index 0000000..a43807d --- /dev/null +++ b/desktop/node_modules/object-keys/index.js @@ -0,0 +1,32 @@ +'use strict'; + +var slice = Array.prototype.slice; +var isArgs = require('./isArguments'); + +var origKeys = Object.keys; +var keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation'); + +var originalKeys = Object.keys; + +keysShim.shim = function shimObjectKeys() { + if (Object.keys) { + var keysWorksWithArguments = (function () { + // Safari 5.0 bug + var args = Object.keys(arguments); + return args && args.length === arguments.length; + }(1, 2)); + if (!keysWorksWithArguments) { + Object.keys = function keys(object) { // eslint-disable-line func-name-matching + if (isArgs(object)) { + return originalKeys(slice.call(object)); + } + return originalKeys(object); + }; + } + } else { + Object.keys = keysShim; + } + return Object.keys || keysShim; +}; + +module.exports = keysShim; |