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