'use strict'; 
 | 
/* 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'); 
 | 
  
 | 
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)); 
 | 
}; 
 |