25 lines
		
	
	
		
			864 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			864 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| /* eslint-disable es/no-object-getownpropertynames -- safe */
 | |
| var classof = require('../internals/classof-raw');
 | |
| var toIndexedObject = require('../internals/to-indexed-object');
 | |
| var $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
 | |
| var arraySlice = require('../internals/array-slice');
 | |
| 
 | |
| var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
 | |
|   ? Object.getOwnPropertyNames(window) : [];
 | |
| 
 | |
| var getWindowNames = function (it) {
 | |
|   try {
 | |
|     return $getOwnPropertyNames(it);
 | |
|   } catch (error) {
 | |
|     return arraySlice(windowNames);
 | |
|   }
 | |
| };
 | |
| 
 | |
| // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
 | |
| module.exports.f = function getOwnPropertyNames(it) {
 | |
|   return windowNames && classof(it) === 'Window'
 | |
|     ? getWindowNames(it)
 | |
|     : $getOwnPropertyNames(toIndexedObject(it));
 | |
| };
 | 
