| 1234567891011121314151617181920212223242526272829303132 | 
							- '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;
 
 
  |