| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | /* global ActiveXObject -- old IE, WSH */var anObject = require('../internals/an-object');var definePropertiesModule = require('../internals/object-define-properties');var enumBugKeys = require('../internals/enum-bug-keys');var hiddenKeys = require('../internals/hidden-keys');var html = require('../internals/html');var documentCreateElement = require('../internals/document-create-element');var sharedKey = require('../internals/shared-key');var GT = '>';var LT = '<';var PROTOTYPE = 'prototype';var SCRIPT = 'script';var IE_PROTO = sharedKey('IE_PROTO');var EmptyConstructor = function () { /* empty */ };var scriptTag = function (content) {  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;};// Create object with fake `null` prototype: use ActiveX Object with cleared prototypevar NullProtoObjectViaActiveX = function (activeXDocument) {  activeXDocument.write(scriptTag(''));  activeXDocument.close();  var temp = activeXDocument.parentWindow.Object;  activeXDocument = null; // avoid memory leak  return temp;};// Create object with fake `null` prototype: use iframe Object with cleared prototypevar NullProtoObjectViaIFrame = function () {  // Thrash, waste and sodomy: IE GC bug  var iframe = documentCreateElement('iframe');  var JS = 'java' + SCRIPT + ':';  var iframeDocument;  iframe.style.display = 'none';  html.appendChild(iframe);  // https://github.com/zloirock/core-js/issues/475  iframe.src = String(JS);  iframeDocument = iframe.contentWindow.document;  iframeDocument.open();  iframeDocument.write(scriptTag('document.F=Object'));  iframeDocument.close();  return iframeDocument.F;};// Check for document.domain and active x support// No need to use active x approach when document.domain is not set// see https://github.com/es-shims/es5-shim/issues/150// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346// avoid IE GC bugvar activeXDocument;var NullProtoObject = function () {  try {    activeXDocument = new ActiveXObject('htmlfile');  } catch (error) { /* ignore */ }  NullProtoObject = typeof document != 'undefined'    ? document.domain && activeXDocument      ? NullProtoObjectViaActiveX(activeXDocument) // old IE      : NullProtoObjectViaIFrame()    : NullProtoObjectViaActiveX(activeXDocument); // WSH  var length = enumBugKeys.length;  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];  return NullProtoObject();};hiddenKeys[IE_PROTO] = true;// `Object.create` method// https://tc39.es/ecma262/#sec-object.create// eslint-disable-next-line es/no-object-create -- safemodule.exports = Object.create || function create(O, Properties) {  var result;  if (O !== null) {    EmptyConstructor[PROTOTYPE] = anObject(O);    result = new EmptyConstructor();    EmptyConstructor[PROTOTYPE] = null;    // add "__proto__" for Object.getPrototypeOf polyfill    result[IE_PROTO] = O;  } else result = NullProtoObject();  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);};
 |