object-get-own-property-names-external.js 737 B

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