You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
856 B
23 lines
856 B
/* 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-simple'); |
|
|
|
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)); |
|
};
|
|
|