usingnamespace @import("strings.zig"); // If something is in this list, then a direct identifier expression or property // access chain matching this will be assumed to have no side effects and will // be removed. // // This also means code is allowed to be reordered past things in this list. For // example, if "console.log" is in this list, permitting reordering allows for // "if (a) console.log(b); else console.log(c)" to be reordered and transformed // into "console.log(a ? b : c)". Notice that "a" and "console.log" are in a // different order, which can only happen if evaluating the "console.log" // property access can be assumed to not change the value of "a". // // Note that membership in this list says nothing about whether calling any of // these functions has any side effects. It only says something about // referencing these function without calling them. pub const GlobalDefinesKey = [][]string{ // These global identifiers should exist in all JavaScript environments. This // deliberately omits "NaN", "Infinity", and "undefined" because these are // treated as automatically-inlined constants instead of identifiers. []string{"Array"}, []string{"Boolean"}, []string{"Function"}, []string{"Math"}, []string{"Number"}, []string{"Object"}, []string{"RegExp"}, []string{"String"}, // Object: Static methods // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object#Static_methods []string{ "Object", "assign" }, []string{ "Object", "create" }, []string{ "Object", "defineProperties" }, []string{ "Object", "defineProperty" }, []string{ "Object", "entries" }, []string{ "Object", "freeze" }, []string{ "Object", "fromEntries" }, []string{ "Object", "getOwnPropertyDescriptor" }, []string{ "Object", "getOwnPropertyDescriptors" }, []string{ "Object", "getOwnPropertyNames" }, []string{ "Object", "getOwnPropertySymbols" }, []string{ "Object", "getPrototypeOf" }, []string{ "Object", "is" }, []string{ "Object", "isExtensible" }, []string{ "Object", "isFrozen" }, []string{ "Object", "isSealed" }, []string{ "Object", "keys" }, []string{ "Object", "preventExtensions" }, []string{ "Object", "seal" }, []string{ "Object", "setPrototypeOf" }, []string{ "Object", "values" }, // Object: Instance methods // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object#Instance_methods []string{ "Object", "prototype", "__defineGetter__" }, []string{ "Object", "prototype", "__defineSetter__" }, []string{ "Object", "prototype", "__lookupGetter__" }, []string{ "Object", "prototype", "__lookupSetter__" }, []string{ "Object", "prototype", "hasOwnProperty" }, []string{ "Object", "prototype", "isPrototypeOf" }, []string{ "Object", "prototype", "propertyIsEnumerable" }, []string{ "Object", "prototype", "toLocaleString" }, []string{ "Object", "prototype", "toString" }, []string{ "Object", "prototype", "unwatch" }, []string{ "Object", "prototype", "valueOf" }, []string{ "Object", "prototype", "watch" }, // Math: Static properties // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math#Static_properties []string{ "Math", "E" }, []string{ "Math", "LN10" }, []string{ "Math", "LN2" }, []string{ "Math", "LOG10E" }, []string{ "Math", "LOG2E" }, []string{ "Math", "PI" }, []string{ "Math", "SQRT1_2" }, []string{ "Math", "SQRT2" }, // Math: Static methods // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math#Static_methods []string{ "Math", "abs" }, []string{ "Math", "acos" }, []string{ "Math", "acosh" }, []string{ "Math", "asin" }, []string{ "Math", "asinh" }, []string{ "Math", "atan" }, []string{ "Math", "atan2" }, []string{ "Math", "atanh" }, []string{ "Math", "cbrt" }, []string{ "Math", "ceil" }, []string{ "Math", "clz32" }, []string{ "Math", "cos" }, []string{ "Math", "cosh" }, []string{ "Math", "exp" }, []string{ "Math", "expm1" }, []string{ "Math", "floor" }, []string{ "Math", "fround" }, []string{ "Math", "hypot" }, []string{ "Math", "imul" }, []string{ "Math", "log" }, []string{ "Math", "log10" }, []string{ "Math", "log1p" }, []string{ "Math", "log2" }, []string{ "Math", "max" }, []string{ "Math", "min" }, []string{ "Math", "pow" }, []string{ "Math", "random" }, []string{ "Math", "round" }, []string{ "Math", "sign" }, []string{ "Math", "sin" }, []string{ "Math", "sinh" }, []string{ "Math", "sqrt" }, []string{ "Math", "tan" }, []string{ "Math", "tanh" }, []string{ "Math", "trunc" }, // Other globals present in both the browser and node (except "eval" because // it has special behavior) []string{"AbortController"}, []string{"AbortSignal"}, []string{"AggregateError"}, []string{"ArrayBuffer"}, []string{"BigInt"}, []string{"DataView"}, []string{"Date"}, []string{"Error"}, []string{"EvalError"}, []string{"Event"}, []string{"EventTarget"}, []string{"Float32Array"}, []string{"Float64Array"}, []string{"Int16Array"}, []string{"Int32Array"}, []string{"Int8Array"}, []string{"Intl"}, []string{"JSON"}, []string{"Map"}, []string{"MessageChannel"}, []string{"MessageEvent"}, []string{"MessagePort"}, []string{"Promise"}, []string{"Proxy"}, []string{"RangeError"}, []string{"ReferenceError"}, []string{"Reflect"}, []string{"Set"}, []string{"Symbol"}, []string{"SyntaxError"}, []string{"TextDecoder"}, []string{"TextEncoder"}, []string{"TypeError"}, []string{"URIError"}, []string{"URL"}, []string{"URLSearchParams"}, []string{"Uint16Array"}, []string{"Uint32Array"}, []string{"Uint8Array"}, []string{"Uint8ClampedArray"}, []string{"WeakMap"}, []string{"WeakSet"}, []string{"WebAssembly"}, []string{"clearInterval"}, []string{"clearTimeout"}, []string{"console"}, []string{"decodeURI"}, []string{"decodeURIComponent"}, []string{"encodeURI"}, []string{"encodeURIComponent"}, []string{"escape"}, []string{"globalThis"}, []string{"isFinite"}, []string{"isNaN"}, []string{"parseFloat"}, []string{"parseInt"}, []string{"queueMicrotask"}, []string{"setInterval"}, []string{"setTimeout"}, []string{"unescape"}, // Console method references are assumed to have no side effects // https://developer.mozilla.org/en-US/docs/Web/API/console []string{ "console", "assert" }, []string{ "console", "clear" }, []string{ "console", "count" }, []string{ "console", "countReset" }, []string{ "console", "debug" }, []string{ "console", "dir" }, []string{ "console", "dirxml" }, []string{ "console", "error" }, []string{ "console", "group" }, []string{ "console", "groupCollapsed" }, []string{ "console", "groupEnd" }, []string{ "console", "info" }, []string{ "console", "log" }, []string{ "console", "table" }, []string{ "console", "time" }, []string{ "console", "timeEnd" }, []string{ "console", "timeLog" }, []string{ "console", "trace" }, []string{ "console", "warn" }, // CSSOM APIs []string{"CSSAnimation"}, []string{"CSSFontFaceRule"}, []string{"CSSImportRule"}, []string{"CSSKeyframeRule"}, []string{"CSSKeyframesRule"}, []string{"CSSMediaRule"}, []string{"CSSNamespaceRule"}, []string{"CSSPageRule"}, []string{"CSSRule"}, []string{"CSSRuleList"}, []string{"CSSStyleDeclaration"}, []string{"CSSStyleRule"}, []string{"CSSStyleSheet"}, []string{"CSSSupportsRule"}, []string{"CSSTransition"}, // SVG DOM []string{"SVGAElement"}, []string{"SVGAngle"}, []string{"SVGAnimateElement"}, []string{"SVGAnimateMotionElement"}, []string{"SVGAnimateTransformElement"}, []string{"SVGAnimatedAngle"}, []string{"SVGAnimatedBoolean"}, []string{"SVGAnimatedEnumeration"}, []string{"SVGAnimatedInteger"}, []string{"SVGAnimatedLength"}, []string{"SVGAnimatedLengthList"}, []string{"SVGAnimatedNumber"}, []string{"SVGAnimatedNumberList"}, []string{"SVGAnimatedPreserveAspectRatio"}, []string{"SVGAnimatedRect"}, []string{"SVGAnimatedString"}, []string{"SVGAnimatedTransformList"}, []string{"SVGAnimationElement"}, []string{"SVGCircleElement"}, []string{"SVGClipPathElement"}, []string{"SVGComponentTransferFunctionElement"}, []string{"SVGDefsElement"}, []string{"SVGDescElement"}, []string{"SVGElement"}, []string{"SVGEllipseElement"}, []string{"SVGFEBlendElement"}, []string{"SVGFEColorMatrixElement"}, []string{"SVGFEComponentTransferElement"}, []string{"SVGFECompositeElement"}, []string{"SVGFEConvolveMatrixElement"}, []string{"SVGFEDiffuseLightingElement"}, []string{"SVGFEDisplacementMapElement"}, []string{"SVGFEDistantLightElement"}, []string{"SVGFEDropShadowElement"}, []string{"SVGFEFloodElement"}, []string{"SVGFEFuncAElement"}, []string{"SVGFEFuncBElement"}, []string{"SVGFEFuncGElement"}, []string{"SVGFEFuncRElement"}, []string{"SVGFEGaussianBlurElement"}, []string{"SVGFEImageElement"}, []string{"SVGFEMergeElement"}, []string{"SVGFEMergeNodeElement"}, []string{"SVGFEMorphologyElement"}, []string{"SVGFEOffsetElement"}, []string{"SVGFEPointLightElement"}, []string{"SVGFESpecularLightingElement"}, []string{"SVGFESpotLightElement"}, []string{"SVGFETileElement"}, []string{"SVGFETurbulenceElement"}, []string{"SVGFilterElement"}, []string{"SVGForeignObjectElement"}, []string{"SVGGElement"}, []string{"SVGGeometryElement"}, []string{"SVGGradientElement"}, []string{"SVGGraphicsElement"}, []string{"SVGImageElement"}, []string{"SVGLength"}, []string{"SVGLengthList"}, []string{"SVGLineElement"}, []string{"SVGLinearGradientElement"}, []string{"SVGMPathElement"}, []string{"SVGMarkerElement"}, []string{"SVGMaskElement"}, []string{"SVGMatrix"}, []string{"SVGMetadataElement"}, []string{"SVGNumber"}, []string{"SVGNumberList"}, []string{"SVGPathElement"}, []string{"SVGPatternElement"}, []string{"SVGPoint"}, []string{"SVGPointList"}, []string{"SVGPolygonElement"}, []string{"SVGPolylineElement"}, []string{"SVGPreserveAspectRatio"}, []string{"SVGRadialGradientElement"}, []string{"SVGRect"}, []string{"SVGRectElement"}, []string{"SVGSVGElement"}, []string{"SVGScriptElement"}, []string{"SVGSetElement"}, []string{"SVGStopElement"}, []string{"SVGStringList"}, []string{"SVGStyleElement"}, []string{"SVGSwitchElement"}, []string{"SVGSymbolElement"}, []string{"SVGTSpanElement"}, []string{"SVGTextContentElement"}, []string{"SVGTextElement"}, []string{"SVGTextPathElement"}, []string{"SVGTextPositioningElement"}, []string{"SVGTitleElement"}, []string{"SVGTransform"}, []string{"SVGTransformList"}, []string{"SVGUnitTypes"}, []string{"SVGUseElement"}, []string{"SVGViewElement"}, // Other browser APIs // // This list contains all globals present in modern versions of Chrome, Safari, // and Firefox except for the following properties, since they have a side effect // of triggering layout (https://gist.github.com/paulirish/5d52fb081b3570c81e3a): // // - scrollX // - scrollY // - innerWidth // - innerHeight // - pageXOffset // - pageYOffset // // The following globals have also been removed since they sometimes throw an // exception when accessed, which is a side effect (for more information see // https://stackoverflow.com/a/33047477): // // - localStorage // - sessionStorage // []string{"AnalyserNode"}, []string{"Animation"}, []string{"AnimationEffect"}, []string{"AnimationEvent"}, []string{"AnimationPlaybackEvent"}, []string{"AnimationTimeline"}, []string{"Attr"}, []string{"Audio"}, []string{"AudioBuffer"}, []string{"AudioBufferSourceNode"}, []string{"AudioDestinationNode"}, []string{"AudioListener"}, []string{"AudioNode"}, []string{"AudioParam"}, []string{"AudioProcessingEvent"}, []string{"AudioScheduledSourceNode"}, []string{"BarProp"}, []string{"BeforeUnloadEvent"}, []string{"BiquadFilterNode"}, []string{"Blob"}, []string{"BlobEvent"}, []string{"ByteLengthQueuingStrategy"}, []string{"CDATASection"}, []string{"CSS"}, []string{"CanvasGradient"}, []string{"CanvasPattern"}, []string{"CanvasRenderingContext2D"}, []string{"ChannelMergerNode"}, []string{"ChannelSplitterNode"}, []string{"CharacterData"}, []string{"ClipboardEvent"}, []string{"CloseEvent"}, []string{"Comment"}, []string{"CompositionEvent"}, []string{"ConvolverNode"}, []string{"CountQueuingStrategy"}, []string{"Crypto"}, []string{"CustomElementRegistry"}, []string{"CustomEvent"}, []string{"DOMException"}, []string{"DOMImplementation"}, []string{"DOMMatrix"}, []string{"DOMMatrixReadOnly"}, []string{"DOMParser"}, []string{"DOMPoint"}, []string{"DOMPointReadOnly"}, []string{"DOMQuad"}, []string{"DOMRect"}, []string{"DOMRectList"}, []string{"DOMRectReadOnly"}, []string{"DOMStringList"}, []string{"DOMStringMap"}, []string{"DOMTokenList"}, []string{"DataTransfer"}, []string{"DataTransferItem"}, []string{"DataTransferItemList"}, []string{"DelayNode"}, []string{"Document"}, []string{"DocumentFragment"}, []string{"DocumentTimeline"}, []string{"DocumentType"}, []string{"DragEvent"}, []string{"DynamicsCompressorNode"}, []string{"Element"}, []string{"ErrorEvent"}, []string{"EventSource"}, []string{"File"}, []string{"FileList"}, []string{"FileReader"}, []string{"FocusEvent"}, []string{"FontFace"}, []string{"FormData"}, []string{"GainNode"}, []string{"Gamepad"}, []string{"GamepadButton"}, []string{"GamepadEvent"}, []string{"Geolocation"}, []string{"GeolocationPositionError"}, []string{"HTMLAllCollection"}, []string{"HTMLAnchorElement"}, []string{"HTMLAreaElement"}, []string{"HTMLAudioElement"}, []string{"HTMLBRElement"}, []string{"HTMLBaseElement"}, []string{"HTMLBodyElement"}, []string{"HTMLButtonElement"}, []string{"HTMLCanvasElement"}, []string{"HTMLCollection"}, []string{"HTMLDListElement"}, []string{"HTMLDataElement"}, []string{"HTMLDataListElement"}, []string{"HTMLDetailsElement"}, []string{"HTMLDirectoryElement"}, []string{"HTMLDivElement"}, []string{"HTMLDocument"}, []string{"HTMLElement"}, []string{"HTMLEmbedElement"}, []string{"HTMLFieldSetElement"}, []string{"HTMLFontElement"}, []string{"HTMLFormControlsCollection"}, []string{"HTMLFormElement"}, []string{"HTMLFrameElement"}, []string{"HTMLFrameSetElement"}, []string{"HTMLHRElement"}, []string{"HTMLHeadElement"}, []string{"HTMLHeadingElement"}, []string{"HTMLHtmlElement"}, []string{"HTMLIFrameElement"}, []string{"HTMLImageElement"}, []string{"HTMLInputElement"}, []string{"HTMLLIElement"}, []string{"HTMLLabelElement"}, []string{"HTMLLegendElement"}, []string{"HTMLLinkElement"}, []string{"HTMLMapElement"}, []string{"HTMLMarqueeElement"}, []string{"HTMLMediaElement"}, []string{"HTMLMenuElement"}, []string{"HTMLMetaElement"}, []string{"HTMLMeterElement"}, []string{"HTMLModElement"}, []string{"HTMLOListElement"}, []string{"HTMLObjectElement"}, []string{"HTMLOptGroupElement"}, []string{"HTMLOptionElement"}, []string{"HTMLOptionsCollection"}, []string{"HTMLOutputElement"}, []string{"HTMLParagraphElement"}, []string{"HTMLParamElement"}, []string{"HTMLPictureElement"}, []string{"HTMLPreElement"}, []string{"HTMLProgressElement"}, []string{"HTMLQuoteElement"}, []string{"HTMLScriptElement"}, []string{"HTMLSelectElement"}, []string{"HTMLSlotElement"}, []string{"HTMLSourceElement"}, []string{"HTMLSpanElement"}, []string{"HTMLStyleElement"}, []string{"HTMLTableCaptionElement"}, []string{"HTMLTableCellElement"}, []string{"HTMLTableColElement"}, []string{"HTMLTableElement"}, []string{"HTMLTableRowElement"}, []string{"HTMLTableSectionElement"}, []string{"HTMLTemplateElement"}, []string{"HTMLTextAreaElement"}, []string{"HTMLTimeElement"}, []string{"HTMLTitleElement"}, []string{"HTMLTrackElement"}, []string{"HTMLUListElement"}, []string{"HTMLUnknownElement"}, []string{"HTMLVideoElement"}, []string{"HashChangeEvent"}, []string{"Headers"}, []string{"History"}, []string{"IDBCursor"}, []string{"IDBCursorWithValue"}, []string{"IDBDatabase"}, []string{"IDBFactory"}, []string{"IDBIndex"}, []string{"IDBKeyRange"}, []string{"IDBObjectStore"}, []string{"IDBOpenDBRequest"}, []string{"IDBRequest"}, []string{"IDBTransaction"}, []string{"IDBVersionChangeEvent"}, []string{"Image"}, []string{"ImageData"}, []string{"InputEvent"}, []string{"IntersectionObserver"}, []string{"IntersectionObserverEntry"}, []string{"KeyboardEvent"}, []string{"KeyframeEffect"}, []string{"Location"}, []string{"MediaCapabilities"}, []string{"MediaElementAudioSourceNode"}, []string{"MediaEncryptedEvent"}, []string{"MediaError"}, []string{"MediaList"}, []string{"MediaQueryList"}, []string{"MediaQueryListEvent"}, []string{"MediaRecorder"}, []string{"MediaSource"}, []string{"MediaStream"}, []string{"MediaStreamAudioDestinationNode"}, []string{"MediaStreamAudioSourceNode"}, []string{"MediaStreamTrack"}, []string{"MediaStreamTrackEvent"}, []string{"MimeType"}, []string{"MimeTypeArray"}, []string{"MouseEvent"}, []string{"MutationEvent"}, []string{"MutationObserver"}, []string{"MutationRecord"}, []string{"NamedNodeMap"}, []string{"Navigator"}, []string{"Node"}, []string{"NodeFilter"}, []string{"NodeIterator"}, []string{"NodeList"}, []string{"Notification"}, []string{"OfflineAudioCompletionEvent"}, []string{"Option"}, []string{"OscillatorNode"}, []string{"PageTransitionEvent"}, []string{"Path2D"}, []string{"Performance"}, []string{"PerformanceEntry"}, []string{"PerformanceMark"}, []string{"PerformanceMeasure"}, []string{"PerformanceNavigation"}, []string{"PerformanceObserver"}, []string{"PerformanceObserverEntryList"}, []string{"PerformanceResourceTiming"}, []string{"PerformanceTiming"}, []string{"PeriodicWave"}, []string{"Plugin"}, []string{"PluginArray"}, []string{"PointerEvent"}, []string{"PopStateEvent"}, []string{"ProcessingInstruction"}, []string{"ProgressEvent"}, []string{"PromiseRejectionEvent"}, []string{"RTCCertificate"}, []string{"RTCDTMFSender"}, []string{"RTCDTMFToneChangeEvent"}, []string{"RTCDataChannel"}, []string{"RTCDataChannelEvent"}, []string{"RTCIceCandidate"}, []string{"RTCPeerConnection"}, []string{"RTCPeerConnectionIceEvent"}, []string{"RTCRtpReceiver"}, []string{"RTCRtpSender"}, []string{"RTCRtpTransceiver"}, []string{"RTCSessionDescription"}, []string{"RTCStatsReport"}, []string{"RTCTrackEvent"}, []string{"RadioNodeList"}, []string{"Range"}, []string{"ReadableStream"}, []string{"Request"}, []string{"ResizeObserver"}, []string{"ResizeObserverEntry"}, []string{"Response"}, []string{"Screen"}, []string{"ScriptProcessorNode"}, []string{"SecurityPolicyViolationEvent"}, []string{"Selection"}, []string{"ShadowRoot"}, []string{"SourceBuffer"}, []string{"SourceBufferList"}, []string{"SpeechSynthesisEvent"}, []string{"SpeechSynthesisUtterance"}, []string{"StaticRange"}, []string{"Storage"}, []string{"StorageEvent"}, []string{"StyleSheet"}, []string{"StyleSheetList"}, []string{"Text"}, []string{"TextMetrics"}, []string{"TextTrack"}, []string{"TextTrackCue"}, []string{"TextTrackCueList"}, []string{"TextTrackList"}, []string{"TimeRanges"}, []string{"TrackEvent"}, []string{"TransitionEvent"}, []string{"TreeWalker"}, []string{"UIEvent"}, []string{"VTTCue"}, []string{"ValidityState"}, []string{"VisualViewport"}, []string{"WaveShaperNode"}, []string{"WebGLActiveInfo"}, []string{"WebGLBuffer"}, []string{"WebGLContextEvent"}, []string{"WebGLFramebuffer"}, []string{"WebGLProgram"}, []string{"WebGLQuery"}, []string{"WebGLRenderbuffer"}, []string{"WebGLRenderingContext"}, []string{"WebGLSampler"}, []string{"WebGLShader"}, []string{"WebGLShaderPrecisionFormat"}, []string{"WebGLSync"}, []string{"WebGLTexture"}, []string{"WebGLUniformLocation"}, []string{"WebKitCSSMatrix"}, []string{"WebSocket"}, []string{"WheelEvent"}, []string{"Window"}, []string{"Worker"}, []string{"XMLDocument"}, []string{"XMLHttpRequest"}, []string{"XMLHttpRequestEventTarget"}, []string{"XMLHttpRequestUpload"}, []string{"XMLSerializer"}, []string{"XPathEvaluator"}, []string{"XPathExpression"}, []string{"XPathResult"}, []string{"XSLTProcessor"}, []string{"alert"}, []string{"atob"}, []string{"blur"}, []string{"btoa"}, []string{"cancelAnimationFrame"}, []string{"captureEvents"}, []string{"close"}, []string{"closed"}, []string{"confirm"}, []string{"customElements"}, []string{"devicePixelRatio"}, []string{"document"}, []string{"event"}, []string{"fetch"}, []string{"find"}, []string{"focus"}, []string{"frameElement"}, []string{"frames"}, []string{"getComputedStyle"}, []string{"getSelection"}, []string{"history"}, []string{"indexedDB"}, []string{"isSecureContext"}, []string{"length"}, []string{"location"}, []string{"locationbar"}, []string{"matchMedia"}, []string{"menubar"}, []string{"moveBy"}, []string{"moveTo"}, []string{"name"}, []string{"navigator"}, []string{"onabort"}, []string{"onafterprint"}, []string{"onanimationend"}, []string{"onanimationiteration"}, []string{"onanimationstart"}, []string{"onbeforeprint"}, []string{"onbeforeunload"}, []string{"onblur"}, []string{"oncanplay"}, []string{"oncanplaythrough"}, []string{"onchange"}, []string{"onclick"}, []string{"oncontextmenu"}, []string{"oncuechange"}, []string{"ondblclick"}, []string{"ondrag"}, []string{"ondragend"}, []string{"ondragenter"}, []string{"ondragleave"}, []string{"ondragover"}, []string{"ondragstart"}, []string{"ondrop"}, []string{"ondurationchange"}, []string{"onemptied"}, []string{"onended"}, []string{"onerror"}, []string{"onfocus"}, []string{"ongotpointercapture"}, []string{"onhashchange"}, []string{"oninput"}, []string{"oninvalid"}, []string{"onkeydown"}, []string{"onkeypress"}, []string{"onkeyup"}, []string{"onlanguagechange"}, []string{"onload"}, []string{"onloadeddata"}, []string{"onloadedmetadata"}, []string{"onloadstart"}, []string{"onlostpointercapture"}, []string{"onmessage"}, []string{"onmousedown"}, []string{"onmouseenter"}, []string{"onmouseleave"}, []string{"onmousemove"}, []string{"onmouseout"}, []string{"onmouseover"}, []string{"onmouseup"}, []string{"onoffline"}, []string{"ononline"}, []string{"onpagehide"}, []string{"onpageshow"}, []string{"onpause"}, []string{"onplay"}, []string{"onplaying"}, []string{"onpointercancel"}, []string{"onpointerdown"}, []string{"onpointerenter"}, []string{"onpointerleave"}, []string{"onpointermove"}, []string{"onpointerout"}, []string{"onpointerover"}, []string{"onpointerup"}, []string{"onpopstate"}, []string{"onprogress"}, []string{"onratechange"}, []string{"onrejectionhandled"}, []string{"onreset"}, []string{"onresize"}, []string{"onscroll"}, []string{"onseeked"}, []string{"onseeking"}, []string{"onselect"}, []string{"onstalled"}, []string{"onstorage"}, []string{"onsubmit"}, []string{"onsuspend"}, []string{"ontimeupdate"}, []string{"ontoggle"}, []string{"ontransitioncancel"}, []string{"ontransitionend"}, []string{"ontransitionrun"}, []string{"ontransitionstart"}, []string{"onunhandledrejection"}, []string{"onunload"}, []string{"onvolumechange"}, []string{"onwaiting"}, []string{"onwebkitanimationend"}, []string{"onwebkitanimationiteration"}, []string{"onwebkitanimationstart"}, []string{"onwebkittransitionend"}, []string{"onwheel"}, []string{"open"}, []string{"opener"}, []string{"origin"}, []string{"outerHeight"}, []string{"outerWidth"}, []string{"parent"}, []string{"performance"}, []string{"personalbar"}, []string{"postMessage"}, []string{"print"}, []string{"prompt"}, []string{"releaseEvents"}, []string{"requestAnimationFrame"}, []string{"resizeBy"}, []string{"resizeTo"}, []string{"screen"}, []string{"screenLeft"}, []string{"screenTop"}, []string{"screenX"}, []string{"screenY"}, []string{"scroll"}, []string{"scrollBy"}, []string{"scrollTo"}, []string{"scrollbars"}, []string{"self"}, []string{"speechSynthesis"}, []string{"status"}, []string{"statusbar"}, []string{"stop"}, []string{"toolbar"}, []string{"top"}, []string{"webkitURL"}, []string{"window"}, };