Global
在 JavaScript 中什么是全局对象?
- 简单来说,在 JavaScript 中,有那么一个对象,它的所有属性可以在程序中的任何地方调用、访问,并且所有在全局创建的变量常量都会绑定在这个对象上,那么这一个对象就是全局对象。
- 全局对象只是一个对象,它不是类,它没有构造函数,也无法实例化一个新的全局对象,在一个程序中有且只有一个全局对象。
- 真实的全局对象是不可以被直接访问的,通过关键字可以引用全局对象,被引用的是全局对象的代理,虽然真实全局对象和全局对象代理有所区别,但在平时使用中,可以直接把引用的全局对象代理当作真实的全局对象使用。
- 在浏览器环境中,JavaScript 的全局对象就是 Window 对象。在浏览器中运行 JavaScript ,全局对象会和 window 对象结合,相当全局对象于寄生 window 对象,可以通过 window 对象访问全局对象的所有属性。
- 在node.js 环境中,JavaScript 的全局对象是 Global 对象。在 node.js 环境中,可以通过 global 对象访问全局对象的所有属性。
- 其他环境,比如微信小程序等环境,这种也可以看作一个浏览器,不过这个浏览器通过删减一些不用的属性再添加或修改一些自定义的属性变成一个新的浏览器环境,但其核心还是没有变化的。当然,这种浏览器环境的全局对象同样也是 Window 对象。
不同 JavaScript 环境中怎么获取全局对象?
由于在 JavaScript 中,全局对象不是任何对象的属性,它没有自己的名称,但在顶层 JavaScript 中,大部分情况下可以使用关键字 this、window 引用全局对象(node.js 环境中不可以,其宿主与浏览器环境不同)。
关于使用关键字引用全局对象,下面整理了一个表格,可以进行查看:
/* ; 下表中数据含意: ; g : 表示输出全局对象 ; - 浏览器:window(含各内置对象、本地对象、BOM、DOM) ; - 小程序:window(含部分内置对象、部分本地对象、一些自定义对象、少量BOM、极少DOM) ; - node :全局对象(含各内置对象、无window、无DOM、极少极少BOM) ; n : 表示其他非全局对象的对象(node 中,全局this为空对象,准确说应该是 module.exports。函数中的this为全局对象 global) ; / : 表示输出 not defined ---------------------------------------------------------------- ; : IE : 正常浏览器 : node : 小程序 ; ;--------------------------------------------------------------- ;this : g : g : n : g ; ;self : g : g : / : g ; ;window : g : g : / : g ; ;global : / : / : g : n ; ;globalTthis : / : g : g : / ; ;top : g : g : / : g ; ;parent : g : g : / : g ; ;frames : g : g : / : / ; ---------------------------------------------------------------- */
各浏览器中全局对象的属性数量:
通过测试,得到市面上比较流行的浏览器在空页面时全局对象的属性的数量(大概数量,同样浏览器不同版本都会有所不同):
常见浏览器:
- google:960+
- opera:950+
- firefox:810+
- safari:760+
- 360:920+
- edge:670+
- ie-11:470+
- ie-10:410+
- ie-9:320+
其他 Javascript 环境:
- 微信小程序:180+
- node:70+
全局对象的属性:
由于不同环境全局对象的属性都不尽相同,甚至同一个环境不同版本的全局对象属性都有不同,下面主要列出 google 浏览器( 版本 83.x+) 和 node.js( 版本 14.x+)的全局对象所有属性:
浏览器中的全局对象的属性:
// google 浏览器中的 Object.getOwnPropertyDescriptors(globalThis) Infinity: {value: Infinity, writable: false, enumerable: false, configurable: false} $: {writable: true, enumerable: false, configurable: true, value: ƒ} $0: {value: undefined, writable: true, enumerable: false, configurable: true} $1: {value: undefined, writable: true, enumerable: false, configurable: true} $2: {value: undefined, writable: true, enumerable: false, configurable: true} $3: {value: undefined, writable: true, enumerable: false, configurable: true} $4: {value: undefined, writable: true, enumerable: false, configurable: true} $$: {writable: true, enumerable: false, configurable: true, value: ƒ} $_: {value: undefined, writable: true, enumerable: false, configurable: true} $x: {writable: true, enumerable: false, configurable: true, value: ƒ} AbortController: {writable: true, enumerable: false, configurable: true, value: ƒ} AbortSignal: {writable: true, enumerable: false, configurable: true, value: ƒ} AbsoluteOrientationSensor: {writable: true, enumerable: false, configurable: true, value: ƒ} Accelerometer: {writable: true, enumerable: false, configurable: true, value: ƒ} AnalyserNode: {writable: true, enumerable: false, configurable: true, value: ƒ} Animation: {writable: true, enumerable: false, configurable: true, value: ƒ} AnimationEffect: {writable: true, enumerable: false, configurable: true, value: ƒ} AnimationEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} ApplicationCache: {writable: true, enumerable: false, configurable: true, value: ƒ} ApplicationCacheErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Array: {writable: true, enumerable: false, configurable: true, value: ƒ} ArrayBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ} Atomics: {value: Atomics, writable: true, enumerable: false, configurable: true} Attr: {writable: true, enumerable: false, configurable: true, value: ƒ} Audio: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioBufferSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioContext: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioDestinationNode: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioListener: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioNode: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioParam: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioParamMap: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioProcessingEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioScheduledSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioWorklet: {writable: true, enumerable: false, configurable: true, value: ƒ} AudioWorkletNode: {writable: true, enumerable: false, configurable: true, value: ƒ} AuthenticatorAssertionResponse: {writable: true, enumerable: false, configurable: true, value: ƒ} AuthenticatorAttestationResponse: {writable: true, enumerable: false, configurable: true, value: ƒ} AuthenticatorResponse: {writable: true, enumerable: false, configurable: true, value: ƒ} BackgroundFetchManager: {writable: true, enumerable: false, configurable: true, value: ƒ} BackgroundFetchRecord: {writable: true, enumerable: false, configurable: true, value: ƒ} BackgroundFetchRegistration: {writable: true, enumerable: false, configurable: true, value: ƒ} BarProp: {writable: true, enumerable: false, configurable: true, value: ƒ} BarcodeDetector: {writable: true, enumerable: false, configurable: true, value: ƒ} BaseAudioContext: {writable: true, enumerable: false, configurable: true, value: ƒ} BatteryManager: {writable: true, enumerable: false, configurable: true, value: ƒ} BeforeInstallPromptEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} BeforeUnloadEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} BigInt: {writable: true, enumerable: false, configurable: true, value: ƒ} BigInt64Array: {writable: true, enumerable: false, configurable: true, value: ƒ} BigUint64Array: {writable: true, enumerable: false, configurable: true, value: ƒ} BiquadFilterNode: {writable: true, enumerable: false, configurable: true, value: ƒ} Blob: {writable: true, enumerable: false, configurable: true, value: ƒ} BlobEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Bluetooth: {writable: true, enumerable: false, configurable: true, value: ƒ} BluetoothCharacteristicProperties: {writable: true, enumerable: false, configurable: true, value: ƒ} BluetoothDevice: {writable: true, enumerable: false, configurable: true, value: ƒ} BluetoothRemoteGATTCharacteristic: {writable: true, enumerable: false, configurable: true, value: ƒ} BluetoothRemoteGATTDescriptor: {writable: true, enumerable: false, configurable: true, value: ƒ} BluetoothRemoteGATTServer: {writable: true, enumerable: false, configurable: true, value: ƒ} BluetoothRemoteGATTService: {writable: true, enumerable: false, configurable: true, value: ƒ} BluetoothUUID: {writable: true, enumerable: false, configurable: true, value: ƒ} Boolean: {writable: true, enumerable: false, configurable: true, value: ƒ} BroadcastChannel: {writable: true, enumerable: false, configurable: true, value: ƒ} ByteLengthQueuingStrategy: {writable: true, enumerable: false, configurable: true, value: ƒ} CDATASection: {writable: true, enumerable: false, configurable: true, value: ƒ} CSS: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSConditionRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSFontFaceRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSGroupingRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSImageValue: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSImportRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSKeyframeRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSKeyframesRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSKeywordValue: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSMathInvert: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSMathMax: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSMathMin: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSMathNegate: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSMathProduct: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSMathSum: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSMathValue: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSMatrixComponent: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSMediaRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSNamespaceRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSNumericArray: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSNumericValue: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSPageRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSPerspective: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSPositionValue: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSRotate: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSRuleList: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSScale: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSSkew: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSSkewX: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSSkewY: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSStyleDeclaration: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSStyleRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSStyleSheet: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSStyleValue: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSSupportsRule: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSTransformComponent: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSTransformValue: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSTranslate: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSUnitValue: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSUnparsedValue: {writable: true, enumerable: false, configurable: true, value: ƒ} CSSVariableReferenceValue: {writable: true, enumerable: false, configurable: true, value: ƒ} Cache: {writable: true, enumerable: false, configurable: true, value: ƒ} CacheStorage: {writable: true, enumerable: false, configurable: true, value: ƒ} CanvasCaptureMediaStreamTrack: {writable: true, enumerable: false, configurable: true, value: ƒ} CanvasGradient: {writable: true, enumerable: false, configurable: true, value: ƒ} CanvasPattern: {writable: true, enumerable: false, configurable: true, value: ƒ} CanvasRenderingContext2D: {writable: true, enumerable: false, configurable: true, value: ƒ} ChannelMergerNode: {writable: true, enumerable: false, configurable: true, value: ƒ} ChannelSplitterNode: {writable: true, enumerable: false, configurable: true, value: ƒ} CharacterData: {writable: true, enumerable: false, configurable: true, value: ƒ} Clipboard: {writable: true, enumerable: false, configurable: true, value: ƒ} ClipboardEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} ClipboardItem: {writable: true, enumerable: false, configurable: true, value: ƒ} CloseEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Comment: {writable: true, enumerable: false, configurable: true, value: ƒ} CompositionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} CompressionStream: {writable: true, enumerable: false, configurable: true, value: ƒ} ConstantSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ} ConvolverNode: {writable: true, enumerable: false, configurable: true, value: ƒ} CountQueuingStrategy: {writable: true, enumerable: false, configurable: true, value: ƒ} Credential: {writable: true, enumerable: false, configurable: true, value: ƒ} CredentialsContainer: {writable: true, enumerable: false, configurable: true, value: ƒ} Crypto: {writable: true, enumerable: false, configurable: true, value: ƒ} CryptoKey: {writable: true, enumerable: false, configurable: true, value: ƒ} CustomElementRegistry: {writable: true, enumerable: false, configurable: true, value: ƒ} CustomEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMError: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMException: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMImplementation: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMMatrix: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMMatrixReadOnly: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMParser: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMPoint: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMPointReadOnly: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMQuad: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMRect: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMRectList: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMRectReadOnly: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMStringList: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMStringMap: {writable: true, enumerable: false, configurable: true, value: ƒ} DOMTokenList: {writable: true, enumerable: false, configurable: true, value: ƒ} DataTransfer: {writable: true, enumerable: false, configurable: true, value: ƒ} DataTransferItem: {writable: true, enumerable: false, configurable: true, value: ƒ} DataTransferItemList: {writable: true, enumerable: false, configurable: true, value: ƒ} DataView: {writable: true, enumerable: false, configurable: true, value: ƒ} Date: {writable: true, enumerable: false, configurable: true, value: ƒ} DecompressionStream: {writable: true, enumerable: false, configurable: true, value: ƒ} DelayNode: {writable: true, enumerable: false, configurable: true, value: ƒ} DeviceMotionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} DeviceMotionEventAcceleration: {writable: true, enumerable: false, configurable: true, value: ƒ} DeviceMotionEventRotationRate: {writable: true, enumerable: false, configurable: true, value: ƒ} DeviceOrientationEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Document: {writable: true, enumerable: false, configurable: true, value: ƒ} DocumentFragment: {writable: true, enumerable: false, configurable: true, value: ƒ} DocumentType: {writable: true, enumerable: false, configurable: true, value: ƒ} DragEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} DynamicsCompressorNode: {writable: true, enumerable: false, configurable: true, value: ƒ} Element: {writable: true, enumerable: false, configurable: true, value: ƒ} ElementInternals: {writable: true, enumerable: false, configurable: true, value: ƒ} EnterPictureInPictureEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Error: {writable: true, enumerable: false, configurable: true, value: ƒ} ErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} EvalError: {writable: true, enumerable: false, configurable: true, value: ƒ} Event: {writable: true, enumerable: false, configurable: true, value: ƒ} EventSource: {writable: true, enumerable: false, configurable: true, value: ƒ} EventTarget: {writable: true, enumerable: false, configurable: true, value: ƒ} External: {writable: true, enumerable: false, configurable: true, value: ƒ} FeaturePolicy: {writable: true, enumerable: false, configurable: true, value: ƒ} FederatedCredential: {writable: true, enumerable: false, configurable: true, value: ƒ} File: {writable: true, enumerable: false, configurable: true, value: ƒ} FileList: {writable: true, enumerable: false, configurable: true, value: ƒ} FileReader: {writable: true, enumerable: false, configurable: true, value: ƒ} Float32Array: {writable: true, enumerable: false, configurable: true, value: ƒ} Float64Array: {writable: true, enumerable: false, configurable: true, value: ƒ} FocusEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} FontFace: {writable: true, enumerable: false, configurable: true, value: ƒ} FontFaceSetLoadEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} FormData: {writable: true, enumerable: false, configurable: true, value: ƒ} FormDataEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} FragmentDirective: {writable: true, enumerable: false, configurable: true, value: ƒ} Function: {writable: true, enumerable: false, configurable: true, value: ƒ} GainNode: {writable: true, enumerable: false, configurable: true, value: ƒ} Gamepad: {writable: true, enumerable: false, configurable: true, value: ƒ} GamepadButton: {writable: true, enumerable: false, configurable: true, value: ƒ} GamepadEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} GamepadHapticActuator: {writable: true, enumerable: false, configurable: true, value: ƒ} Geolocation: {writable: true, enumerable: false, configurable: true, value: ƒ} GeolocationCoordinates: {writable: true, enumerable: false, configurable: true, value: ƒ} GeolocationPosition: {writable: true, enumerable: false, configurable: true, value: ƒ} GeolocationPositionError: {writable: true, enumerable: false, configurable: true, value: ƒ} Gyroscope: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLAllCollection: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLAnchorElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLAreaElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLAudioElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLBRElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLBaseElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLBodyElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLButtonElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLCanvasElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLCollection: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLContentElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLDListElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLDataElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLDataListElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLDetailsElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLDialogElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLDirectoryElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLDivElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLDocument: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLEmbedElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLFieldSetElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLFontElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLFormControlsCollection: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLFormElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLFrameElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLFrameSetElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLHRElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLHeadElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLHeadingElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLHtmlElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLIFrameElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLImageElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLInputElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLLIElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLLabelElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLLegendElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLLinkElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLMapElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLMarqueeElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLMediaElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLMenuElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLMetaElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLMeterElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLModElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLOListElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLObjectElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLOptGroupElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLOptionElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLOptionsCollection: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLOutputElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLParagraphElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLParamElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLPictureElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLPreElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLProgressElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLQuoteElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLScriptElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLSelectElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLShadowElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLSlotElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLSourceElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLSpanElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLStyleElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTableCaptionElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTableCellElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTableColElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTableElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTableRowElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTableSectionElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTemplateElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTextAreaElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTimeElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTitleElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLTrackElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLUListElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLUnknownElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HTMLVideoElement: {writable: true, enumerable: false, configurable: true, value: ƒ} HashChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Headers: {writable: true, enumerable: false, configurable: true, value: ƒ} History: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBCursor: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBCursorWithValue: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBDatabase: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBFactory: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBIndex: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBKeyRange: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBObjectStore: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBOpenDBRequest: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBRequest: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBTransaction: {writable: true, enumerable: false, configurable: true, value: ƒ} IDBVersionChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} IIRFilterNode: {writable: true, enumerable: false, configurable: true, value: ƒ} IdleDeadline: {writable: true, enumerable: false, configurable: true, value: ƒ} Image: {writable: true, enumerable: false, configurable: true, value: ƒ} ImageBitmap: {writable: true, enumerable: false, configurable: true, value: ƒ} ImageBitmapRenderingContext: {writable: true, enumerable: false, configurable: true, value: ƒ} ImageCapture: {writable: true, enumerable: false, configurable: true, value: ƒ} ImageData: {writable: true, enumerable: false, configurable: true, value: ƒ} InputDeviceCapabilities: {writable: true, enumerable: false, configurable: true, value: ƒ} InputDeviceInfo: {writable: true, enumerable: false, configurable: true, value: ƒ} InputEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Int8Array: {writable: true, enumerable: false, configurable: true, value: ƒ} Int16Array: {writable: true, enumerable: false, configurable: true, value: ƒ} Int32Array: {writable: true, enumerable: false, configurable: true, value: ƒ} IntersectionObserver: {writable: true, enumerable: false, configurable: true, value: ƒ} IntersectionObserverEntry: {writable: true, enumerable: false, configurable: true, value: ƒ} Intl: {value: {…}, writable: true, enumerable: false, configurable: true} JSON: {value: JSON, writable: true, enumerable: false, configurable: true} Keyboard: {writable: true, enumerable: false, configurable: true, value: ƒ} KeyboardEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} KeyboardLayoutMap: {writable: true, enumerable: false, configurable: true, value: ƒ} KeyframeEffect: {writable: true, enumerable: false, configurable: true, value: ƒ} LargestContentfulPaint: {writable: true, enumerable: false, configurable: true, value: ƒ} LayoutShift: {writable: true, enumerable: false, configurable: true, value: ƒ} LinearAccelerationSensor: {writable: true, enumerable: false, configurable: true, value: ƒ} Location: {writable: true, enumerable: false, configurable: true, value: ƒ} Lock: {writable: true, enumerable: false, configurable: true, value: ƒ} LockManager: {writable: true, enumerable: false, configurable: true, value: ƒ} MIDIAccess: {writable: true, enumerable: false, configurable: true, value: ƒ} MIDIConnectionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MIDIInput: {writable: true, enumerable: false, configurable: true, value: ƒ} MIDIInputMap: {writable: true, enumerable: false, configurable: true, value: ƒ} MIDIMessageEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MIDIOutput: {writable: true, enumerable: false, configurable: true, value: ƒ} MIDIOutputMap: {writable: true, enumerable: false, configurable: true, value: ƒ} MIDIPort: {writable: true, enumerable: false, configurable: true, value: ƒ} Map: {writable: true, enumerable: false, configurable: true, value: ƒ} Math: {value: Math, writable: true, enumerable: false, configurable: true} MediaCapabilities: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaDeviceInfo: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaDevices: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaElementAudioSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaEncryptedEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaError: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaKeyMessageEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaKeySession: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaKeyStatusMap: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaKeySystemAccess: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaKeys: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaList: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaMetadata: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaQueryList: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaQueryListEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaRecorder: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaSession: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaSettingsRange: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaSource: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaStream: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaStreamAudioDestinationNode: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaStreamAudioSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaStreamEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaStreamTrack: {writable: true, enumerable: false, configurable: true, value: ƒ} MediaStreamTrackEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MessageChannel: {writable: true, enumerable: false, configurable: true, value: ƒ} MessageEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MessagePort: {writable: true, enumerable: false, configurable: true, value: ƒ} MimeType: {writable: true, enumerable: false, configurable: true, value: ƒ} MimeTypeArray: {writable: true, enumerable: false, configurable: true, value: ƒ} MouseEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MutationEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} MutationObserver: {writable: true, enumerable: false, configurable: true, value: ƒ} MutationRecord: {writable: true, enumerable: false, configurable: true, value: ƒ} NaN: {value: NaN, writable: false, enumerable: false, configurable: false} NamedNodeMap: {writable: true, enumerable: false, configurable: true, value: ƒ} NavigationPreloadManager: {writable: true, enumerable: false, configurable: true, value: ƒ} Navigator: {writable: true, enumerable: false, configurable: true, value: ƒ} NetworkInformation: {writable: true, enumerable: false, configurable: true, value: ƒ} Node: {writable: true, enumerable: false, configurable: true, value: ƒ} NodeFilter: {writable: true, enumerable: false, configurable: true, value: ƒ} NodeIterator: {writable: true, enumerable: false, configurable: true, value: ƒ} NodeList: {writable: true, enumerable: false, configurable: true, value: ƒ} Notification: {writable: true, enumerable: false, configurable: true, value: ƒ} Number: {writable: true, enumerable: false, configurable: true, value: ƒ} Object: {writable: true, enumerable: false, configurable: true, value: ƒ} OfflineAudioCompletionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} OfflineAudioContext: {writable: true, enumerable: false, configurable: true, value: ƒ} OffscreenCanvas: {writable: true, enumerable: false, configurable: true, value: ƒ} OffscreenCanvasRenderingContext2D: {writable: true, enumerable: false, configurable: true, value: ƒ} Option: {writable: true, enumerable: false, configurable: true, value: ƒ} OrientationSensor: {writable: true, enumerable: false, configurable: true, value: ƒ} OscillatorNode: {writable: true, enumerable: false, configurable: true, value: ƒ} OverconstrainedError: {writable: true, enumerable: false, configurable: true, value: ƒ} PageTransitionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} PannerNode: {writable: true, enumerable: false, configurable: true, value: ƒ} PasswordCredential: {writable: true, enumerable: false, configurable: true, value: ƒ} Path2D: {writable: true, enumerable: false, configurable: true, value: ƒ} PaymentAddress: {writable: true, enumerable: false, configurable: true, value: ƒ} PaymentInstruments: {writable: true, enumerable: false, configurable: true, value: ƒ} PaymentManager: {writable: true, enumerable: false, configurable: true, value: ƒ} PaymentMethodChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} PaymentRequest: {writable: true, enumerable: false, configurable: true, value: ƒ} PaymentRequestUpdateEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} PaymentResponse: {writable: true, enumerable: false, configurable: true, value: ƒ} Performance: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceElementTiming: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceEntry: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceEventTiming: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceLongTaskTiming: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceMark: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceMeasure: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceNavigation: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceNavigationTiming: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceObserver: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceObserverEntryList: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformancePaintTiming: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceResourceTiming: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceServerTiming: {writable: true, enumerable: false, configurable: true, value: ƒ} PerformanceTiming: {writable: true, enumerable: false, configurable: true, value: ƒ} PeriodicSyncManager: {writable: true, enumerable: false, configurable: true, value: ƒ} PeriodicWave: {writable: true, enumerable: false, configurable: true, value: ƒ} PermissionStatus: {writable: true, enumerable: false, configurable: true, value: ƒ} Permissions: {writable: true, enumerable: false, configurable: true, value: ƒ} PhotoCapabilities: {writable: true, enumerable: false, configurable: true, value: ƒ} PictureInPictureWindow: {writable: true, enumerable: false, configurable: true, value: ƒ} Plugin: {writable: true, enumerable: false, configurable: true, value: ƒ} PluginArray: {writable: true, enumerable: false, configurable: true, value: ƒ} PointerEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} PopStateEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Presentation: {writable: true, enumerable: false, configurable: true, value: ƒ} PresentationAvailability: {writable: true, enumerable: false, configurable: true, value: ƒ} PresentationConnection: {writable: true, enumerable: false, configurable: true, value: ƒ} PresentationConnectionAvailableEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} PresentationConnectionCloseEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} PresentationConnectionList: {writable: true, enumerable: false, configurable: true, value: ƒ} PresentationReceiver: {writable: true, enumerable: false, configurable: true, value: ƒ} PresentationRequest: {writable: true, enumerable: false, configurable: true, value: ƒ} ProcessingInstruction: {writable: true, enumerable: false, configurable: true, value: ƒ} ProgressEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Promise: {writable: true, enumerable: false, configurable: true, value: ƒ} PromiseRejectionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Proxy: {writable: true, enumerable: false, configurable: true, value: ƒ} PublicKeyCredential: {writable: true, enumerable: false, configurable: true, value: ƒ} PushManager: {writable: true, enumerable: false, configurable: true, value: ƒ} PushSubscription: {writable: true, enumerable: false, configurable: true, value: ƒ} PushSubscriptionOptions: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCCertificate: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCDTMFSender: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCDTMFToneChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCDataChannel: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCDataChannelEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCDtlsTransport: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCError: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCIceCandidate: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCIceTransport: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCPeerConnection: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCPeerConnectionIceErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCPeerConnectionIceEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCRtpReceiver: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCRtpSender: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCRtpTransceiver: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCSctpTransport: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCSessionDescription: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCStatsReport: {writable: true, enumerable: false, configurable: true, value: ƒ} RTCTrackEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} RadioNodeList: {writable: true, enumerable: false, configurable: true, value: ƒ} Range: {writable: true, enumerable: false, configurable: true, value: ƒ} RangeError: {writable: true, enumerable: false, configurable: true, value: ƒ} ReadableStream: {writable: true, enumerable: false, configurable: true, value: ƒ} ReadableStreamDefaultReader: {writable: true, enumerable: false, configurable: true, value: ƒ} ReferenceError: {writable: true, enumerable: false, configurable: true, value: ƒ} Reflect: {value: {…}, writable: true, enumerable: false, configurable: true} RegExp: {writable: true, enumerable: false, configurable: true, value: ƒ} RelativeOrientationSensor: {writable: true, enumerable: false, configurable: true, value: ƒ} RemotePlayback: {writable: true, enumerable: false, configurable: true, value: ƒ} ReportingObserver: {writable: true, enumerable: false, configurable: true, value: ƒ} Request: {writable: true, enumerable: false, configurable: true, value: ƒ} ResizeObserver: {writable: true, enumerable: false, configurable: true, value: ƒ} ResizeObserverEntry: {writable: true, enumerable: false, configurable: true, value: ƒ} Response: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAngle: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimateElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimateMotionElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimateTransformElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedAngle: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedBoolean: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedEnumeration: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedInteger: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedLength: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedLengthList: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedNumber: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedNumberList: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedPreserveAspectRatio: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedRect: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedString: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimatedTransformList: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGAnimationElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGCircleElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGClipPathElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGComponentTransferFunctionElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGDefsElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGDescElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGEllipseElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEBlendElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEColorMatrixElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEComponentTransferElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFECompositeElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEConvolveMatrixElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEDiffuseLightingElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEDisplacementMapElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEDistantLightElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEDropShadowElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEFloodElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEFuncAElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEFuncBElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEFuncGElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEFuncRElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEGaussianBlurElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEImageElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEMergeElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEMergeNodeElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEMorphologyElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEOffsetElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFEPointLightElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFESpecularLightingElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFESpotLightElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFETileElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFETurbulenceElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGFilterElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGForeignObjectElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGGElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGGeometryElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGGradientElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGGraphicsElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGImageElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGLength: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGLengthList: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGLineElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGLinearGradientElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGMPathElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGMarkerElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGMaskElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGMatrix: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGMetadataElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGNumber: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGNumberList: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGPathElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGPatternElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGPoint: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGPointList: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGPolygonElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGPolylineElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGPreserveAspectRatio: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGRadialGradientElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGRect: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGRectElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGSVGElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGScriptElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGSetElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGStopElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGStringList: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGStyleElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGSwitchElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGSymbolElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGTSpanElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGTextContentElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGTextElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGTextPathElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGTextPositioningElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGTitleElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGTransform: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGTransformList: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGUnitTypes: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGUseElement: {writable: true, enumerable: false, configurable: true, value: ƒ} SVGViewElement: {writable: true, enumerable: false, configurable: true, value: ƒ} Screen: {writable: true, enumerable: false, configurable: true, value: ƒ} ScreenOrientation: {writable: true, enumerable: false, configurable: true, value: ƒ} ScriptProcessorNode: {writable: true, enumerable: false, configurable: true, value: ƒ} SecurityPolicyViolationEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Selection: {writable: true, enumerable: false, configurable: true, value: ƒ} Sensor: {writable: true, enumerable: false, configurable: true, value: ƒ} SensorErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} ServiceWorker: {writable: true, enumerable: false, configurable: true, value: ƒ} ServiceWorkerContainer: {writable: true, enumerable: false, configurable: true, value: ƒ} ServiceWorkerRegistration: {writable: true, enumerable: false, configurable: true, value: ƒ} Set: {writable: true, enumerable: false, configurable: true, value: ƒ} ShadowRoot: {writable: true, enumerable: false, configurable: true, value: ƒ} SharedArrayBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ} SharedWorker: {writable: true, enumerable: false, configurable: true, value: ƒ} SourceBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ} SourceBufferList: {writable: true, enumerable: false, configurable: true, value: ƒ} SpeechSynthesisErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} SpeechSynthesisEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} SpeechSynthesisUtterance: {writable: true, enumerable: false, configurable: true, value: ƒ} StaticRange: {writable: true, enumerable: false, configurable: true, value: ƒ} StereoPannerNode: {writable: true, enumerable: false, configurable: true, value: ƒ} Storage: {writable: true, enumerable: false, configurable: true, value: ƒ} StorageEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} StorageManager: {writable: true, enumerable: false, configurable: true, value: ƒ} String: {writable: true, enumerable: false, configurable: true, value: ƒ} StylePropertyMap: {writable: true, enumerable: false, configurable: true, value: ƒ} StylePropertyMapReadOnly: {writable: true, enumerable: false, configurable: true, value: ƒ} StyleSheet: {writable: true, enumerable: false, configurable: true, value: ƒ} StyleSheetList: {writable: true, enumerable: false, configurable: true, value: ƒ} SubmitEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} SubtleCrypto: {writable: true, enumerable: false, configurable: true, value: ƒ} Symbol: {writable: true, enumerable: false, configurable: true, value: ƒ} SyncManager: {writable: true, enumerable: false, configurable: true, value: ƒ} SyntaxError: {writable: true, enumerable: false, configurable: true, value: ƒ} TaskAttributionTiming: {writable: true, enumerable: false, configurable: true, value: ƒ} Text: {writable: true, enumerable: false, configurable: true, value: ƒ} TextDecoder: {writable: true, enumerable: false, configurable: true, value: ƒ} TextDecoderStream: {writable: true, enumerable: false, configurable: true, value: ƒ} TextEncoder: {writable: true, enumerable: false, configurable: true, value: ƒ} TextEncoderStream: {writable: true, enumerable: false, configurable: true, value: ƒ} TextEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} TextMetrics: {writable: true, enumerable: false, configurable: true, value: ƒ} TextTrack: {writable: true, enumerable: false, configurable: true, value: ƒ} TextTrackCue: {writable: true, enumerable: false, configurable: true, value: ƒ} TextTrackCueList: {writable: true, enumerable: false, configurable: true, value: ƒ} TextTrackList: {writable: true, enumerable: false, configurable: true, value: ƒ} TimeRanges: {writable: true, enumerable: false, configurable: true, value: ƒ} Touch: {writable: true, enumerable: false, configurable: true, value: ƒ} TouchEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} TouchList: {writable: true, enumerable: false, configurable: true, value: ƒ} TrackEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} TransformStream: {writable: true, enumerable: false, configurable: true, value: ƒ} TransitionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} TreeWalker: {writable: true, enumerable: false, configurable: true, value: ƒ} TrustedHTML: {writable: true, enumerable: false, configurable: true, value: ƒ} TrustedScript: {writable: true, enumerable: false, configurable: true, value: ƒ} TrustedScriptURL: {writable: true, enumerable: false, configurable: true, value: ƒ} TrustedTypePolicy: {writable: true, enumerable: false, configurable: true, value: ƒ} TrustedTypePolicyFactory: {writable: true, enumerable: false, configurable: true, value: ƒ} TypeError: {writable: true, enumerable: false, configurable: true, value: ƒ} UIEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} URIError: {writable: true, enumerable: false, configurable: true, value: ƒ} URL: {writable: true, enumerable: false, configurable: true, value: ƒ} URLSearchParams: {writable: true, enumerable: false, configurable: true, value: ƒ} USB: {writable: true, enumerable: false, configurable: true, value: ƒ} USBAlternateInterface: {writable: true, enumerable: false, configurable: true, value: ƒ} USBConfiguration: {writable: true, enumerable: false, configurable: true, value: ƒ} USBConnectionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} USBDevice: {writable: true, enumerable: false, configurable: true, value: ƒ} USBEndpoint: {writable: true, enumerable: false, configurable: true, value: ƒ} USBInTransferResult: {writable: true, enumerable: false, configurable: true, value: ƒ} USBInterface: {writable: true, enumerable: false, configurable: true, value: ƒ} USBIsochronousInTransferPacket: {writable: true, enumerable: false, configurable: true, value: ƒ} USBIsochronousInTransferResult: {writable: true, enumerable: false, configurable: true, value: ƒ} USBIsochronousOutTransferPacket: {writable: true, enumerable: false, configurable: true, value: ƒ} USBIsochronousOutTransferResult: {writable: true, enumerable: false, configurable: true, value: ƒ} USBOutTransferResult: {writable: true, enumerable: false, configurable: true, value: ƒ} Uint8Array: {writable: true, enumerable: false, configurable: true, value: ƒ} Uint8ClampedArray: {writable: true, enumerable: false, configurable: true, value: ƒ} Uint16Array: {writable: true, enumerable: false, configurable: true, value: ƒ} Uint32Array: {writable: true, enumerable: false, configurable: true, value: ƒ} UserActivation: {writable: true, enumerable: false, configurable: true, value: ƒ} VTTCue: {writable: true, enumerable: false, configurable: true, value: ƒ} ValidityState: {writable: true, enumerable: false, configurable: true, value: ƒ} VideoPlaybackQuality: {writable: true, enumerable: false, configurable: true, value: ƒ} VisualViewport: {writable: true, enumerable: false, configurable: true, value: ƒ} WaveShaperNode: {writable: true, enumerable: false, configurable: true, value: ƒ} WeakMap: {writable: true, enumerable: false, configurable: true, value: ƒ} WeakSet: {writable: true, enumerable: false, configurable: true, value: ƒ} WebAssembly: {value: WebAssembly, writable: true, enumerable: false, configurable: true} WebGL2RenderingContext: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLActiveInfo: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLContextEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLFramebuffer: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLProgram: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLQuery: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLRenderbuffer: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLRenderingContext: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLSampler: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLShader: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLShaderPrecisionFormat: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLSync: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLTexture: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLTransformFeedback: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLUniformLocation: {writable: true, enumerable: false, configurable: true, value: ƒ} WebGLVertexArrayObject: {writable: true, enumerable: false, configurable: true, value: ƒ} WebKitCSSMatrix: {writable: true, enumerable: false, configurable: true, value: ƒ} WebKitMutationObserver: {writable: true, enumerable: false, configurable: true, value: ƒ} WebSocket: {writable: true, enumerable: false, configurable: true, value: ƒ} WheelEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} Window: {writable: true, enumerable: false, configurable: true, value: ƒ} Worker: {writable: true, enumerable: false, configurable: true, value: ƒ} Worklet: {writable: true, enumerable: false, configurable: true, value: ƒ} WritableStream: {writable: true, enumerable: false, configurable: true, value: ƒ} WritableStreamDefaultWriter: {writable: true, enumerable: false, configurable: true, value: ƒ} XMLDocument: {writable: true, enumerable: false, configurable: true, value: ƒ} XMLHttpRequest: {writable: true, enumerable: false, configurable: true, value: ƒ} XMLHttpRequestEventTarget: {writable: true, enumerable: false, configurable: true, value: ƒ} XMLHttpRequestUpload: {writable: true, enumerable: false, configurable: true, value: ƒ} XMLSerializer: {writable: true, enumerable: false, configurable: true, value: ƒ} XPathEvaluator: {writable: true, enumerable: false, configurable: true, value: ƒ} XPathExpression: {writable: true, enumerable: false, configurable: true, value: ƒ} XPathResult: {writable: true, enumerable: false, configurable: true, value: ƒ} XRBoundedReferenceSpace: {writable: true, enumerable: false, configurable: true, value: ƒ} XRDOMOverlayState: {writable: true, enumerable: false, configurable: true, value: ƒ} XRFrame: {writable: true, enumerable: false, configurable: true, value: ƒ} XRHitTestResult: {writable: true, enumerable: false, configurable: true, value: ƒ} XRHitTestSource: {writable: true, enumerable: false, configurable: true, value: ƒ} XRInputSource: {writable: true, enumerable: false, configurable: true, value: ƒ} XRInputSourceArray: {writable: true, enumerable: false, configurable: true, value: ƒ} XRInputSourceEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} XRInputSourcesChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} XRPose: {writable: true, enumerable: false, configurable: true, value: ƒ} XRRay: {writable: true, enumerable: false, configurable: true, value: ƒ} XRReferenceSpace: {writable: true, enumerable: false, configurable: true, value: ƒ} XRReferenceSpaceEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} XRRenderState: {writable: true, enumerable: false, configurable: true, value: ƒ} XRRigidTransform: {writable: true, enumerable: false, configurable: true, value: ƒ} XRSession: {writable: true, enumerable: false, configurable: true, value: ƒ} XRSessionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} XRSpace: {writable: true, enumerable: false, configurable: true, value: ƒ} XRSystem: {writable: true, enumerable: false, configurable: true, value: ƒ} XRTransientInputHitTestResult: {writable: true, enumerable: false, configurable: true, value: ƒ} XRTransientInputHitTestSource: {writable: true, enumerable: false, configurable: true, value: ƒ} XRView: {writable: true, enumerable: false, configurable: true, value: ƒ} XRViewerPose: {writable: true, enumerable: false, configurable: true, value: ƒ} XRViewport: {writable: true, enumerable: false, configurable: true, value: ƒ} XRWebGLLayer: {writable: true, enumerable: false, configurable: true, value: ƒ} XSLTProcessor: {writable: true, enumerable: false, configurable: true, value: ƒ} alert: {writable: true, enumerable: true, configurable: true, value: ƒ} applicationCache: {set: undefined, enumerable: true, configurable: true, get: ƒ} atob: {writable: true, enumerable: true, configurable: true, value: ƒ} blur: {writable: true, enumerable: true, configurable: true, value: ƒ} btoa: {writable: true, enumerable: true, configurable: true, value: ƒ} caches: {set: undefined, enumerable: true, configurable: true, get: ƒ} cancelAnimationFrame: {writable: true, enumerable: true, configurable: true, value: ƒ} cancelIdleCallback: {writable: true, enumerable: true, configurable: true, value: ƒ} captureEvents: {writable: true, enumerable: true, configurable: true, value: ƒ} chrome: {value: {…}, writable: true, enumerable: true, configurable: false} clear: {writable: true, enumerable: false, configurable: true, value: ƒ} clearInterval: {writable: true, enumerable: true, configurable: true, value: ƒ} clearTimeout: {writable: true, enumerable: true, configurable: true, value: ƒ} clientInformation: {enumerable: true, configurable: true, get: ƒ, set: ƒ} close: {writable: true, enumerable: true, configurable: true, value: ƒ} closed: {value: false, writable: false, enumerable: true, configurable: true} confirm: {writable: true, enumerable: true, configurable: true, value: ƒ} console: {value: console, writable: true, enumerable: false, configurable: true} copy: {writable: true, enumerable: false, configurable: true, value: ƒ} createImageBitmap: {writable: true, enumerable: true, configurable: true, value: ƒ} crypto: {set: undefined, enumerable: true, configurable: true, get: ƒ} customElements: {set: undefined, enumerable: true, configurable: true, get: ƒ} debug: {writable: true, enumerable: false, configurable: true, value: ƒ} decodeURI: {writable: true, enumerable: false, configurable: true, value: ƒ} decodeURIComponent: {writable: true, enumerable: false, configurable: true, value: ƒ} defaultStatus: {enumerable: true, configurable: true, get: ƒ, set: ƒ} defaultstatus: {enumerable: true, configurable: true, get: ƒ, set: ƒ} devicePixelRatio: {enumerable: true, configurable: true, get: ƒ, set: ƒ} dir: {writable: true, enumerable: false, configurable: true, value: ƒ} dirxml: {writable: true, enumerable: false, configurable: true, value: ƒ} document: {set: undefined, enumerable: true, configurable: false, get: ƒ} encodeURI: {writable: true, enumerable: false, configurable: true, value: ƒ} encodeURIComponent: {writable: true, enumerable: false, configurable: true, value: ƒ} escape: {writable: true, enumerable: false, configurable: true, value: ƒ} eval: {writable: true, enumerable: false, configurable: true, value: ƒ} event: {enumerable: false, configurable: true, get: ƒ, set: ƒ} external: {enumerable: true, configurable: true, get: ƒ, set: ƒ} fetch: {writable: true, enumerable: true, configurable: true, value: ƒ} find: {writable: true, enumerable: true, configurable: true, value: ƒ} focus: {writable: true, enumerable: true, configurable: true, value: ƒ} frameElement: {set: undefined, enumerable: true, configurable: true, get: ƒ} frames: {value: Window, writable: true, enumerable: true, configurable: true} getComputedStyle: {writable: true, enumerable: true, configurable: true, value: ƒ} getEventListeners: {writable: true, enumerable: false, configurable: true, value: ƒ} getSelection: {writable: true, enumerable: true, configurable: true, value: ƒ} globalThis: {value: Window, writable: true, enumerable: false, configurable: true} history: {set: undefined, enumerable: true, configurable: true, get: ƒ} indexedDB: {set: undefined, enumerable: true, configurable: true, get: ƒ} innerHeight: {enumerable: true, configurable: true, get: ƒ, set: ƒ} innerWidth: {enumerable: true, configurable: true, get: ƒ, set: ƒ} inspect: {writable: true, enumerable: false, configurable: true, value: ƒ} isFinite: {writable: true, enumerable: false, configurable: true, value: ƒ} isNaN: {writable: true, enumerable: false, configurable: true, value: ƒ} isSecureContext: {set: undefined, enumerable: true, configurable: true, get: ƒ} keys: {writable: true, enumerable: false, configurable: true, value: ƒ} length: {value: 0, writable: true, enumerable: true, configurable: true} localStorage: {set: undefined, enumerable: true, configurable: true, get: ƒ} location: {value: Location, writable: true, enumerable: true, configurable: false} locationbar: {enumerable: true, configurable: true, get: ƒ, set: ƒ} matchMedia: {writable: true, enumerable: true, configurable: true, value: ƒ} menubar: {enumerable: true, configurable: true, get: ƒ, set: ƒ} monitor: {writable: true, enumerable: false, configurable: true, value: ƒ} monitorEvents: {writable: true, enumerable: false, configurable: true, value: ƒ} moveBy: {writable: true, enumerable: true, configurable: true, value: ƒ} moveTo: {writable: true, enumerable: true, configurable: true, value: ƒ} name: {enumerable: true, configurable: true, get: ƒ, set: ƒ} navigator: {set: undefined, enumerable: true, configurable: true, get: ƒ} offscreenBuffering: {enumerable: false, configurable: true, get: ƒ, set: ƒ} onabort: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onafterprint: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onanimationend: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onanimationiteration: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onanimationstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onappinstalled: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onauxclick: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onbeforeinstallprompt: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onbeforeprint: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onbeforeunload: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onblur: {enumerable: true, configurable: true, get: ƒ, set: ƒ} oncancel: {enumerable: true, configurable: true, get: ƒ, set: ƒ} oncanplay: {enumerable: true, configurable: true, get: ƒ, set: ƒ} oncanplaythrough: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onchange: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onclick: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onclose: {enumerable: true, configurable: true, get: ƒ, set: ƒ} oncontextmenu: {enumerable: true, configurable: true, get: ƒ, set: ƒ} oncuechange: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondblclick: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondevicemotion: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondeviceorientation: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondeviceorientationabsolute: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondrag: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondragend: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondragenter: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondragleave: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondragover: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondragstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondrop: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ondurationchange: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onemptied: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onended: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onerror: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onfocus: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onformdata: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ongotpointercapture: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onhashchange: {enumerable: true, configurable: true, get: ƒ, set: ƒ} oninput: {enumerable: true, configurable: true, get: ƒ, set: ƒ} oninvalid: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onkeydown: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onkeypress: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onkeyup: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onlanguagechange: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onload: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onloadeddata: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onloadedmetadata: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onloadstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onlostpointercapture: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmessage: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmessageerror: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmousedown: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmouseenter: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmouseleave: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmousemove: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmouseout: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmouseover: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmouseup: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onmousewheel: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onoffline: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ononline: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpagehide: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpageshow: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpause: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onplay: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onplaying: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpointercancel: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpointerdown: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpointerenter: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpointerleave: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpointermove: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpointerout: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpointerover: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpointerrawupdate: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpointerup: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onpopstate: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onprogress: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onratechange: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onrejectionhandled: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onreset: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onresize: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onscroll: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onsearch: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onseeked: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onseeking: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onselect: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onselectionchange: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onselectstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onstalled: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onstorage: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onsubmit: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onsuspend: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ontimeupdate: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ontoggle: {enumerable: true, configurable: true, get: ƒ, set: ƒ} ontransitionend: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onunhandledrejection: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onunload: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onvolumechange: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onwaiting: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onwebkitanimationend: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onwebkitanimationiteration: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onwebkitanimationstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onwebkittransitionend: {enumerable: true, configurable: true, get: ƒ, set: ƒ} onwheel: {enumerable: true, configurable: true, get: ƒ, set: ƒ} open: {writable: true, enumerable: true, configurable: true, value: ƒ} openDatabase: {writable: true, enumerable: true, configurable: true, value: ƒ} opener: {value: null, writable: true, enumerable: true, configurable: true} origin: {enumerable: true, configurable: true, get: ƒ, set: ƒ} outerHeight: {enumerable: true, configurable: true, get: ƒ, set: ƒ} outerWidth: {enumerable: true, configurable: true, get: ƒ, set: ƒ} pageXOffset: {enumerable: true, configurable: true, get: ƒ, set: ƒ} pageYOffset: {enumerable: true, configurable: true, get: ƒ, set: ƒ} parent: {value: Window, writable: true, enumerable: true, configurable: true} parseFloat: {writable: true, enumerable: false, configurable: true, value: ƒ} parseInt: {writable: true, enumerable: false, configurable: true, value: ƒ} performance: {enumerable: true, configurable: true, get: ƒ, set: ƒ} personalbar: {enumerable: true, configurable: true, get: ƒ, set: ƒ} postMessage: {writable: true, enumerable: true, configurable: true, value: ƒ} print: {writable: true, enumerable: true, configurable: true, value: ƒ} profile: {writable: true, enumerable: false, configurable: true, value: ƒ} profileEnd: {writable: true, enumerable: false, configurable: true, value: ƒ} prompt: {writable: true, enumerable: true, configurable: true, value: ƒ} queryObjects: {writable: true, enumerable: false, configurable: true, value: ƒ} queueMicrotask: {writable: true, enumerable: true, configurable: true, value: ƒ} releaseEvents: {writable: true, enumerable: true, configurable: true, value: ƒ} requestAnimationFrame: {writable: true, enumerable: true, configurable: true, value: ƒ} requestIdleCallback: {writable: true, enumerable: true, configurable: true, value: ƒ} resizeBy: {writable: true, enumerable: true, configurable: true, value: ƒ} resizeTo: {writable: true, enumerable: true, configurable: true, value: ƒ} screen: {enumerable: true, configurable: true, get: ƒ, set: ƒ} screenLeft: {enumerable: true, configurable: true, get: ƒ, set: ƒ} screenTop: {enumerable: true, configurable: true, get: ƒ, set: ƒ} screenX: {enumerable: true, configurable: true, get: ƒ, set: ƒ} screenY: {enumerable: true, configurable: true, get: ƒ, set: ƒ} scroll: {writable: true, enumerable: true, configurable: true, value: ƒ} scrollBy: {writable: true, enumerable: true, configurable: true, value: ƒ} scrollTo: {writable: true, enumerable: true, configurable: true, value: ƒ} scrollX: {enumerable: true, configurable: true, get: ƒ, set: ƒ} scrollY: {enumerable: true, configurable: true, get: ƒ, set: ƒ} scrollbars: {enumerable: true, configurable: true, get: ƒ, set: ƒ} self: {value: Window, writable: true, enumerable: true, configurable: true} sessionStorage: {set: undefined, enumerable: true, configurable: true, get: ƒ} setInterval: {writable: true, enumerable: true, configurable: true, value: ƒ} setTimeout: {writable: true, enumerable: true, configurable: true, value: ƒ} speechSynthesis: {set: undefined, enumerable: true, configurable: true, get: ƒ} status: {enumerable: true, configurable: true, get: ƒ, set: ƒ} statusbar: {enumerable: true, configurable: true, get: ƒ, set: ƒ} stop: {writable: true, enumerable: true, configurable: true, value: ƒ} styleMedia: {set: undefined, enumerable: true, configurable: true, get: ƒ} table: {writable: true, enumerable: false, configurable: true, value: ƒ} toolbar: {enumerable: true, configurable: true, get: ƒ, set: ƒ} top: {value: Window, writable: false, enumerable: true, configurable: false} trustedTypes: {set: undefined, enumerable: true, configurable: true, get: ƒ} undebug: {writable: true, enumerable: false, configurable: true, value: ƒ} undefined: {value: undefined, writable: false, enumerable: false, configurable: false} unescape: {writable: true, enumerable: false, configurable: true, value: ƒ} unmonitor: {writable: true, enumerable: false, configurable: true, value: ƒ} unmonitorEvents: {writable: true, enumerable: false, configurable: true, value: ƒ} values: {writable: true, enumerable: false, configurable: true, value: ƒ} visualViewport: {enumerable: true, configurable: true, get: ƒ, set: ƒ} webkitCancelAnimationFrame: {writable: true, enumerable: true, configurable: true, value: ƒ} webkitMediaStream: {writable: true, enumerable: false, configurable: true, value: ƒ} webkitRTCPeerConnection: {writable: true, enumerable: false, configurable: true, value: ƒ} webkitRequestAnimationFrame: {writable: true, enumerable: true, configurable: true, value: ƒ} webkitRequestFileSystem: {writable: true, enumerable: true, configurable: true, value: ƒ} webkitResolveLocalFileSystemURL: {writable: true, enumerable: true, configurable: true, value: ƒ} webkitSpeechGrammar: {writable: true, enumerable: false, configurable: true, value: ƒ} webkitSpeechGrammarList: {writable: true, enumerable: false, configurable: true, value: ƒ} webkitSpeechRecognition: {writable: true, enumerable: false, configurable: true, value: ƒ} webkitSpeechRecognitionError: {writable: true, enumerable: false, configurable: true, value: ƒ} webkitSpeechRecognitionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ} webkitStorageInfo: {set: undefined, enumerable: true, configurable: true, get: ƒ} webkitURL: {writable: true, enumerable: false, configurable: true, value: ƒ} window: {value: Window, writable: false, enumerable: true, configurable: false}