You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							32 lines
						
					
					
						
							823 B
						
					
					
				
			
		
		
	
	
							32 lines
						
					
					
						
							823 B
						
					
					
				'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;
 | 
						|
 |