| | |
| | | /* eslint-disable es/no-object-getownpropertynames -- safe */ |
| | | /* eslint-disable es-x/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 toString = {}.toString; |
| | | var arraySlice = require('../internals/array-slice-simple'); |
| | | |
| | | var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames |
| | | ? Object.getOwnPropertyNames(window) : []; |
| | |
| | | try { |
| | | return $getOwnPropertyNames(it); |
| | | } catch (error) { |
| | | return windowNames.slice(); |
| | | return arraySlice(windowNames); |
| | | } |
| | | }; |
| | | |
| | | // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window |
| | | module.exports.f = function getOwnPropertyNames(it) { |
| | | return windowNames && toString.call(it) == '[object Window]' |
| | | return windowNames && classof(it) == 'Window' |
| | | ? getWindowNames(it) |
| | | : $getOwnPropertyNames(toIndexedObject(it)); |
| | | }; |