| var toIndexedObject = require('../internals/to-indexed-object'); |
| var nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f; |
| |
| var toString = {}.toString; |
| |
| var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames |
| ? Object.getOwnPropertyNames(window) : []; |
| |
| var getWindowNames = function (it) { |
| try { |
| return nativeGetOwnPropertyNames(it); |
| } catch (error) { |
| return windowNames.slice(); |
| } |
| }; |
| |
| // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window |
| module.exports.f = function getOwnPropertyNames(it) { |
| return windowNames && toString.call(it) == '[object Window]' |
| ? getWindowNames(it) |
| : nativeGetOwnPropertyNames(toIndexedObject(it)); |
| }; |