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