UNPKG

737 BJavaScriptView Raw
1var toIndexedObject = require('../internals/to-indexed-object');
2var nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;
3
4var toString = {}.toString;
5
6var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
7 ? Object.getOwnPropertyNames(window) : [];
8
9var getWindowNames = function (it) {
10 try {
11 return nativeGetOwnPropertyNames(it);
12 } catch (error) {
13 return windowNames.slice();
14 }
15};
16
17// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
18module.exports.f = function getOwnPropertyNames(it) {
19 return windowNames && toString.call(it) == '[object Window]'
20 ? getWindowNames(it)
21 : nativeGetOwnPropertyNames(toIndexedObject(it));
22};