packages feed

ghcjs-dom 0.8.0.0 → 0.10.0.0

raw patch · 5 files changed

Files

+ ChangeLog.md view
@@ -0,0 +1,17 @@+# Revision history for ghcjs-dom (ghcjs-dom, ghcjs-dom-jsaddle, ghcjs-dom-javascript)++## 0.10.0.0++A major release matching jsaddle-dom 0.10: the bindings are regenerated+from current specifications (webref Web IDL and MDN browser-compat-data)+by `dom-gen`.  See jsaddle-dom's ChangeLog.md for the API changes and its+API-CHANGES-0.10.md for the full list.++* ghcjs-dom-javascript (the GHC JavaScript backend) is now generated too,+  with typed `foreign import javascript` calls and no dependency on+  jsaddle.  It needs ghcjs-base >= 0.8.1 (for `GHCJS.Int53` and the+  `Object` / `JSArray` marshalling instances).+* ghcjs-dom uses ghcjs-dom-javascript on GHC's JavaScript backend (unless+  built with `-f-jsffi`) and ghcjs-dom-jsaddle otherwise.  The GHCJS 8+  backend (`ghcjs-dom-jsffi`) is not regenerated and stays at 0.9.x.+* `GHCJS.DOM.Debug` uses `Document.elementFromPoint` and `PointerEvent`.
ghcjs-dom.cabal view
@@ -1,596 +1,1501 @@-name: ghcjs-dom-version: 0.8.0.0-cabal-version: >=1.24-build-type: Simple-license: MIT-license-file: LICENSE-maintainer: Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>-synopsis: DOM library that supports both GHCJS and GHC-description: Documentent Object Model (DOM) functions that work with-             GHCJS, but can also be used with GHC and a Browser.-author: Hamish Mackenzie-data-dir: ""-category: Web--Source-Repository head-  type:         git-  location:     https://github.com/ghcjs/ghcjs-dom-  subdir:       ghcjs-dom--flag jsffi-    description: Use JavaScriptFFI extension for GHCJS JavaScript output-    default: True-    manual: True--library-    build-depends: base <5,-                   transformers >=0.2 && <0.6,-                   text >= 0.11.0.6 && < 1.3--    default-language: Haskell2010--    exposed: True-    buildable: True--    if (impl(ghcjs) && flag(jsffi))-        build-depends: ghcjs-dom-jsffi ==0.8.0.0-    else-        build-depends: ghcjs-dom-jsaddle ==0.8.0.0--    reexported-modules:-            GHCJS.DOM-          , GHCJS.DOM.Types-          , GHCJS.DOM.EventM-          -- (cd src/JSDOM/Generated && for a in *.hs; do echo "          , GHCJS.DOM.${a%.*}"; done | pbcopy)-          , GHCJS.DOM.ANGLEInstancedArrays-          , GHCJS.DOM.AbstractWorker-          , GHCJS.DOM.AnalyserNode-          , GHCJS.DOM.Animatable-          , GHCJS.DOM.Animation-          , GHCJS.DOM.AnimationEvent-          , GHCJS.DOM.ApplePayPaymentAuthorizedEvent-          , GHCJS.DOM.ApplePayPaymentMethodSelectedEvent-          , GHCJS.DOM.ApplePaySession-          , GHCJS.DOM.ApplePayShippingContactSelectedEvent-          , GHCJS.DOM.ApplePayShippingMethodSelectedEvent-          , GHCJS.DOM.ApplePayValidateMerchantEvent-          , GHCJS.DOM.ApplicationCache-          , GHCJS.DOM.Attr-          , GHCJS.DOM.AudioBuffer-          , GHCJS.DOM.AudioBufferCallback-          , GHCJS.DOM.AudioBufferSourceNode-          , GHCJS.DOM.AudioContext-          , GHCJS.DOM.AudioDestinationNode-          , GHCJS.DOM.AudioListener-          , GHCJS.DOM.AudioNode-          , GHCJS.DOM.AudioParam-          , GHCJS.DOM.AudioProcessingEvent-          , GHCJS.DOM.AudioTrack-          , GHCJS.DOM.AudioTrackList-          , GHCJS.DOM.AutocompleteErrorEvent-          , GHCJS.DOM.BarProp-          , GHCJS.DOM.BeforeLoadEvent-          , GHCJS.DOM.BeforeUnloadEvent-          , GHCJS.DOM.BiquadFilterNode-          , GHCJS.DOM.Blob-          , GHCJS.DOM.Body-          , GHCJS.DOM.ByteLengthQueuingStrategy-          , GHCJS.DOM.CSS-          , GHCJS.DOM.CSSFontFaceLoadEvent-          , GHCJS.DOM.CSSFontFaceRule-          , GHCJS.DOM.CSSImportRule-          , GHCJS.DOM.CSSKeyframeRule-          , GHCJS.DOM.CSSKeyframesRule-          , GHCJS.DOM.CSSMediaRule-          , GHCJS.DOM.CSSNamespaceRule-          , GHCJS.DOM.CSSPageRule-          , GHCJS.DOM.CSSPrimitiveValue-          , GHCJS.DOM.CSSRule-          , GHCJS.DOM.CSSRuleList-          , GHCJS.DOM.CSSStyleDeclaration-          , GHCJS.DOM.CSSStyleRule-          , GHCJS.DOM.CSSStyleSheet-          , GHCJS.DOM.CSSSupportsRule-          , GHCJS.DOM.CSSValue-          , GHCJS.DOM.CSSValueList-          , GHCJS.DOM.CanvasGradient-          , GHCJS.DOM.CanvasPath-          , GHCJS.DOM.CanvasRenderingContext2D-          , GHCJS.DOM.CharacterData-          , GHCJS.DOM.ChildNode-          , GHCJS.DOM.ClientRect-          , GHCJS.DOM.ClientRectList-          , GHCJS.DOM.ClipboardEvent-          , GHCJS.DOM.CloseEvent-          , GHCJS.DOM.CommandLineAPIHost-          , GHCJS.DOM.Comment-          , GHCJS.DOM.CompositionEvent-          , GHCJS.DOM.ConvolverNode-          , GHCJS.DOM.Coordinates-          , GHCJS.DOM.CountQueuingStrategy-          , GHCJS.DOM.Counter-          , GHCJS.DOM.Crypto-          , GHCJS.DOM.CryptoKey-          , GHCJS.DOM.CustomElementRegistry-          , GHCJS.DOM.CustomEvent-          , GHCJS.DOM.DOMError-          , GHCJS.DOM.DOMException-          , GHCJS.DOM.DOMImplementation-          , GHCJS.DOM.DOMNamedFlowCollection-          , GHCJS.DOM.DOMParser-          , GHCJS.DOM.DOMPoint-          , GHCJS.DOM.DOMPointReadOnly-          , GHCJS.DOM.DOMRect-          , GHCJS.DOM.DOMRectReadOnly-          , GHCJS.DOM.DOMStringList-          , GHCJS.DOM.DOMStringMap-          , GHCJS.DOM.DOMTokenList-          , GHCJS.DOM.DataCue-          , GHCJS.DOM.DataTransfer-          , GHCJS.DOM.DataTransferItem-          , GHCJS.DOM.DataTransferItemList-          , GHCJS.DOM.Database-          , GHCJS.DOM.DatabaseCallback-          , GHCJS.DOM.DedicatedWorkerGlobalScope-          , GHCJS.DOM.DelayNode-          , GHCJS.DOM.DeviceMotionEvent-          , GHCJS.DOM.DeviceOrientationEvent-          , GHCJS.DOM.DeviceProximityEvent-          , GHCJS.DOM.Document-          , GHCJS.DOM.DocumentFragment-          , GHCJS.DOM.DocumentOrShadowRoot-          , GHCJS.DOM.DocumentTimeline-          , GHCJS.DOM.DocumentType-          , GHCJS.DOM.DynamicsCompressorNode-          , GHCJS.DOM.EXTBlendMinMax-          , GHCJS.DOM.EXTTextureFilterAnisotropic-          , GHCJS.DOM.EXTsRGB-          , GHCJS.DOM.Element-          , GHCJS.DOM.Enums-          , GHCJS.DOM.ErrorEvent-          , GHCJS.DOM.Event-          , GHCJS.DOM.EventListener-          , GHCJS.DOM.EventSource-          , GHCJS.DOM.EventTarget-          , GHCJS.DOM.File-          , GHCJS.DOM.FileError-          , GHCJS.DOM.FileException-          , GHCJS.DOM.FileList-          , GHCJS.DOM.FileReader-          , GHCJS.DOM.FileReaderSync-          , GHCJS.DOM.FocusEvent-          , GHCJS.DOM.FontFace-          , GHCJS.DOM.FontFaceSet-          , GHCJS.DOM.FormData-          , GHCJS.DOM.GainNode-          , GHCJS.DOM.Gamepad-          , GHCJS.DOM.GamepadButton-          , GHCJS.DOM.GamepadEvent-          , GHCJS.DOM.Geolocation-          , GHCJS.DOM.Geoposition-          , GHCJS.DOM.GlobalCrypto-          , GHCJS.DOM.GlobalEventHandlers-          , GHCJS.DOM.GlobalPerformance-          , GHCJS.DOM.HTMLAllCollection-          , GHCJS.DOM.HTMLAnchorElement-          , GHCJS.DOM.HTMLAppletElement-          , GHCJS.DOM.HTMLAreaElement-          , GHCJS.DOM.HTMLAttachmentElement-          , GHCJS.DOM.HTMLBRElement-          , GHCJS.DOM.HTMLBaseElement-          , GHCJS.DOM.HTMLBodyElement-          , GHCJS.DOM.HTMLButtonElement-          , GHCJS.DOM.HTMLCanvasElement-          , GHCJS.DOM.HTMLCollection-          , GHCJS.DOM.HTMLDListElement-          , GHCJS.DOM.HTMLDataElement-          , GHCJS.DOM.HTMLDataListElement-          , GHCJS.DOM.HTMLDetailsElement-          , GHCJS.DOM.HTMLDirectoryElement-          , GHCJS.DOM.HTMLDivElement-          , GHCJS.DOM.HTMLDocument-          , GHCJS.DOM.HTMLElement-          , GHCJS.DOM.HTMLEmbedElement-          , GHCJS.DOM.HTMLFieldSetElement-          , GHCJS.DOM.HTMLFontElement-          , GHCJS.DOM.HTMLFormControlsCollection-          , GHCJS.DOM.HTMLFormElement-          , GHCJS.DOM.HTMLFrameElement-          , GHCJS.DOM.HTMLFrameSetElement-          , GHCJS.DOM.HTMLHRElement-          , GHCJS.DOM.HTMLHeadElement-          , GHCJS.DOM.HTMLHeadingElement-          , GHCJS.DOM.HTMLHtmlElement-          , GHCJS.DOM.HTMLHyperlinkElementUtils-          , GHCJS.DOM.HTMLIFrameElement-          , GHCJS.DOM.HTMLImageElement-          , GHCJS.DOM.HTMLInputElement-          , GHCJS.DOM.HTMLKeygenElement-          , GHCJS.DOM.HTMLLIElement-          , GHCJS.DOM.HTMLLabelElement-          , GHCJS.DOM.HTMLLegendElement-          , GHCJS.DOM.HTMLLinkElement-          , GHCJS.DOM.HTMLMapElement-          , GHCJS.DOM.HTMLMarqueeElement-          , GHCJS.DOM.HTMLMediaElement-          , GHCJS.DOM.HTMLMenuElement-          , GHCJS.DOM.HTMLMetaElement-          , GHCJS.DOM.HTMLMeterElement-          , GHCJS.DOM.HTMLModElement-          , GHCJS.DOM.HTMLOListElement-          , GHCJS.DOM.HTMLObjectElement-          , GHCJS.DOM.HTMLOptGroupElement-          , GHCJS.DOM.HTMLOptionElement-          , GHCJS.DOM.HTMLOptionsCollection-          , GHCJS.DOM.HTMLOutputElement-          , GHCJS.DOM.HTMLParagraphElement-          , GHCJS.DOM.HTMLParamElement-          , GHCJS.DOM.HTMLPreElement-          , GHCJS.DOM.HTMLProgressElement-          , GHCJS.DOM.HTMLQuoteElement-          , GHCJS.DOM.HTMLScriptElement-          , GHCJS.DOM.HTMLSelectElement-          , GHCJS.DOM.HTMLSlotElement-          , GHCJS.DOM.HTMLSourceElement-          , GHCJS.DOM.HTMLStyleElement-          , GHCJS.DOM.HTMLTableCaptionElement-          , GHCJS.DOM.HTMLTableCellElement-          , GHCJS.DOM.HTMLTableColElement-          , GHCJS.DOM.HTMLTableElement-          , GHCJS.DOM.HTMLTableRowElement-          , GHCJS.DOM.HTMLTableSectionElement-          , GHCJS.DOM.HTMLTemplateElement-          , GHCJS.DOM.HTMLTextAreaElement-          , GHCJS.DOM.HTMLTimeElement-          , GHCJS.DOM.HTMLTitleElement-          , GHCJS.DOM.HTMLTrackElement-          , GHCJS.DOM.HTMLUListElement-          , GHCJS.DOM.HTMLVideoElement-          , GHCJS.DOM.HashChangeEvent-          , GHCJS.DOM.Headers-          , GHCJS.DOM.History-          , GHCJS.DOM.IDBCursor-          , GHCJS.DOM.IDBCursorWithValue-          , GHCJS.DOM.IDBDatabase-          , GHCJS.DOM.IDBFactory-          , GHCJS.DOM.IDBIndex-          , GHCJS.DOM.IDBKeyRange-          , GHCJS.DOM.IDBObjectStore-          , GHCJS.DOM.IDBOpenDBRequest-          , GHCJS.DOM.IDBRequest-          , GHCJS.DOM.IDBTransaction-          , GHCJS.DOM.IDBVersionChangeEvent-          , GHCJS.DOM.ImageData-          , GHCJS.DOM.InputEvent-          , GHCJS.DOM.InspectorFrontendHost-          , GHCJS.DOM.IntersectionObserver-          , GHCJS.DOM.IntersectionObserverCallback-          , GHCJS.DOM.IntersectionObserverEntry-          , GHCJS.DOM.KeyboardEvent-          , GHCJS.DOM.KeyframeEffect-          , GHCJS.DOM.Location-          , GHCJS.DOM.MediaController-          , GHCJS.DOM.MediaControlsHost-          , GHCJS.DOM.MediaDeviceInfo-          , GHCJS.DOM.MediaDevices-          , GHCJS.DOM.MediaElementAudioSourceNode-          , GHCJS.DOM.MediaEncryptedEvent-          , GHCJS.DOM.MediaError-          , GHCJS.DOM.MediaKeyMessageEvent-          , GHCJS.DOM.MediaKeySession-          , GHCJS.DOM.MediaKeyStatusMap-          , GHCJS.DOM.MediaKeySystemAccess-          , GHCJS.DOM.MediaKeys-          , GHCJS.DOM.MediaList-          , GHCJS.DOM.MediaQueryList-          , GHCJS.DOM.MediaQueryListListener-          , GHCJS.DOM.MediaRemoteControls-          , GHCJS.DOM.MediaSession-          , GHCJS.DOM.MediaSource-          , GHCJS.DOM.MediaStream-          , GHCJS.DOM.MediaStreamAudioDestinationNode-          , GHCJS.DOM.MediaStreamAudioSourceNode-          , GHCJS.DOM.MediaStreamEvent-          , GHCJS.DOM.MediaStreamTrack-          , GHCJS.DOM.MediaStreamTrackEvent-          , GHCJS.DOM.MessageChannel-          , GHCJS.DOM.MessageEvent-          , GHCJS.DOM.MessagePort-          , GHCJS.DOM.MimeType-          , GHCJS.DOM.MimeTypeArray-          , GHCJS.DOM.MouseEvent-          , GHCJS.DOM.MutationEvent-          , GHCJS.DOM.MutationObserver-          , GHCJS.DOM.MutationRecord-          , GHCJS.DOM.NamedNodeMap-          , GHCJS.DOM.Navigator-          , GHCJS.DOM.NavigatorConcurrentHardware-          , GHCJS.DOM.NavigatorID-          , GHCJS.DOM.NavigatorLanguage-          , GHCJS.DOM.NavigatorOnLine-          , GHCJS.DOM.NavigatorUserMediaError-          , GHCJS.DOM.NavigatorUserMediaErrorCallback-          , GHCJS.DOM.NavigatorUserMediaSuccessCallback-          , GHCJS.DOM.Node-          , GHCJS.DOM.NodeFilter-          , GHCJS.DOM.NodeIterator-          , GHCJS.DOM.NodeList-          , GHCJS.DOM.NonDocumentTypeChildNode-          , GHCJS.DOM.NonElementParentNode-          , GHCJS.DOM.Notification-          , GHCJS.DOM.NotificationCenter-          , GHCJS.DOM.NotificationPermissionCallback-          , GHCJS.DOM.OESStandardDerivatives-          , GHCJS.DOM.OESTextureHalfFloat-          , GHCJS.DOM.OESVertexArrayObject-          , GHCJS.DOM.OfflineAudioCompletionEvent-          , GHCJS.DOM.OfflineAudioContext-          , GHCJS.DOM.OscillatorNode-          , GHCJS.DOM.OverconstrainedError-          , GHCJS.DOM.OverconstrainedErrorEvent-          , GHCJS.DOM.OverflowEvent-          , GHCJS.DOM.PageTransitionEvent-          , GHCJS.DOM.PannerNode-          , GHCJS.DOM.ParentNode-          , GHCJS.DOM.Path2D-          , GHCJS.DOM.Performance-          , GHCJS.DOM.PerformanceEntry-          , GHCJS.DOM.PerformanceNavigation-          , GHCJS.DOM.PerformanceObserver-          , GHCJS.DOM.PerformanceObserverCallback-          , GHCJS.DOM.PerformanceObserverEntryList-          , GHCJS.DOM.PerformanceResourceTiming-          , GHCJS.DOM.PerformanceTiming-          , GHCJS.DOM.Plugin-          , GHCJS.DOM.PluginArray-          , GHCJS.DOM.PopStateEvent-          , GHCJS.DOM.PositionCallback-          , GHCJS.DOM.PositionError-          , GHCJS.DOM.PositionErrorCallback-          , GHCJS.DOM.ProcessingInstruction-          , GHCJS.DOM.ProgressEvent-          , GHCJS.DOM.QuickTimePluginReplacement-          , GHCJS.DOM.RGBColor-          , GHCJS.DOM.RTCDTMFSender-          , GHCJS.DOM.RTCDTMFToneChangeEvent-          , GHCJS.DOM.RTCDataChannel-          , GHCJS.DOM.RTCDataChannelEvent-          , GHCJS.DOM.RTCIceCandidate-          , GHCJS.DOM.RTCIceCandidateEvent-          , GHCJS.DOM.RTCPeerConnection-          , GHCJS.DOM.RTCRtpReceiver-          , GHCJS.DOM.RTCRtpSender-          , GHCJS.DOM.RTCRtpTransceiver-          , GHCJS.DOM.RTCSessionDescription-          , GHCJS.DOM.RTCTrackEvent-          , GHCJS.DOM.RadioNodeList-          , GHCJS.DOM.Range-          , GHCJS.DOM.ReadableByteStreamController-          , GHCJS.DOM.ReadableStream-          , GHCJS.DOM.ReadableStreamDefaultController-          , GHCJS.DOM.ReadableStreamDefaultReader-          , GHCJS.DOM.ReadableStreamSource-          , GHCJS.DOM.Rect-          , GHCJS.DOM.Request-          , GHCJS.DOM.RequestAnimationFrameCallback-          , GHCJS.DOM.Response-          , GHCJS.DOM.SQLError-          , GHCJS.DOM.SQLException-          , GHCJS.DOM.SQLResultSet-          , GHCJS.DOM.SQLResultSetRowList-          , GHCJS.DOM.SQLStatementCallback-          , GHCJS.DOM.SQLStatementErrorCallback-          , GHCJS.DOM.SQLTransaction-          , GHCJS.DOM.SQLTransactionCallback-          , GHCJS.DOM.SQLTransactionErrorCallback-          , GHCJS.DOM.SVGAElement-          , GHCJS.DOM.SVGAltGlyphElement-          , GHCJS.DOM.SVGAngle-          , GHCJS.DOM.SVGAnimatedAngle-          , GHCJS.DOM.SVGAnimatedBoolean-          , GHCJS.DOM.SVGAnimatedEnumeration-          , GHCJS.DOM.SVGAnimatedInteger-          , GHCJS.DOM.SVGAnimatedLength-          , GHCJS.DOM.SVGAnimatedLengthList-          , GHCJS.DOM.SVGAnimatedNumber-          , GHCJS.DOM.SVGAnimatedNumberList-          , GHCJS.DOM.SVGAnimatedPreserveAspectRatio-          , GHCJS.DOM.SVGAnimatedRect-          , GHCJS.DOM.SVGAnimatedString-          , GHCJS.DOM.SVGAnimatedTransformList-          , GHCJS.DOM.SVGAnimationElement-          , GHCJS.DOM.SVGCircleElement-          , GHCJS.DOM.SVGClipPathElement-          , GHCJS.DOM.SVGComponentTransferFunctionElement-          , GHCJS.DOM.SVGCursorElement-          , GHCJS.DOM.SVGElement-          , GHCJS.DOM.SVGEllipseElement-          , GHCJS.DOM.SVGException-          , GHCJS.DOM.SVGExternalResourcesRequired-          , GHCJS.DOM.SVGFEBlendElement-          , GHCJS.DOM.SVGFEColorMatrixElement-          , GHCJS.DOM.SVGFEComponentTransferElement-          , GHCJS.DOM.SVGFECompositeElement-          , GHCJS.DOM.SVGFEConvolveMatrixElement-          , GHCJS.DOM.SVGFEDiffuseLightingElement-          , GHCJS.DOM.SVGFEDisplacementMapElement-          , GHCJS.DOM.SVGFEDistantLightElement-          , GHCJS.DOM.SVGFEDropShadowElement-          , GHCJS.DOM.SVGFEGaussianBlurElement-          , GHCJS.DOM.SVGFEImageElement-          , GHCJS.DOM.SVGFEMergeNodeElement-          , GHCJS.DOM.SVGFEMorphologyElement-          , GHCJS.DOM.SVGFEOffsetElement-          , GHCJS.DOM.SVGFEPointLightElement-          , GHCJS.DOM.SVGFESpecularLightingElement-          , GHCJS.DOM.SVGFESpotLightElement-          , GHCJS.DOM.SVGFETileElement-          , GHCJS.DOM.SVGFETurbulenceElement-          , GHCJS.DOM.SVGFilterElement-          , GHCJS.DOM.SVGFilterPrimitiveStandardAttributes-          , GHCJS.DOM.SVGFitToViewBox-          , GHCJS.DOM.SVGForeignObjectElement-          , GHCJS.DOM.SVGGlyphRefElement-          , GHCJS.DOM.SVGGradientElement-          , GHCJS.DOM.SVGGraphicsElement-          , GHCJS.DOM.SVGImageElement-          , GHCJS.DOM.SVGLength-          , GHCJS.DOM.SVGLengthList-          , GHCJS.DOM.SVGLineElement-          , GHCJS.DOM.SVGLinearGradientElement-          , GHCJS.DOM.SVGMarkerElement-          , GHCJS.DOM.SVGMaskElement-          , GHCJS.DOM.SVGMatrix-          , GHCJS.DOM.SVGNumber-          , GHCJS.DOM.SVGNumberList-          , GHCJS.DOM.SVGPathElement-          , GHCJS.DOM.SVGPathSeg-          , GHCJS.DOM.SVGPathSegArcAbs-          , GHCJS.DOM.SVGPathSegArcRel-          , GHCJS.DOM.SVGPathSegCurvetoCubicAbs-          , GHCJS.DOM.SVGPathSegCurvetoCubicRel-          , GHCJS.DOM.SVGPathSegCurvetoCubicSmoothAbs-          , GHCJS.DOM.SVGPathSegCurvetoCubicSmoothRel-          , GHCJS.DOM.SVGPathSegCurvetoQuadraticAbs-          , GHCJS.DOM.SVGPathSegCurvetoQuadraticRel-          , GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothAbs-          , GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothRel-          , GHCJS.DOM.SVGPathSegLinetoAbs-          , GHCJS.DOM.SVGPathSegLinetoHorizontalAbs-          , GHCJS.DOM.SVGPathSegLinetoHorizontalRel-          , GHCJS.DOM.SVGPathSegLinetoRel-          , GHCJS.DOM.SVGPathSegLinetoVerticalAbs-          , GHCJS.DOM.SVGPathSegLinetoVerticalRel-          , GHCJS.DOM.SVGPathSegList-          , GHCJS.DOM.SVGPathSegMovetoAbs-          , GHCJS.DOM.SVGPathSegMovetoRel-          , GHCJS.DOM.SVGPatternElement-          , GHCJS.DOM.SVGPoint-          , GHCJS.DOM.SVGPointList-          , GHCJS.DOM.SVGPolygonElement-          , GHCJS.DOM.SVGPolylineElement-          , GHCJS.DOM.SVGPreserveAspectRatio-          , GHCJS.DOM.SVGRadialGradientElement-          , GHCJS.DOM.SVGRect-          , GHCJS.DOM.SVGRectElement-          , GHCJS.DOM.SVGRenderingIntent-          , GHCJS.DOM.SVGSVGElement-          , GHCJS.DOM.SVGScriptElement-          , GHCJS.DOM.SVGStopElement-          , GHCJS.DOM.SVGStringList-          , GHCJS.DOM.SVGStyleElement-          , GHCJS.DOM.SVGTests-          , GHCJS.DOM.SVGTextContentElement-          , GHCJS.DOM.SVGTextPathElement-          , GHCJS.DOM.SVGTextPositioningElement-          , GHCJS.DOM.SVGTransform-          , GHCJS.DOM.SVGTransformList-          , GHCJS.DOM.SVGURIReference-          , GHCJS.DOM.SVGUnitTypes-          , GHCJS.DOM.SVGUseElement-          , GHCJS.DOM.SVGViewElement-          , GHCJS.DOM.SVGViewSpec-          , GHCJS.DOM.SVGZoomAndPan-          , GHCJS.DOM.SVGZoomEvent-          , GHCJS.DOM.Screen-          , GHCJS.DOM.ScriptProcessorNode-          , GHCJS.DOM.SecurityPolicyViolationEvent-          , GHCJS.DOM.Selection-          , GHCJS.DOM.ShadowRoot-          , GHCJS.DOM.Slotable-          , GHCJS.DOM.SourceBuffer-          , GHCJS.DOM.SourceBufferList-          , GHCJS.DOM.SpeechSynthesis-          , GHCJS.DOM.SpeechSynthesisEvent-          , GHCJS.DOM.SpeechSynthesisUtterance-          , GHCJS.DOM.SpeechSynthesisVoice-          , GHCJS.DOM.StaticRange-          , GHCJS.DOM.Storage-          , GHCJS.DOM.StorageErrorCallback-          , GHCJS.DOM.StorageEvent-          , GHCJS.DOM.StorageInfo-          , GHCJS.DOM.StorageQuota-          , GHCJS.DOM.StorageQuotaCallback-          , GHCJS.DOM.StorageUsageCallback-          , GHCJS.DOM.StringCallback-          , GHCJS.DOM.StyleMedia-          , GHCJS.DOM.StyleSheet-          , GHCJS.DOM.StyleSheetList-          , GHCJS.DOM.SubtleCrypto-          , GHCJS.DOM.Text-          , GHCJS.DOM.TextDecoder-          , GHCJS.DOM.TextEncoder-          , GHCJS.DOM.TextEvent-          , GHCJS.DOM.TextMetrics-          , GHCJS.DOM.TextTrack-          , GHCJS.DOM.TextTrackCue-          , GHCJS.DOM.TextTrackCueList-          , GHCJS.DOM.TextTrackList-          , GHCJS.DOM.TimeRanges-          , GHCJS.DOM.Touch-          , GHCJS.DOM.TouchEvent-          , GHCJS.DOM.TouchList-          , GHCJS.DOM.TrackEvent-          , GHCJS.DOM.TransitionEvent-          , GHCJS.DOM.TreeWalker-          , GHCJS.DOM.UIEvent-          , GHCJS.DOM.URL-          , GHCJS.DOM.URLSearchParams-          , GHCJS.DOM.UserMessageHandler-          , GHCJS.DOM.VTTCue-          , GHCJS.DOM.VTTRegion-          , GHCJS.DOM.VTTRegionList-          , GHCJS.DOM.ValidityState-          , GHCJS.DOM.VideoPlaybackQuality-          , GHCJS.DOM.VideoTrack-          , GHCJS.DOM.VideoTrackList-          , GHCJS.DOM.VoidCallback-          , GHCJS.DOM.WaveShaperNode-          , GHCJS.DOM.WebGL2RenderingContext-          , GHCJS.DOM.WebGLActiveInfo-          , GHCJS.DOM.WebGLCompressedTextureATC-          , GHCJS.DOM.WebGLCompressedTexturePVRTC-          , GHCJS.DOM.WebGLCompressedTextureS3TC-          , GHCJS.DOM.WebGLContextEvent-          , GHCJS.DOM.WebGLDebugRendererInfo-          , GHCJS.DOM.WebGLDebugShaders-          , GHCJS.DOM.WebGLDepthTexture-          , GHCJS.DOM.WebGLDrawBuffers-          , GHCJS.DOM.WebGLLoseContext-          , GHCJS.DOM.WebGLRenderingContextBase-          , GHCJS.DOM.WebGLShaderPrecisionFormat-          , GHCJS.DOM.WebKitAnimationEvent-          , GHCJS.DOM.WebKitCSSMatrix-          , GHCJS.DOM.WebKitCSSRegionRule-          , GHCJS.DOM.WebKitCSSViewportRule-          , GHCJS.DOM.WebKitMediaKeyError-          , GHCJS.DOM.WebKitMediaKeyMessageEvent-          , GHCJS.DOM.WebKitMediaKeyNeededEvent-          , GHCJS.DOM.WebKitMediaKeySession-          , GHCJS.DOM.WebKitMediaKeys-          , GHCJS.DOM.WebKitNamedFlow-          , GHCJS.DOM.WebKitNamespace-          , GHCJS.DOM.WebKitPlaybackTargetAvailabilityEvent-          , GHCJS.DOM.WebKitPoint-          , GHCJS.DOM.WebKitSubtleCrypto-          , GHCJS.DOM.WebKitTransitionEvent-          , GHCJS.DOM.WebSocket-          , GHCJS.DOM.WheelEvent-          , GHCJS.DOM.Window-          , GHCJS.DOM.WindowEventHandlers-          , GHCJS.DOM.WindowOrWorkerGlobalScope-          , GHCJS.DOM.Worker-          , GHCJS.DOM.WorkerGlobalScope-          , GHCJS.DOM.WorkerLocation-          , GHCJS.DOM.WorkerNavigator-          , GHCJS.DOM.WritableStream-          , GHCJS.DOM.XMLHttpRequest-          , GHCJS.DOM.XMLHttpRequestEventTarget-          , GHCJS.DOM.XMLHttpRequestProgressEvent-          , GHCJS.DOM.XMLSerializer-          , GHCJS.DOM.XPathEvaluator-          , GHCJS.DOM.XPathException-          , GHCJS.DOM.XPathExpression-          , GHCJS.DOM.XPathNSResolver-          , GHCJS.DOM.XPathResult-          , GHCJS.DOM.XSLTProcessor+cabal-version: 3.6+name: ghcjs-dom+version: 0.10.0.0+build-type: Simple+license: MIT+license-file: LICENSE+extra-doc-files: ChangeLog.md+maintainer: Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>+synopsis: DOM library that supports both GHCJS and GHC+description:+    Document Object Model (DOM) functions that work with+    GHCJS, but can also be used with GHC and a Browser.+category: Web+author: Hamish Mackenzie++tested-with:+  GHC == 8.8.1 || == 8.6.5 ||  == 8.4.4 || == 8.2.2 || == 8.0.2 || == 7.10.3,+  GHCJS == 8.4 || == 8.2++source-repository head+  type:         git+  location:     https://github.com/ghcjs/ghcjs-dom+  subdir:       ghcjs-dom++flag jsffi+    description:+        Use JavaScriptFFI extension for GHCJS JavaScript output+    manual: True++flag debug+    description:+        Enable debug features+    default: False+    manual: True++library+    build-depends: base <5,+                   containers >=0.5.7.1 && <0.9,+                   transformers >=0.2 && <0.7,+                   text >= 0.11.0.6 && < 2.2++    default-language: Haskell2010++    hs-source-dirs: src++    exposed-modules:+        GHCJS.DOM.Debug+        GHCJS.DOM.Debug.Internal+        GHCJS.DOM.Document++    if flag(debug)+        cpp-options: -DGHCJS_DOM_DEBUG++    -- The GHCJS 8 backend (ghcjs-dom-jsffi) stays at 0.9.x; from 0.10 the+    -- JavaScript FFI backend is for GHC's JavaScript backend only.+    if flag(jsffi) && impl(ghc >=9.6.4) && arch(javascript)+        build-depends:+            ghcjs-dom-javascript >=0.10.0.0 && <0.11+    else+        build-depends:+            ghcjs-dom-jsaddle >=0.10.0.0 && <0.11++    reexported-modules: GHCJS.DOM,+                        GHCJS.DOM.Types,+                        GHCJS.DOM.EventM,+                        GHCJS.DOM.EventTargetClosures,+    -- The list below is generated by dom-gen; do not edit.+                        GHCJS.DOM.ANGLE_instanced_arrays,+                        GHCJS.DOM.ARIAMixin,+                        GHCJS.DOM.ARIANotifyMixin,+                        GHCJS.DOM.AacEncoderConfig,+                        GHCJS.DOM.AbortController,+                        GHCJS.DOM.AbortSignal,+                        GHCJS.DOM.AbstractRange,+                        GHCJS.DOM.AbstractWorker,+                        GHCJS.DOM.AddEventListenerOptions,+                        GHCJS.DOM.AddressErrors,+                        GHCJS.DOM.AllAcceptedCredentialsOptions,+                        GHCJS.DOM.AnalyserNode,+                        GHCJS.DOM.AnalyserOptions,+                        GHCJS.DOM.Animatable,+                        GHCJS.DOM.Animation,+                        GHCJS.DOM.AnimationEffect,+                        GHCJS.DOM.AnimationEvent,+                        GHCJS.DOM.AnimationEventInit,+                        GHCJS.DOM.AnimationFrameProvider,+                        GHCJS.DOM.AnimationPlaybackEvent,+                        GHCJS.DOM.AnimationPlaybackEventInit,+                        GHCJS.DOM.AnimationTimeline,+                        GHCJS.DOM.AnimationTrigger,+                        GHCJS.DOM.AriaNotificationOptions,+                        GHCJS.DOM.AssignedNodesOptions,+                        GHCJS.DOM.Attr,+                        GHCJS.DOM.AudioBuffer,+                        GHCJS.DOM.AudioBufferOptions,+                        GHCJS.DOM.AudioBufferSourceNode,+                        GHCJS.DOM.AudioBufferSourceOptions,+                        GHCJS.DOM.AudioConfiguration,+                        GHCJS.DOM.AudioContext,+                        GHCJS.DOM.AudioContextOptions,+                        GHCJS.DOM.AudioData,+                        GHCJS.DOM.AudioDataCopyToOptions,+                        GHCJS.DOM.AudioDataInit,+                        GHCJS.DOM.AudioDataOutputCallback,+                        GHCJS.DOM.AudioDecoder,+                        GHCJS.DOM.AudioDecoderConfig,+                        GHCJS.DOM.AudioDecoderInit,+                        GHCJS.DOM.AudioDecoderSupport,+                        GHCJS.DOM.AudioDestinationNode,+                        GHCJS.DOM.AudioEncoder,+                        GHCJS.DOM.AudioEncoderConfig,+                        GHCJS.DOM.AudioEncoderInit,+                        GHCJS.DOM.AudioEncoderSupport,+                        GHCJS.DOM.AudioListener,+                        GHCJS.DOM.AudioNode,+                        GHCJS.DOM.AudioNodeOptions,+                        GHCJS.DOM.AudioParam,+                        GHCJS.DOM.AudioParamMap,+                        GHCJS.DOM.AudioProcessingEvent,+                        GHCJS.DOM.AudioProcessingEventInit,+                        GHCJS.DOM.AudioScheduledSourceNode,+                        GHCJS.DOM.AudioSinkOptions,+                        GHCJS.DOM.AudioTimestamp,+                        GHCJS.DOM.AudioTrack,+                        GHCJS.DOM.AudioTrackList,+                        GHCJS.DOM.AudioWorklet,+                        GHCJS.DOM.AudioWorkletGlobalScope,+                        GHCJS.DOM.AudioWorkletNode,+                        GHCJS.DOM.AudioWorkletNodeOptions,+                        GHCJS.DOM.AudioWorkletProcessor,+                        GHCJS.DOM.AudioWorkletProcessorConstructor,+                        GHCJS.DOM.AuthenticationExtensionsClientInputs,+                        GHCJS.DOM.AuthenticationExtensionsClientInputsJSON,+                        GHCJS.DOM.AuthenticationExtensionsClientOutputs,+                        GHCJS.DOM.AuthenticationExtensionsLargeBlobInputs,+                        GHCJS.DOM.AuthenticationExtensionsLargeBlobInputsJSON,+                        GHCJS.DOM.AuthenticationExtensionsLargeBlobOutputs,+                        GHCJS.DOM.AuthenticationExtensionsPRFInputs,+                        GHCJS.DOM.AuthenticationExtensionsPRFInputsJSON,+                        GHCJS.DOM.AuthenticationExtensionsPRFOutputs,+                        GHCJS.DOM.AuthenticationExtensionsPRFValues,+                        GHCJS.DOM.AuthenticationExtensionsPRFValuesJSON,+                        GHCJS.DOM.AuthenticationExtensionsPaymentInputs,+                        GHCJS.DOM.AuthenticationExtensionsPaymentOutputs,+                        GHCJS.DOM.AuthenticatorAssertionResponse,+                        GHCJS.DOM.AuthenticatorAttestationResponse,+                        GHCJS.DOM.AuthenticatorResponse,+                        GHCJS.DOM.AuthenticatorSelectionCriteria,+                        GHCJS.DOM.AutofillEvent,+                        GHCJS.DOM.AvcEncoderConfig,+                        GHCJS.DOM.BackgroundBlur,+                        GHCJS.DOM.BarProp,+                        GHCJS.DOM.BaseAudioContext,+                        GHCJS.DOM.BeforeUnloadEvent,+                        GHCJS.DOM.BiquadFilterNode,+                        GHCJS.DOM.BiquadFilterOptions,+                        GHCJS.DOM.Blob,+                        GHCJS.DOM.BlobCallback,+                        GHCJS.DOM.BlobEvent,+                        GHCJS.DOM.BlobEventInit,+                        GHCJS.DOM.BlobPropertyBag,+                        GHCJS.DOM.Body,+                        GHCJS.DOM.BroadcastChannel,+                        GHCJS.DOM.BrowserBoundSignature,+                        GHCJS.DOM.ByteLengthQueuingStrategy,+                        GHCJS.DOM.CDATASection,+                        GHCJS.DOM.CSS,+                        GHCJS.DOM.CSSAnimation,+                        GHCJS.DOM.CSSConditionRule,+                        GHCJS.DOM.CSSContainerCondition,+                        GHCJS.DOM.CSSContainerRule,+                        GHCJS.DOM.CSSCounterStyleRule,+                        GHCJS.DOM.CSSFontFaceDescriptors,+                        GHCJS.DOM.CSSFontFaceRule,+                        GHCJS.DOM.CSSFontFeatureValuesRule,+                        GHCJS.DOM.CSSFontPaletteValuesRule,+                        GHCJS.DOM.CSSGroupingRule,+                        GHCJS.DOM.CSSImageValue,+                        GHCJS.DOM.CSSImportRule,+                        GHCJS.DOM.CSSKeyframeRule,+                        GHCJS.DOM.CSSKeyframesRule,+                        GHCJS.DOM.CSSKeywordValue,+                        GHCJS.DOM.CSSLayerBlockRule,+                        GHCJS.DOM.CSSLayerStatementRule,+                        GHCJS.DOM.CSSMathClamp,+                        GHCJS.DOM.CSSMathInvert,+                        GHCJS.DOM.CSSMathMax,+                        GHCJS.DOM.CSSMathMin,+                        GHCJS.DOM.CSSMathNegate,+                        GHCJS.DOM.CSSMathProduct,+                        GHCJS.DOM.CSSMathSum,+                        GHCJS.DOM.CSSMathValue,+                        GHCJS.DOM.CSSMatrixComponent,+                        GHCJS.DOM.CSSMatrixComponentOptions,+                        GHCJS.DOM.CSSMediaRule,+                        GHCJS.DOM.CSSNamespaceRule,+                        GHCJS.DOM.CSSNestedDeclarations,+                        GHCJS.DOM.CSSNumericArray,+                        GHCJS.DOM.CSSNumericType,+                        GHCJS.DOM.CSSNumericValue,+                        GHCJS.DOM.CSSPageDescriptors,+                        GHCJS.DOM.CSSPageRule,+                        GHCJS.DOM.CSSPerspective,+                        GHCJS.DOM.CSSPositionTryDescriptors,+                        GHCJS.DOM.CSSPositionTryRule,+                        GHCJS.DOM.CSSPropertyRule,+                        GHCJS.DOM.CSSRotate,+                        GHCJS.DOM.CSSRule,+                        GHCJS.DOM.CSSRuleList,+                        GHCJS.DOM.CSSScale,+                        GHCJS.DOM.CSSScopeRule,+                        GHCJS.DOM.CSSSkew,+                        GHCJS.DOM.CSSSkewX,+                        GHCJS.DOM.CSSSkewY,+                        GHCJS.DOM.CSSStartingStyleRule,+                        GHCJS.DOM.CSSStyleDeclaration,+                        GHCJS.DOM.CSSStyleProperties,+                        GHCJS.DOM.CSSStyleRule,+                        GHCJS.DOM.CSSStyleSheet,+                        GHCJS.DOM.CSSStyleSheetInit,+                        GHCJS.DOM.CSSStyleValue,+                        GHCJS.DOM.CSSSupportsRule,+                        GHCJS.DOM.CSSTransformComponent,+                        GHCJS.DOM.CSSTransformValue,+                        GHCJS.DOM.CSSTransition,+                        GHCJS.DOM.CSSTranslate,+                        GHCJS.DOM.CSSUnitValue,+                        GHCJS.DOM.CSSUnparsedValue,+                        GHCJS.DOM.CSSVariableReferenceValue,+                        GHCJS.DOM.CSSViewTransitionRule,+                        GHCJS.DOM.Cache,+                        GHCJS.DOM.CacheQueryOptions,+                        GHCJS.DOM.CacheStorage,+                        GHCJS.DOM.CanvasCaptureMediaStreamTrack,+                        GHCJS.DOM.CanvasCompositing,+                        GHCJS.DOM.CanvasDrawImage,+                        GHCJS.DOM.CanvasDrawPath,+                        GHCJS.DOM.CanvasFillStrokeStyles,+                        GHCJS.DOM.CanvasFilters,+                        GHCJS.DOM.CanvasGradient,+                        GHCJS.DOM.CanvasImageData,+                        GHCJS.DOM.CanvasImageSmoothing,+                        GHCJS.DOM.CanvasPath,+                        GHCJS.DOM.CanvasPathDrawingStyles,+                        GHCJS.DOM.CanvasPattern,+                        GHCJS.DOM.CanvasRect,+                        GHCJS.DOM.CanvasRenderingContext2D,+                        GHCJS.DOM.CanvasRenderingContext2DSettings,+                        GHCJS.DOM.CanvasSettings,+                        GHCJS.DOM.CanvasShadowStyles,+                        GHCJS.DOM.CanvasState,+                        GHCJS.DOM.CanvasText,+                        GHCJS.DOM.CanvasTextDrawingStyles,+                        GHCJS.DOM.CanvasTransform,+                        GHCJS.DOM.CanvasUserInterface,+                        GHCJS.DOM.CaptureController,+                        GHCJS.DOM.CaretPosition,+                        GHCJS.DOM.CaretPositionFromPointOptions,+                        GHCJS.DOM.ChannelMergerNode,+                        GHCJS.DOM.ChannelMergerOptions,+                        GHCJS.DOM.ChannelSplitterNode,+                        GHCJS.DOM.ChannelSplitterOptions,+                        GHCJS.DOM.ChapterInformationInit,+                        GHCJS.DOM.CharacterData,+                        GHCJS.DOM.CheckVisibilityOptions,+                        GHCJS.DOM.ChildNode,+                        GHCJS.DOM.Client,+                        GHCJS.DOM.ClientQueryOptions,+                        GHCJS.DOM.Clients,+                        GHCJS.DOM.Clipboard,+                        GHCJS.DOM.ClipboardChangeEvent,+                        GHCJS.DOM.ClipboardEvent,+                        GHCJS.DOM.ClipboardEventInit,+                        GHCJS.DOM.ClipboardItem,+                        GHCJS.DOM.ClipboardItemOptions,+                        GHCJS.DOM.ClipboardUnsanitizedFormats,+                        GHCJS.DOM.CloseEvent,+                        GHCJS.DOM.CloseEventInit,+                        GHCJS.DOM.CloseWatcher,+                        GHCJS.DOM.CloseWatcherOptions,+                        GHCJS.DOM.CommandEvent,+                        GHCJS.DOM.CommandEventInit,+                        GHCJS.DOM.Comment,+                        GHCJS.DOM.CompositionEvent,+                        GHCJS.DOM.CompositionEventInit,+                        GHCJS.DOM.CompressionStream,+                        GHCJS.DOM.ComputedEffectTiming,+                        GHCJS.DOM.Console,+                        GHCJS.DOM.ConstantSourceNode,+                        GHCJS.DOM.ConstantSourceOptions,+                        GHCJS.DOM.ConstrainBooleanOrDOMStringParameters,+                        GHCJS.DOM.ConstrainBooleanParameters,+                        GHCJS.DOM.ConstrainDOMStringParameters,+                        GHCJS.DOM.ConstrainDoubleRange,+                        GHCJS.DOM.ConstrainPoint2DParameters,+                        GHCJS.DOM.ConstrainULongRange,+                        GHCJS.DOM.ContactAddress,+                        GHCJS.DOM.ContentVisibilityAutoStateChangeEvent,+                        GHCJS.DOM.ContentVisibilityAutoStateChangeEventInit,+                        GHCJS.DOM.ConvolverNode,+                        GHCJS.DOM.ConvolverOptions,+                        GHCJS.DOM.CookieChangeEvent,+                        GHCJS.DOM.CookieChangeEventInit,+                        GHCJS.DOM.CookieInit,+                        GHCJS.DOM.CookieListItem,+                        GHCJS.DOM.CookieStore,+                        GHCJS.DOM.CookieStoreDeleteOptions,+                        GHCJS.DOM.CookieStoreGetOptions,+                        GHCJS.DOM.CookieStoreManager,+                        GHCJS.DOM.CountQueuingStrategy,+                        GHCJS.DOM.CreateHTMLCallback,+                        GHCJS.DOM.CreateParserOptionsCallback,+                        GHCJS.DOM.CreateScriptCallback,+                        GHCJS.DOM.CreateScriptURLCallback,+                        GHCJS.DOM.Credential,+                        GHCJS.DOM.CredentialCreationOptions,+                        GHCJS.DOM.CredentialData,+                        GHCJS.DOM.CredentialPropertiesOutput,+                        GHCJS.DOM.CredentialRequestOptions,+                        GHCJS.DOM.CredentialsContainer,+                        GHCJS.DOM.Crypto,+                        GHCJS.DOM.CryptoKey,+                        GHCJS.DOM.CryptoKeyPair,+                        GHCJS.DOM.CurrentUserDetailsOptions,+                        GHCJS.DOM.CustomElementConstructor,+                        GHCJS.DOM.CustomElementRegistry,+                        GHCJS.DOM.CustomEvent,+                        GHCJS.DOM.CustomEventInit,+                        GHCJS.DOM.CustomStateSet,+                        GHCJS.DOM.DOMException,+                        GHCJS.DOM.DOMImplementation,+                        GHCJS.DOM.DOMMatrix,+                        GHCJS.DOM.DOMMatrix2DInit,+                        GHCJS.DOM.DOMMatrixInit,+                        GHCJS.DOM.DOMMatrixReadOnly,+                        GHCJS.DOM.DOMParser,+                        GHCJS.DOM.DOMPoint,+                        GHCJS.DOM.DOMPointInit,+                        GHCJS.DOM.DOMPointReadOnly,+                        GHCJS.DOM.DOMQuad,+                        GHCJS.DOM.DOMQuadInit,+                        GHCJS.DOM.DOMRect,+                        GHCJS.DOM.DOMRectInit,+                        GHCJS.DOM.DOMRectList,+                        GHCJS.DOM.DOMRectReadOnly,+                        GHCJS.DOM.DOMStringList,+                        GHCJS.DOM.DOMStringMap,+                        GHCJS.DOM.DOMTokenList,+                        GHCJS.DOM.DataCue,+                        GHCJS.DOM.DataTransfer,+                        GHCJS.DOM.DataTransferItem,+                        GHCJS.DOM.DataTransferItemList,+                        GHCJS.DOM.DecodeErrorCallback,+                        GHCJS.DOM.DecodeSuccessCallback,+                        GHCJS.DOM.DecompressionStream,+                        GHCJS.DOM.DedicatedWorkerGlobalScope,+                        GHCJS.DOM.DelayNode,+                        GHCJS.DOM.DelayOptions,+                        GHCJS.DOM.DeviceChangeEvent,+                        GHCJS.DOM.DeviceMotionEvent,+                        GHCJS.DOM.DeviceMotionEventAcceleration,+                        GHCJS.DOM.DeviceMotionEventAccelerationInit,+                        GHCJS.DOM.DeviceMotionEventInit,+                        GHCJS.DOM.DeviceMotionEventRotationRate,+                        GHCJS.DOM.DeviceMotionEventRotationRateInit,+                        GHCJS.DOM.DeviceOrientationEvent,+                        GHCJS.DOM.DeviceOrientationEventInit,+                        GHCJS.DOM.DigitalCredential,+                        GHCJS.DOM.DigitalCredentialCreateRequest,+                        GHCJS.DOM.DigitalCredentialCreationOptions,+                        GHCJS.DOM.DigitalCredentialGetRequest,+                        GHCJS.DOM.DigitalCredentialRequestOptions,+                        GHCJS.DOM.DisplayMediaStreamOptions,+                        GHCJS.DOM.DocumentFragment,+                        GHCJS.DOM.DocumentOrShadowRoot,+                        GHCJS.DOM.DocumentPictureInPicture,+                        GHCJS.DOM.DocumentPictureInPictureEvent,+                        GHCJS.DOM.DocumentPictureInPictureEventInit,+                        GHCJS.DOM.DocumentPictureInPictureOptions,+                        GHCJS.DOM.DocumentTimeline,+                        GHCJS.DOM.DocumentTimelineOptions,+                        GHCJS.DOM.DocumentType,+                        GHCJS.DOM.DoubleRange,+                        GHCJS.DOM.DragEvent,+                        GHCJS.DOM.DragEventInit,+                        GHCJS.DOM.DynamicsCompressorNode,+                        GHCJS.DOM.DynamicsCompressorOptions,+                        GHCJS.DOM.EXT_blend_minmax,+                        GHCJS.DOM.EXT_clip_control,+                        GHCJS.DOM.EXT_color_buffer_float,+                        GHCJS.DOM.EXT_color_buffer_half_float,+                        GHCJS.DOM.EXT_float_blend,+                        GHCJS.DOM.EXT_frag_depth,+                        GHCJS.DOM.EXT_polygon_offset_clamp,+                        GHCJS.DOM.EXT_sRGB,+                        GHCJS.DOM.EXT_shader_texture_lod,+                        GHCJS.DOM.EXT_texture_compression_bptc,+                        GHCJS.DOM.EXT_texture_compression_rgtc,+                        GHCJS.DOM.EXT_texture_filter_anisotropic,+                        GHCJS.DOM.EXT_texture_mirror_clamp_to_edge,+                        GHCJS.DOM.EXT_texture_norm16,+                        GHCJS.DOM.EffectTiming,+                        GHCJS.DOM.Element,+                        GHCJS.DOM.ElementCSSInlineStyle,+                        GHCJS.DOM.ElementContentEditable,+                        GHCJS.DOM.ElementCreationOptions,+                        GHCJS.DOM.ElementDefinitionOptions,+                        GHCJS.DOM.ElementInternals,+                        GHCJS.DOM.EncodedAudioChunk,+                        GHCJS.DOM.EncodedAudioChunkInit,+                        GHCJS.DOM.EncodedAudioChunkMetadata,+                        GHCJS.DOM.EncodedAudioChunkOutputCallback,+                        GHCJS.DOM.EncodedVideoChunk,+                        GHCJS.DOM.EncodedVideoChunkInit,+                        GHCJS.DOM.EncodedVideoChunkMetadata,+                        GHCJS.DOM.EncodedVideoChunkOutputCallback,+                        GHCJS.DOM.Enums,+                        GHCJS.DOM.ErrorCallback,+                        GHCJS.DOM.ErrorEvent,+                        GHCJS.DOM.ErrorEventInit,+                        GHCJS.DOM.Event,+                        GHCJS.DOM.EventCounts,+                        GHCJS.DOM.EventInit,+                        GHCJS.DOM.EventListenerOptions,+                        GHCJS.DOM.EventModifierInit,+                        GHCJS.DOM.EventSource,+                        GHCJS.DOM.EventSourceInit,+                        GHCJS.DOM.EventTarget,+                        GHCJS.DOM.ExtendableCookieChangeEvent,+                        GHCJS.DOM.ExtendableCookieChangeEventInit,+                        GHCJS.DOM.ExtendableEvent,+                        GHCJS.DOM.ExtendableEventInit,+                        GHCJS.DOM.ExtendableMessageEvent,+                        GHCJS.DOM.ExtendableMessageEventInit,+                        GHCJS.DOM.External,+                        GHCJS.DOM.FederatedCredentialInit,+                        GHCJS.DOM.FederatedCredentialRequestOptions,+                        GHCJS.DOM.FetchEvent,+                        GHCJS.DOM.FetchEventInit,+                        GHCJS.DOM.File,+                        GHCJS.DOM.FileCallback,+                        GHCJS.DOM.FileList,+                        GHCJS.DOM.FilePropertyBag,+                        GHCJS.DOM.FileReader,+                        GHCJS.DOM.FileReaderSync,+                        GHCJS.DOM.FileSystem,+                        GHCJS.DOM.FileSystemCreateWritableOptions,+                        GHCJS.DOM.FileSystemDirectoryEntry,+                        GHCJS.DOM.FileSystemDirectoryHandle,+                        GHCJS.DOM.FileSystemDirectoryReader,+                        GHCJS.DOM.FileSystemEntriesCallback,+                        GHCJS.DOM.FileSystemEntry,+                        GHCJS.DOM.FileSystemEntryCallback,+                        GHCJS.DOM.FileSystemFileEntry,+                        GHCJS.DOM.FileSystemFileHandle,+                        GHCJS.DOM.FileSystemFlags,+                        GHCJS.DOM.FileSystemGetDirectoryOptions,+                        GHCJS.DOM.FileSystemGetFileOptions,+                        GHCJS.DOM.FileSystemHandle,+                        GHCJS.DOM.FileSystemReadWriteOptions,+                        GHCJS.DOM.FileSystemRemoveOptions,+                        GHCJS.DOM.FileSystemSyncAccessHandle,+                        GHCJS.DOM.FileSystemWritableFileStream,+                        GHCJS.DOM.FlacEncoderConfig,+                        GHCJS.DOM.FocusEvent,+                        GHCJS.DOM.FocusEventInit,+                        GHCJS.DOM.FocusOptions,+                        GHCJS.DOM.FontFace,+                        GHCJS.DOM.FontFaceDescriptors,+                        GHCJS.DOM.FontFaceSet,+                        GHCJS.DOM.FontFaceSetLoadEvent,+                        GHCJS.DOM.FontFaceSetLoadEventInit,+                        GHCJS.DOM.FontFaceSource,+                        GHCJS.DOM.FormData,+                        GHCJS.DOM.FormDataEvent,+                        GHCJS.DOM.FormDataEventInit,+                        GHCJS.DOM.FragmentDirective,+                        GHCJS.DOM.FrameRequestCallback,+                        GHCJS.DOM.FullscreenOptions,+                        GHCJS.DOM.FunctionStringCallback,+                        GHCJS.DOM.GPU,+                        GHCJS.DOM.GPUAdapter,+                        GHCJS.DOM.GPUAdapterInfo,+                        GHCJS.DOM.GPUBindGroup,+                        GHCJS.DOM.GPUBindGroupDescriptor,+                        GHCJS.DOM.GPUBindGroupEntry,+                        GHCJS.DOM.GPUBindGroupLayout,+                        GHCJS.DOM.GPUBindGroupLayoutDescriptor,+                        GHCJS.DOM.GPUBindGroupLayoutEntry,+                        GHCJS.DOM.GPUBindingCommandsMixin,+                        GHCJS.DOM.GPUBlendComponent,+                        GHCJS.DOM.GPUBlendState,+                        GHCJS.DOM.GPUBuffer,+                        GHCJS.DOM.GPUBufferBinding,+                        GHCJS.DOM.GPUBufferBindingLayout,+                        GHCJS.DOM.GPUBufferDescriptor,+                        GHCJS.DOM.GPUCanvasConfiguration,+                        GHCJS.DOM.GPUCanvasContext,+                        GHCJS.DOM.GPUCanvasToneMapping,+                        GHCJS.DOM.GPUColorDict,+                        GHCJS.DOM.GPUColorTargetState,+                        GHCJS.DOM.GPUCommandBuffer,+                        GHCJS.DOM.GPUCommandBufferDescriptor,+                        GHCJS.DOM.GPUCommandEncoder,+                        GHCJS.DOM.GPUCommandEncoderDescriptor,+                        GHCJS.DOM.GPUCompilationInfo,+                        GHCJS.DOM.GPUCompilationMessage,+                        GHCJS.DOM.GPUComputePassDescriptor,+                        GHCJS.DOM.GPUComputePassEncoder,+                        GHCJS.DOM.GPUComputePassTimestampWrites,+                        GHCJS.DOM.GPUComputePipeline,+                        GHCJS.DOM.GPUComputePipelineDescriptor,+                        GHCJS.DOM.GPUCopyExternalImageDestInfo,+                        GHCJS.DOM.GPUCopyExternalImageSourceInfo,+                        GHCJS.DOM.GPUDebugCommandsMixin,+                        GHCJS.DOM.GPUDepthStencilState,+                        GHCJS.DOM.GPUDevice,+                        GHCJS.DOM.GPUDeviceDescriptor,+                        GHCJS.DOM.GPUDeviceLostInfo,+                        GHCJS.DOM.GPUError,+                        GHCJS.DOM.GPUExtent3DDict,+                        GHCJS.DOM.GPUExternalTexture,+                        GHCJS.DOM.GPUExternalTextureBindingLayout,+                        GHCJS.DOM.GPUExternalTextureDescriptor,+                        GHCJS.DOM.GPUFragmentState,+                        GHCJS.DOM.GPUInternalError,+                        GHCJS.DOM.GPUMultisampleState,+                        GHCJS.DOM.GPUObjectBase,+                        GHCJS.DOM.GPUObjectDescriptorBase,+                        GHCJS.DOM.GPUOrigin2DDict,+                        GHCJS.DOM.GPUOrigin3DDict,+                        GHCJS.DOM.GPUOutOfMemoryError,+                        GHCJS.DOM.GPUPipelineBase,+                        GHCJS.DOM.GPUPipelineDescriptorBase,+                        GHCJS.DOM.GPUPipelineError,+                        GHCJS.DOM.GPUPipelineErrorInit,+                        GHCJS.DOM.GPUPipelineLayout,+                        GHCJS.DOM.GPUPipelineLayoutDescriptor,+                        GHCJS.DOM.GPUPrimitiveState,+                        GHCJS.DOM.GPUProgrammableStage,+                        GHCJS.DOM.GPUQuerySet,+                        GHCJS.DOM.GPUQuerySetDescriptor,+                        GHCJS.DOM.GPUQueue,+                        GHCJS.DOM.GPUQueueDescriptor,+                        GHCJS.DOM.GPURenderBundle,+                        GHCJS.DOM.GPURenderBundleDescriptor,+                        GHCJS.DOM.GPURenderBundleEncoder,+                        GHCJS.DOM.GPURenderBundleEncoderDescriptor,+                        GHCJS.DOM.GPURenderCommandsMixin,+                        GHCJS.DOM.GPURenderPassColorAttachment,+                        GHCJS.DOM.GPURenderPassDepthStencilAttachment,+                        GHCJS.DOM.GPURenderPassDescriptor,+                        GHCJS.DOM.GPURenderPassEncoder,+                        GHCJS.DOM.GPURenderPassLayout,+                        GHCJS.DOM.GPURenderPassTimestampWrites,+                        GHCJS.DOM.GPURenderPipeline,+                        GHCJS.DOM.GPURenderPipelineDescriptor,+                        GHCJS.DOM.GPURequestAdapterOptions,+                        GHCJS.DOM.GPUSampler,+                        GHCJS.DOM.GPUSamplerBindingLayout,+                        GHCJS.DOM.GPUSamplerDescriptor,+                        GHCJS.DOM.GPUShaderModule,+                        GHCJS.DOM.GPUShaderModuleCompilationHint,+                        GHCJS.DOM.GPUShaderModuleDescriptor,+                        GHCJS.DOM.GPUStencilFaceState,+                        GHCJS.DOM.GPUStorageTextureBindingLayout,+                        GHCJS.DOM.GPUSupportedFeatures,+                        GHCJS.DOM.GPUSupportedLimits,+                        GHCJS.DOM.GPUTexelCopyBufferInfo,+                        GHCJS.DOM.GPUTexelCopyBufferLayout,+                        GHCJS.DOM.GPUTexelCopyTextureInfo,+                        GHCJS.DOM.GPUTexture,+                        GHCJS.DOM.GPUTextureBindingLayout,+                        GHCJS.DOM.GPUTextureDescriptor,+                        GHCJS.DOM.GPUTextureView,+                        GHCJS.DOM.GPUTextureViewDescriptor,+                        GHCJS.DOM.GPUUncapturedErrorEvent,+                        GHCJS.DOM.GPUUncapturedErrorEventInit,+                        GHCJS.DOM.GPUValidationError,+                        GHCJS.DOM.GPUVertexAttribute,+                        GHCJS.DOM.GPUVertexBufferLayout,+                        GHCJS.DOM.GPUVertexState,+                        GHCJS.DOM.GainNode,+                        GHCJS.DOM.GainOptions,+                        GHCJS.DOM.Gamepad,+                        GHCJS.DOM.GamepadButton,+                        GHCJS.DOM.GamepadEffectParameters,+                        GHCJS.DOM.GamepadEvent,+                        GHCJS.DOM.GamepadEventInit,+                        GHCJS.DOM.GamepadHapticActuator,+                        GHCJS.DOM.GenericTransformStream,+                        GHCJS.DOM.Geolocation,+                        GHCJS.DOM.GeolocationCoordinates,+                        GHCJS.DOM.GeolocationPosition,+                        GHCJS.DOM.GeolocationPositionError,+                        GHCJS.DOM.GetAnimationsOptions,+                        GHCJS.DOM.GetComposedRangesOptions,+                        GHCJS.DOM.GetHTMLOptions,+                        GHCJS.DOM.GetNotificationOptions,+                        GHCJS.DOM.GetRootNodeOptions,+                        GHCJS.DOM.GlobalEventHandlers,+                        GHCJS.DOM.HMACGetSecretInput,+                        GHCJS.DOM.HMACGetSecretOutput,+                        GHCJS.DOM.HTMLAllCollection,+                        GHCJS.DOM.HTMLAnchorElement,+                        GHCJS.DOM.HTMLAreaElement,+                        GHCJS.DOM.HTMLAudioElement,+                        GHCJS.DOM.HTMLBRElement,+                        GHCJS.DOM.HTMLBaseElement,+                        GHCJS.DOM.HTMLBodyElement,+                        GHCJS.DOM.HTMLButtonElement,+                        GHCJS.DOM.HTMLCanvasElement,+                        GHCJS.DOM.HTMLCollection,+                        GHCJS.DOM.HTMLDListElement,+                        GHCJS.DOM.HTMLDataElement,+                        GHCJS.DOM.HTMLDataListElement,+                        GHCJS.DOM.HTMLDetailsElement,+                        GHCJS.DOM.HTMLDialogElement,+                        GHCJS.DOM.HTMLDirectoryElement,+                        GHCJS.DOM.HTMLDivElement,+                        GHCJS.DOM.HTMLElement,+                        GHCJS.DOM.HTMLEmbedElement,+                        GHCJS.DOM.HTMLFieldSetElement,+                        GHCJS.DOM.HTMLFontElement,+                        GHCJS.DOM.HTMLFormControlsCollection,+                        GHCJS.DOM.HTMLFormElement,+                        GHCJS.DOM.HTMLFrameElement,+                        GHCJS.DOM.HTMLFrameSetElement,+                        GHCJS.DOM.HTMLHRElement,+                        GHCJS.DOM.HTMLHeadElement,+                        GHCJS.DOM.HTMLHeadingElement,+                        GHCJS.DOM.HTMLHtmlElement,+                        GHCJS.DOM.HTMLHyperlinkElementUtils,+                        GHCJS.DOM.HTMLIFrameElement,+                        GHCJS.DOM.HTMLImageElement,+                        GHCJS.DOM.HTMLInputElement,+                        GHCJS.DOM.HTMLLIElement,+                        GHCJS.DOM.HTMLLabelElement,+                        GHCJS.DOM.HTMLLegendElement,+                        GHCJS.DOM.HTMLLinkElement,+                        GHCJS.DOM.HTMLMapElement,+                        GHCJS.DOM.HTMLMarqueeElement,+                        GHCJS.DOM.HTMLMediaElement,+                        GHCJS.DOM.HTMLMenuElement,+                        GHCJS.DOM.HTMLMetaElement,+                        GHCJS.DOM.HTMLMeterElement,+                        GHCJS.DOM.HTMLModElement,+                        GHCJS.DOM.HTMLOListElement,+                        GHCJS.DOM.HTMLObjectElement,+                        GHCJS.DOM.HTMLOptGroupElement,+                        GHCJS.DOM.HTMLOptionElement,+                        GHCJS.DOM.HTMLOptionsCollection,+                        GHCJS.DOM.HTMLOrSVGOrMathMLElement,+                        GHCJS.DOM.HTMLOutputElement,+                        GHCJS.DOM.HTMLParagraphElement,+                        GHCJS.DOM.HTMLParamElement,+                        GHCJS.DOM.HTMLPictureElement,+                        GHCJS.DOM.HTMLPreElement,+                        GHCJS.DOM.HTMLProgressElement,+                        GHCJS.DOM.HTMLQuoteElement,+                        GHCJS.DOM.HTMLScriptElement,+                        GHCJS.DOM.HTMLSelectElement,+                        GHCJS.DOM.HTMLSelectedContentElement,+                        GHCJS.DOM.HTMLSlotElement,+                        GHCJS.DOM.HTMLSourceElement,+                        GHCJS.DOM.HTMLSpanElement,+                        GHCJS.DOM.HTMLStyleElement,+                        GHCJS.DOM.HTMLTableCaptionElement,+                        GHCJS.DOM.HTMLTableCellElement,+                        GHCJS.DOM.HTMLTableColElement,+                        GHCJS.DOM.HTMLTableElement,+                        GHCJS.DOM.HTMLTableRowElement,+                        GHCJS.DOM.HTMLTableSectionElement,+                        GHCJS.DOM.HTMLTemplateElement,+                        GHCJS.DOM.HTMLTextAreaElement,+                        GHCJS.DOM.HTMLTimeElement,+                        GHCJS.DOM.HTMLTitleElement,+                        GHCJS.DOM.HTMLTrackElement,+                        GHCJS.DOM.HTMLUListElement,+                        GHCJS.DOM.HTMLUnknownElement,+                        GHCJS.DOM.HTMLVideoElement,+                        GHCJS.DOM.HashChangeEvent,+                        GHCJS.DOM.HashChangeEventInit,+                        GHCJS.DOM.Headers,+                        GHCJS.DOM.HevcEncoderConfig,+                        GHCJS.DOM.Highlight,+                        GHCJS.DOM.HighlightHitResult,+                        GHCJS.DOM.HighlightRegistry,+                        GHCJS.DOM.HighlightsFromPointOptions,+                        GHCJS.DOM.History,+                        GHCJS.DOM.HyperlinkElementUtils,+                        GHCJS.DOM.IDBCursor,+                        GHCJS.DOM.IDBCursorWithValue,+                        GHCJS.DOM.IDBDatabase,+                        GHCJS.DOM.IDBDatabaseInfo,+                        GHCJS.DOM.IDBFactory,+                        GHCJS.DOM.IDBGetAllOptions,+                        GHCJS.DOM.IDBIndex,+                        GHCJS.DOM.IDBIndexParameters,+                        GHCJS.DOM.IDBKeyRange,+                        GHCJS.DOM.IDBObjectStore,+                        GHCJS.DOM.IDBObjectStoreParameters,+                        GHCJS.DOM.IDBOpenDBRequest,+                        GHCJS.DOM.IDBRecord,+                        GHCJS.DOM.IDBRequest,+                        GHCJS.DOM.IDBTransaction,+                        GHCJS.DOM.IDBTransactionOptions,+                        GHCJS.DOM.IDBVersionChangeEvent,+                        GHCJS.DOM.IDBVersionChangeEventInit,+                        GHCJS.DOM.IIRFilterNode,+                        GHCJS.DOM.IIRFilterOptions,+                        GHCJS.DOM.IdentityCredentialRequestOptions,+                        GHCJS.DOM.IdentityProviderConfig,+                        GHCJS.DOM.IdentityProviderRequestOptions,+                        GHCJS.DOM.IdleDeadline,+                        GHCJS.DOM.IdleRequestCallback,+                        GHCJS.DOM.IdleRequestOptions,+                        GHCJS.DOM.ImageBitmap,+                        GHCJS.DOM.ImageBitmapRenderingContext,+                        GHCJS.DOM.ImageCapture,+                        GHCJS.DOM.ImageData,+                        GHCJS.DOM.ImageDataSettings,+                        GHCJS.DOM.ImageDecodeOptions,+                        GHCJS.DOM.ImageDecodeResult,+                        GHCJS.DOM.ImageDecoder,+                        GHCJS.DOM.ImageDecoderInit,+                        GHCJS.DOM.ImageEncodeOptions,+                        GHCJS.DOM.ImageTrack,+                        GHCJS.DOM.ImageTrackList,+                        GHCJS.DOM.ImportNodeOptions,+                        GHCJS.DOM.InputDeviceCapabilities,+                        GHCJS.DOM.InputDeviceInfo,+                        GHCJS.DOM.InputEvent,+                        GHCJS.DOM.InputEventInit,+                        GHCJS.DOM.InstallEvent,+                        GHCJS.DOM.IntersectionObserver,+                        GHCJS.DOM.IntersectionObserverCallback,+                        GHCJS.DOM.IntersectionObserverEntry,+                        GHCJS.DOM.IntersectionObserverEntryInit,+                        GHCJS.DOM.IntersectionObserverInit,+                        GHCJS.DOM.JsonWebKey,+                        GHCJS.DOM.KHR_parallel_shader_compile,+                        GHCJS.DOM.KeySystemTrackConfiguration,+                        GHCJS.DOM.KeyboardEvent,+                        GHCJS.DOM.KeyboardEventInit,+                        GHCJS.DOM.KeyframeAnimationOptions,+                        GHCJS.DOM.KeyframeEffect,+                        GHCJS.DOM.KeyframeEffectOptions,+                        GHCJS.DOM.LargestContentfulPaint,+                        GHCJS.DOM.LinkStyle,+                        GHCJS.DOM.Location,+                        GHCJS.DOM.Lock,+                        GHCJS.DOM.LockGrantedCallback,+                        GHCJS.DOM.LockInfo,+                        GHCJS.DOM.LockManager,+                        GHCJS.DOM.LockManagerSnapshot,+                        GHCJS.DOM.LockOptions,+                        GHCJS.DOM.MIDIAccess,+                        GHCJS.DOM.MIDIConnectionEvent,+                        GHCJS.DOM.MIDIConnectionEventInit,+                        GHCJS.DOM.MIDIInput,+                        GHCJS.DOM.MIDIInputMap,+                        GHCJS.DOM.MIDIMessageEvent,+                        GHCJS.DOM.MIDIMessageEventInit,+                        GHCJS.DOM.MIDIOptions,+                        GHCJS.DOM.MIDIOutput,+                        GHCJS.DOM.MIDIOutputMap,+                        GHCJS.DOM.MIDIPort,+                        GHCJS.DOM.MathMLElement,+                        GHCJS.DOM.MediaCapabilities,+                        GHCJS.DOM.MediaCapabilitiesDecodingInfo,+                        GHCJS.DOM.MediaCapabilitiesEncodingInfo,+                        GHCJS.DOM.MediaCapabilitiesInfo,+                        GHCJS.DOM.MediaCapabilitiesKeySystemConfiguration,+                        GHCJS.DOM.MediaConfiguration,+                        GHCJS.DOM.MediaDecodingConfiguration,+                        GHCJS.DOM.MediaDeviceInfo,+                        GHCJS.DOM.MediaDevices,+                        GHCJS.DOM.MediaEffectInfo,+                        GHCJS.DOM.MediaElementAudioSourceNode,+                        GHCJS.DOM.MediaElementAudioSourceOptions,+                        GHCJS.DOM.MediaEncodingConfiguration,+                        GHCJS.DOM.MediaEncryptedEvent,+                        GHCJS.DOM.MediaEncryptedEventInit,+                        GHCJS.DOM.MediaError,+                        GHCJS.DOM.MediaImage,+                        GHCJS.DOM.MediaKeyMessageEvent,+                        GHCJS.DOM.MediaKeyMessageEventInit,+                        GHCJS.DOM.MediaKeySession,+                        GHCJS.DOM.MediaKeyStatusMap,+                        GHCJS.DOM.MediaKeySystemAccess,+                        GHCJS.DOM.MediaKeySystemConfiguration,+                        GHCJS.DOM.MediaKeySystemMediaCapability,+                        GHCJS.DOM.MediaKeys,+                        GHCJS.DOM.MediaKeysPolicy,+                        GHCJS.DOM.MediaList,+                        GHCJS.DOM.MediaMetadata,+                        GHCJS.DOM.MediaMetadataInit,+                        GHCJS.DOM.MediaPositionState,+                        GHCJS.DOM.MediaQueryList,+                        GHCJS.DOM.MediaQueryListEvent,+                        GHCJS.DOM.MediaQueryListEventInit,+                        GHCJS.DOM.MediaRecorder,+                        GHCJS.DOM.MediaRecorderOptions,+                        GHCJS.DOM.MediaSession,+                        GHCJS.DOM.MediaSessionActionDetails,+                        GHCJS.DOM.MediaSessionActionHandler,+                        GHCJS.DOM.MediaSettingsRange,+                        GHCJS.DOM.MediaSource,+                        GHCJS.DOM.MediaSourceHandle,+                        GHCJS.DOM.MediaStream,+                        GHCJS.DOM.MediaStreamAudioDestinationNode,+                        GHCJS.DOM.MediaStreamAudioSourceNode,+                        GHCJS.DOM.MediaStreamAudioSourceOptions,+                        GHCJS.DOM.MediaStreamConstraints,+                        GHCJS.DOM.MediaStreamTrack,+                        GHCJS.DOM.MediaStreamTrackEvent,+                        GHCJS.DOM.MediaStreamTrackEventInit,+                        GHCJS.DOM.MediaStreamTrackHandle,+                        GHCJS.DOM.MediaStreamTrackProcessor,+                        GHCJS.DOM.MediaStreamTrackProcessorInit,+                        GHCJS.DOM.MediaTrackCapabilities,+                        GHCJS.DOM.MediaTrackConstraintSet,+                        GHCJS.DOM.MediaTrackConstraints,+                        GHCJS.DOM.MediaTrackSettings,+                        GHCJS.DOM.MediaTrackSupportedConstraints,+                        GHCJS.DOM.MessageChannel,+                        GHCJS.DOM.MessageEvent,+                        GHCJS.DOM.MessageEventInit,+                        GHCJS.DOM.MessageEventTarget,+                        GHCJS.DOM.MessagePort,+                        GHCJS.DOM.MimeType,+                        GHCJS.DOM.MimeTypeArray,+                        GHCJS.DOM.MouseEvent,+                        GHCJS.DOM.MouseEventInit,+                        GHCJS.DOM.MultiCacheQueryOptions,+                        GHCJS.DOM.MutationCallback,+                        GHCJS.DOM.MutationObserver,+                        GHCJS.DOM.MutationObserverInit,+                        GHCJS.DOM.MutationRecord,+                        GHCJS.DOM.NamedNodeMap,+                        GHCJS.DOM.NavigateEvent,+                        GHCJS.DOM.NavigateEventInit,+                        GHCJS.DOM.Navigation,+                        GHCJS.DOM.NavigationActivation,+                        GHCJS.DOM.NavigationCurrentEntryChangeEvent,+                        GHCJS.DOM.NavigationCurrentEntryChangeEventInit,+                        GHCJS.DOM.NavigationDestination,+                        GHCJS.DOM.NavigationEvent,+                        GHCJS.DOM.NavigationHistoryEntry,+                        GHCJS.DOM.NavigationInterceptHandler,+                        GHCJS.DOM.NavigationInterceptOptions,+                        GHCJS.DOM.NavigationNavigateOptions,+                        GHCJS.DOM.NavigationOptions,+                        GHCJS.DOM.NavigationPrecommitController,+                        GHCJS.DOM.NavigationPrecommitHandler,+                        GHCJS.DOM.NavigationPreloadManager,+                        GHCJS.DOM.NavigationPreloadState,+                        GHCJS.DOM.NavigationReloadOptions,+                        GHCJS.DOM.NavigationResult,+                        GHCJS.DOM.NavigationTransition,+                        GHCJS.DOM.NavigationUpdateCurrentEntryOptions,+                        GHCJS.DOM.Navigator,+                        GHCJS.DOM.NavigatorAutomationInformation,+                        GHCJS.DOM.NavigatorBadge,+                        GHCJS.DOM.NavigatorConcurrentHardware,+                        GHCJS.DOM.NavigatorContentUtils,+                        GHCJS.DOM.NavigatorCookies,+                        GHCJS.DOM.NavigatorGPU,+                        GHCJS.DOM.NavigatorID,+                        GHCJS.DOM.NavigatorLanguage,+                        GHCJS.DOM.NavigatorLocks,+                        GHCJS.DOM.NavigatorLogin,+                        GHCJS.DOM.NavigatorOnLine,+                        GHCJS.DOM.NavigatorPlugins,+                        GHCJS.DOM.NavigatorStorage,+                        GHCJS.DOM.Node,+                        GHCJS.DOM.NodeFilter,+                        GHCJS.DOM.NodeIterator,+                        GHCJS.DOM.NodeList,+                        GHCJS.DOM.NonDocumentTypeChildNode,+                        GHCJS.DOM.NonElementParentNode,+                        GHCJS.DOM.Notification,+                        GHCJS.DOM.NotificationAction,+                        GHCJS.DOM.NotificationEvent,+                        GHCJS.DOM.NotificationEventInit,+                        GHCJS.DOM.NotificationOptions,+                        GHCJS.DOM.NotificationPermissionCallback,+                        GHCJS.DOM.OES_draw_buffers_indexed,+                        GHCJS.DOM.OES_element_index_uint,+                        GHCJS.DOM.OES_fbo_render_mipmap,+                        GHCJS.DOM.OES_standard_derivatives,+                        GHCJS.DOM.OES_texture_float,+                        GHCJS.DOM.OES_texture_float_linear,+                        GHCJS.DOM.OES_texture_half_float,+                        GHCJS.DOM.OES_texture_half_float_linear,+                        GHCJS.DOM.OES_vertex_array_object,+                        GHCJS.DOM.OTPCredentialRequestOptions,+                        GHCJS.DOM.OVR_multiview2,+                        GHCJS.DOM.OfflineAudioCompletionEvent,+                        GHCJS.DOM.OfflineAudioCompletionEventInit,+                        GHCJS.DOM.OfflineAudioContext,+                        GHCJS.DOM.OfflineAudioContextOptions,+                        GHCJS.DOM.OffscreenCanvas,+                        GHCJS.DOM.OffscreenCanvasRenderingContext2D,+                        GHCJS.DOM.OptionalEffectTiming,+                        GHCJS.DOM.OpusEncoderConfig,+                        GHCJS.DOM.Origin,+                        GHCJS.DOM.OscillatorNode,+                        GHCJS.DOM.OscillatorOptions,+                        GHCJS.DOM.OverconstrainedError,+                        GHCJS.DOM.PageRevealEvent,+                        GHCJS.DOM.PageRevealEventInit,+                        GHCJS.DOM.PageSwapEvent,+                        GHCJS.DOM.PageSwapEventInit,+                        GHCJS.DOM.PageTransitionEvent,+                        GHCJS.DOM.PageTransitionEventInit,+                        GHCJS.DOM.PaintTimingMixin,+                        GHCJS.DOM.PannerNode,+                        GHCJS.DOM.PannerOptions,+                        GHCJS.DOM.ParentNode,+                        GHCJS.DOM.ParseHTMLUnsafeOptions,+                        GHCJS.DOM.PasswordCredential,+                        GHCJS.DOM.PasswordCredentialData,+                        GHCJS.DOM.Path2D,+                        GHCJS.DOM.PayerErrors,+                        GHCJS.DOM.PaymentCompleteDetails,+                        GHCJS.DOM.PaymentCredentialInstrument,+                        GHCJS.DOM.PaymentCurrencyAmount,+                        GHCJS.DOM.PaymentDetailsBase,+                        GHCJS.DOM.PaymentDetailsInit,+                        GHCJS.DOM.PaymentDetailsModifier,+                        GHCJS.DOM.PaymentDetailsUpdate,+                        GHCJS.DOM.PaymentEntityLogo,+                        GHCJS.DOM.PaymentItem,+                        GHCJS.DOM.PaymentMethodChangeEvent,+                        GHCJS.DOM.PaymentMethodChangeEventInit,+                        GHCJS.DOM.PaymentMethodData,+                        GHCJS.DOM.PaymentOptions,+                        GHCJS.DOM.PaymentRequest,+                        GHCJS.DOM.PaymentRequestUpdateEvent,+                        GHCJS.DOM.PaymentRequestUpdateEventInit,+                        GHCJS.DOM.PaymentResponse,+                        GHCJS.DOM.PaymentShippingOption,+                        GHCJS.DOM.PaymentValidationErrors,+                        GHCJS.DOM.Performance,+                        GHCJS.DOM.PerformanceEntry,+                        GHCJS.DOM.PerformanceEventTiming,+                        GHCJS.DOM.PerformanceMark,+                        GHCJS.DOM.PerformanceMarkOptions,+                        GHCJS.DOM.PerformanceMeasure,+                        GHCJS.DOM.PerformanceMeasureOptions,+                        GHCJS.DOM.PerformanceNavigation,+                        GHCJS.DOM.PerformanceNavigationTiming,+                        GHCJS.DOM.PerformanceObserver,+                        GHCJS.DOM.PerformanceObserverCallback,+                        GHCJS.DOM.PerformanceObserverCallbackOptions,+                        GHCJS.DOM.PerformanceObserverEntryList,+                        GHCJS.DOM.PerformanceObserverInit,+                        GHCJS.DOM.PerformancePaintTiming,+                        GHCJS.DOM.PerformanceResourceTiming,+                        GHCJS.DOM.PerformanceServerTiming,+                        GHCJS.DOM.PerformanceTiming,+                        GHCJS.DOM.PeriodicWave,+                        GHCJS.DOM.PeriodicWaveConstraints,+                        GHCJS.DOM.PeriodicWaveOptions,+                        GHCJS.DOM.PermissionStatus,+                        GHCJS.DOM.Permissions,+                        GHCJS.DOM.PhotoCapabilities,+                        GHCJS.DOM.PhotoSettings,+                        GHCJS.DOM.PictureInPictureEvent,+                        GHCJS.DOM.PictureInPictureEventInit,+                        GHCJS.DOM.PictureInPictureWindow,+                        GHCJS.DOM.PlaneLayout,+                        GHCJS.DOM.Plugin,+                        GHCJS.DOM.PluginArray,+                        GHCJS.DOM.Point2D,+                        GHCJS.DOM.PointerEvent,+                        GHCJS.DOM.PointerEventInit,+                        GHCJS.DOM.PointerLockOptions,+                        GHCJS.DOM.PopStateEvent,+                        GHCJS.DOM.PopStateEventInit,+                        GHCJS.DOM.PopoverTargetAttributes,+                        GHCJS.DOM.PositionCallback,+                        GHCJS.DOM.PositionErrorCallback,+                        GHCJS.DOM.PositionOptions,+                        GHCJS.DOM.PrivateToken,+                        GHCJS.DOM.ProcessingInstruction,+                        GHCJS.DOM.ProgressEvent,+                        GHCJS.DOM.ProgressEventInit,+                        GHCJS.DOM.PromiseRejectionEvent,+                        GHCJS.DOM.PromiseRejectionEventInit,+                        GHCJS.DOM.PropertyDefinition,+                        GHCJS.DOM.PublicKeyCredential,+                        GHCJS.DOM.PublicKeyCredentialCreationOptions,+                        GHCJS.DOM.PublicKeyCredentialCreationOptionsJSON,+                        GHCJS.DOM.PublicKeyCredentialDescriptor,+                        GHCJS.DOM.PublicKeyCredentialDescriptorJSON,+                        GHCJS.DOM.PublicKeyCredentialEntity,+                        GHCJS.DOM.PublicKeyCredentialParameters,+                        GHCJS.DOM.PublicKeyCredentialRequestOptions,+                        GHCJS.DOM.PublicKeyCredentialRequestOptionsJSON,+                        GHCJS.DOM.PublicKeyCredentialRpEntity,+                        GHCJS.DOM.PublicKeyCredentialUserEntity,+                        GHCJS.DOM.PublicKeyCredentialUserEntityJSON,+                        GHCJS.DOM.PushEvent,+                        GHCJS.DOM.PushEventInit,+                        GHCJS.DOM.PushManager,+                        GHCJS.DOM.PushManagerAttribute,+                        GHCJS.DOM.PushMessageData,+                        GHCJS.DOM.PushSubscription,+                        GHCJS.DOM.PushSubscriptionChangeEvent,+                        GHCJS.DOM.PushSubscriptionChangeEventInit,+                        GHCJS.DOM.PushSubscriptionJSON,+                        GHCJS.DOM.PushSubscriptionKeys,+                        GHCJS.DOM.PushSubscriptionOptions,+                        GHCJS.DOM.PushSubscriptionOptionsInit,+                        GHCJS.DOM.QueuingStrategy,+                        GHCJS.DOM.QueuingStrategyInit,+                        GHCJS.DOM.QueuingStrategySize,+                        GHCJS.DOM.RTCAnswerOptions,+                        GHCJS.DOM.RTCCertificate,+                        GHCJS.DOM.RTCConfiguration,+                        GHCJS.DOM.RTCDTMFSender,+                        GHCJS.DOM.RTCDTMFToneChangeEvent,+                        GHCJS.DOM.RTCDTMFToneChangeEventInit,+                        GHCJS.DOM.RTCDataChannel,+                        GHCJS.DOM.RTCDataChannelEvent,+                        GHCJS.DOM.RTCDataChannelEventInit,+                        GHCJS.DOM.RTCDataChannelInit,+                        GHCJS.DOM.RTCDtlsFingerprint,+                        GHCJS.DOM.RTCDtlsTransport,+                        GHCJS.DOM.RTCEncodedAudioFrame,+                        GHCJS.DOM.RTCEncodedAudioFrameMetadata,+                        GHCJS.DOM.RTCEncodedAudioFrameOptions,+                        GHCJS.DOM.RTCEncodedFrameMetadata,+                        GHCJS.DOM.RTCEncodedVideoFrame,+                        GHCJS.DOM.RTCEncodedVideoFrameMetadata,+                        GHCJS.DOM.RTCEncodedVideoFrameOptions,+                        GHCJS.DOM.RTCError,+                        GHCJS.DOM.RTCErrorEvent,+                        GHCJS.DOM.RTCErrorEventInit,+                        GHCJS.DOM.RTCErrorInit,+                        GHCJS.DOM.RTCIceCandidate,+                        GHCJS.DOM.RTCIceCandidateInit,+                        GHCJS.DOM.RTCIceCandidatePair,+                        GHCJS.DOM.RTCIceServer,+                        GHCJS.DOM.RTCIceTransport,+                        GHCJS.DOM.RTCLocalIceCandidateInit,+                        GHCJS.DOM.RTCLocalSessionDescriptionInit,+                        GHCJS.DOM.RTCOfferAnswerOptions,+                        GHCJS.DOM.RTCOfferOptions,+                        GHCJS.DOM.RTCPeerConnection,+                        GHCJS.DOM.RTCPeerConnectionErrorCallback,+                        GHCJS.DOM.RTCPeerConnectionIceErrorEvent,+                        GHCJS.DOM.RTCPeerConnectionIceErrorEventInit,+                        GHCJS.DOM.RTCPeerConnectionIceEvent,+                        GHCJS.DOM.RTCPeerConnectionIceEventInit,+                        GHCJS.DOM.RTCRtcpParameters,+                        GHCJS.DOM.RTCRtpCapabilities,+                        GHCJS.DOM.RTCRtpCodec,+                        GHCJS.DOM.RTCRtpCodecParameters,+                        GHCJS.DOM.RTCRtpCodingParameters,+                        GHCJS.DOM.RTCRtpContributingSource,+                        GHCJS.DOM.RTCRtpEncodingParameters,+                        GHCJS.DOM.RTCRtpHeaderExtensionCapability,+                        GHCJS.DOM.RTCRtpHeaderExtensionParameters,+                        GHCJS.DOM.RTCRtpParameters,+                        GHCJS.DOM.RTCRtpReceiveParameters,+                        GHCJS.DOM.RTCRtpReceiver,+                        GHCJS.DOM.RTCRtpSFrameDecryptor,+                        GHCJS.DOM.RTCRtpSFrameEncryptor,+                        GHCJS.DOM.RTCRtpScriptTransform,+                        GHCJS.DOM.RTCRtpScriptTransformer,+                        GHCJS.DOM.RTCRtpSendParameters,+                        GHCJS.DOM.RTCRtpSender,+                        GHCJS.DOM.RTCRtpSynchronizationSource,+                        GHCJS.DOM.RTCRtpTransceiver,+                        GHCJS.DOM.RTCRtpTransceiverInit,+                        GHCJS.DOM.RTCSctpTransport,+                        GHCJS.DOM.RTCSessionDescription,+                        GHCJS.DOM.RTCSessionDescriptionCallback,+                        GHCJS.DOM.RTCSessionDescriptionInit,+                        GHCJS.DOM.RTCSetParameterOptions,+                        GHCJS.DOM.RTCStatsReport,+                        GHCJS.DOM.RTCTrackEvent,+                        GHCJS.DOM.RTCTrackEventInit,+                        GHCJS.DOM.RTCTransformEvent,+                        GHCJS.DOM.RadioNodeList,+                        GHCJS.DOM.Range,+                        GHCJS.DOM.ReadableByteStreamController,+                        GHCJS.DOM.ReadableStream,+                        GHCJS.DOM.ReadableStreamBYOBReader,+                        GHCJS.DOM.ReadableStreamBYOBReaderReadOptions,+                        GHCJS.DOM.ReadableStreamBYOBRequest,+                        GHCJS.DOM.ReadableStreamDefaultController,+                        GHCJS.DOM.ReadableStreamDefaultReader,+                        GHCJS.DOM.ReadableStreamGenericReader,+                        GHCJS.DOM.ReadableStreamGetReaderOptions,+                        GHCJS.DOM.ReadableStreamReadResult,+                        GHCJS.DOM.ReadableWritablePair,+                        GHCJS.DOM.RegistrationOptions,+                        GHCJS.DOM.RemotePlayback,+                        GHCJS.DOM.RemotePlaybackAvailabilityCallback,+                        GHCJS.DOM.Report,+                        GHCJS.DOM.ReportBody,+                        GHCJS.DOM.ReportingObserver,+                        GHCJS.DOM.ReportingObserverCallback,+                        GHCJS.DOM.ReportingObserverOptions,+                        GHCJS.DOM.Request,+                        GHCJS.DOM.RequestInit,+                        GHCJS.DOM.ResizeObserver,+                        GHCJS.DOM.ResizeObserverCallback,+                        GHCJS.DOM.ResizeObserverEntry,+                        GHCJS.DOM.ResizeObserverOptions,+                        GHCJS.DOM.ResizeObserverSize,+                        GHCJS.DOM.Response,+                        GHCJS.DOM.ResponseInit,+                        GHCJS.DOM.RouterCondition,+                        GHCJS.DOM.RouterRule,+                        GHCJS.DOM.RouterSourceDict,+                        GHCJS.DOM.RsaOtherPrimesInfo,+                        GHCJS.DOM.SVGAElement,+                        GHCJS.DOM.SVGAngle,+                        GHCJS.DOM.SVGAnimateElement,+                        GHCJS.DOM.SVGAnimateMotionElement,+                        GHCJS.DOM.SVGAnimateTransformElement,+                        GHCJS.DOM.SVGAnimatedAngle,+                        GHCJS.DOM.SVGAnimatedBoolean,+                        GHCJS.DOM.SVGAnimatedEnumeration,+                        GHCJS.DOM.SVGAnimatedInteger,+                        GHCJS.DOM.SVGAnimatedLength,+                        GHCJS.DOM.SVGAnimatedLengthList,+                        GHCJS.DOM.SVGAnimatedNumber,+                        GHCJS.DOM.SVGAnimatedNumberList,+                        GHCJS.DOM.SVGAnimatedPoints,+                        GHCJS.DOM.SVGAnimatedPreserveAspectRatio,+                        GHCJS.DOM.SVGAnimatedRect,+                        GHCJS.DOM.SVGAnimatedString,+                        GHCJS.DOM.SVGAnimatedTransformList,+                        GHCJS.DOM.SVGAnimationElement,+                        GHCJS.DOM.SVGBoundingBoxOptions,+                        GHCJS.DOM.SVGCircleElement,+                        GHCJS.DOM.SVGClipPathElement,+                        GHCJS.DOM.SVGComponentTransferFunctionElement,+                        GHCJS.DOM.SVGDefsElement,+                        GHCJS.DOM.SVGDescElement,+                        GHCJS.DOM.SVGElement,+                        GHCJS.DOM.SVGEllipseElement,+                        GHCJS.DOM.SVGFEBlendElement,+                        GHCJS.DOM.SVGFEColorMatrixElement,+                        GHCJS.DOM.SVGFEComponentTransferElement,+                        GHCJS.DOM.SVGFECompositeElement,+                        GHCJS.DOM.SVGFEConvolveMatrixElement,+                        GHCJS.DOM.SVGFEDiffuseLightingElement,+                        GHCJS.DOM.SVGFEDisplacementMapElement,+                        GHCJS.DOM.SVGFEDistantLightElement,+                        GHCJS.DOM.SVGFEDropShadowElement,+                        GHCJS.DOM.SVGFEFloodElement,+                        GHCJS.DOM.SVGFEFuncAElement,+                        GHCJS.DOM.SVGFEFuncBElement,+                        GHCJS.DOM.SVGFEFuncGElement,+                        GHCJS.DOM.SVGFEFuncRElement,+                        GHCJS.DOM.SVGFEGaussianBlurElement,+                        GHCJS.DOM.SVGFEImageElement,+                        GHCJS.DOM.SVGFEMergeElement,+                        GHCJS.DOM.SVGFEMergeNodeElement,+                        GHCJS.DOM.SVGFEMorphologyElement,+                        GHCJS.DOM.SVGFEOffsetElement,+                        GHCJS.DOM.SVGFEPointLightElement,+                        GHCJS.DOM.SVGFESpecularLightingElement,+                        GHCJS.DOM.SVGFESpotLightElement,+                        GHCJS.DOM.SVGFETileElement,+                        GHCJS.DOM.SVGFETurbulenceElement,+                        GHCJS.DOM.SVGFilterElement,+                        GHCJS.DOM.SVGFilterPrimitiveStandardAttributes,+                        GHCJS.DOM.SVGFitToViewBox,+                        GHCJS.DOM.SVGForeignObjectElement,+                        GHCJS.DOM.SVGGElement,+                        GHCJS.DOM.SVGGeometryElement,+                        GHCJS.DOM.SVGGradientElement,+                        GHCJS.DOM.SVGGraphicsElement,+                        GHCJS.DOM.SVGImageElement,+                        GHCJS.DOM.SVGLength,+                        GHCJS.DOM.SVGLengthList,+                        GHCJS.DOM.SVGLineElement,+                        GHCJS.DOM.SVGLinearGradientElement,+                        GHCJS.DOM.SVGMPathElement,+                        GHCJS.DOM.SVGMarkerElement,+                        GHCJS.DOM.SVGMaskElement,+                        GHCJS.DOM.SVGMetadataElement,+                        GHCJS.DOM.SVGNumber,+                        GHCJS.DOM.SVGNumberList,+                        GHCJS.DOM.SVGPathElement,+                        GHCJS.DOM.SVGPatternElement,+                        GHCJS.DOM.SVGPointList,+                        GHCJS.DOM.SVGPolygonElement,+                        GHCJS.DOM.SVGPolylineElement,+                        GHCJS.DOM.SVGPreserveAspectRatio,+                        GHCJS.DOM.SVGRadialGradientElement,+                        GHCJS.DOM.SVGRectElement,+                        GHCJS.DOM.SVGSVGElement,+                        GHCJS.DOM.SVGScriptElement,+                        GHCJS.DOM.SVGSetElement,+                        GHCJS.DOM.SVGStopElement,+                        GHCJS.DOM.SVGStringList,+                        GHCJS.DOM.SVGStyleElement,+                        GHCJS.DOM.SVGSwitchElement,+                        GHCJS.DOM.SVGSymbolElement,+                        GHCJS.DOM.SVGTSpanElement,+                        GHCJS.DOM.SVGTests,+                        GHCJS.DOM.SVGTextContentElement,+                        GHCJS.DOM.SVGTextElement,+                        GHCJS.DOM.SVGTextPathElement,+                        GHCJS.DOM.SVGTextPositioningElement,+                        GHCJS.DOM.SVGTitleElement,+                        GHCJS.DOM.SVGTransform,+                        GHCJS.DOM.SVGTransformList,+                        GHCJS.DOM.SVGURIReference,+                        GHCJS.DOM.SVGUnitTypes,+                        GHCJS.DOM.SVGUseElement,+                        GHCJS.DOM.SVGViewElement,+                        GHCJS.DOM.Sanitizer,+                        GHCJS.DOM.SanitizerAttributeNamespace,+                        GHCJS.DOM.SanitizerConfig,+                        GHCJS.DOM.SanitizerElementNamespace,+                        GHCJS.DOM.SanitizerElementNamespaceWithAttributes,+                        GHCJS.DOM.SanitizerProcessingInstruction,+                        GHCJS.DOM.Scheduler,+                        GHCJS.DOM.SchedulerPostTaskCallback,+                        GHCJS.DOM.SchedulerPostTaskOptions,+                        GHCJS.DOM.Screen,+                        GHCJS.DOM.ScreenDetailed,+                        GHCJS.DOM.ScreenOrientation,+                        GHCJS.DOM.ScriptProcessorNode,+                        GHCJS.DOM.ScrollIntoViewOptions,+                        GHCJS.DOM.ScrollOptions,+                        GHCJS.DOM.ScrollResult,+                        GHCJS.DOM.ScrollTimeline,+                        GHCJS.DOM.ScrollTimelineOptions,+                        GHCJS.DOM.ScrollToOptions,+                        GHCJS.DOM.SecurityPolicyViolationEvent,+                        GHCJS.DOM.SecurityPolicyViolationEventInit,+                        GHCJS.DOM.Segment,+                        GHCJS.DOM.Selection,+                        GHCJS.DOM.Serial,+                        GHCJS.DOM.SerialInputSignals,+                        GHCJS.DOM.SerialOptions,+                        GHCJS.DOM.SerialOutputSignals,+                        GHCJS.DOM.SerialPort,+                        GHCJS.DOM.SerialPortFilter,+                        GHCJS.DOM.SerialPortInfo,+                        GHCJS.DOM.SerialPortRequestOptions,+                        GHCJS.DOM.ServiceWorker,+                        GHCJS.DOM.ServiceWorkerContainer,+                        GHCJS.DOM.ServiceWorkerGlobalScope,+                        GHCJS.DOM.ServiceWorkerRegistration,+                        GHCJS.DOM.SetHTMLOptions,+                        GHCJS.DOM.SetHTMLUnsafeOptions,+                        GHCJS.DOM.ShadowRoot,+                        GHCJS.DOM.ShadowRootInit,+                        GHCJS.DOM.ShareData,+                        GHCJS.DOM.SharedWorker,+                        GHCJS.DOM.SharedWorkerGlobalScope,+                        GHCJS.DOM.SharedWorkerOptions,+                        GHCJS.DOM.ShowPopoverOptions,+                        GHCJS.DOM.Slottable,+                        GHCJS.DOM.SourceBuffer,+                        GHCJS.DOM.SourceBufferList,+                        GHCJS.DOM.SpeechGrammar,+                        GHCJS.DOM.SpeechGrammarList,+                        GHCJS.DOM.SpeechRecognition,+                        GHCJS.DOM.SpeechRecognitionAlternative,+                        GHCJS.DOM.SpeechRecognitionErrorEvent,+                        GHCJS.DOM.SpeechRecognitionErrorEventInit,+                        GHCJS.DOM.SpeechRecognitionEvent,+                        GHCJS.DOM.SpeechRecognitionEventInit,+                        GHCJS.DOM.SpeechRecognitionOptions,+                        GHCJS.DOM.SpeechRecognitionPhrase,+                        GHCJS.DOM.SpeechRecognitionResult,+                        GHCJS.DOM.SpeechRecognitionResultList,+                        GHCJS.DOM.SpeechSynthesis,+                        GHCJS.DOM.SpeechSynthesisErrorEvent,+                        GHCJS.DOM.SpeechSynthesisErrorEventInit,+                        GHCJS.DOM.SpeechSynthesisEvent,+                        GHCJS.DOM.SpeechSynthesisEventInit,+                        GHCJS.DOM.SpeechSynthesisUtterance,+                        GHCJS.DOM.SpeechSynthesisVoice,+                        GHCJS.DOM.StartViewTransitionOptions,+                        GHCJS.DOM.StaticRange,+                        GHCJS.DOM.StaticRangeInit,+                        GHCJS.DOM.StereoPannerNode,+                        GHCJS.DOM.StereoPannerOptions,+                        GHCJS.DOM.Storage,+                        GHCJS.DOM.StorageEstimate,+                        GHCJS.DOM.StorageEvent,+                        GHCJS.DOM.StorageEventInit,+                        GHCJS.DOM.StorageManager,+                        GHCJS.DOM.StreamPipeOptions,+                        GHCJS.DOM.StructuredSerializeOptions,+                        GHCJS.DOM.StylePropertyMap,+                        GHCJS.DOM.StylePropertyMapReadOnly,+                        GHCJS.DOM.StyleSheet,+                        GHCJS.DOM.StyleSheetList,+                        GHCJS.DOM.SubmitEvent,+                        GHCJS.DOM.SubmitEventInit,+                        GHCJS.DOM.SubtleCrypto,+                        GHCJS.DOM.SvcOutputMetadata,+                        GHCJS.DOM.TaskController,+                        GHCJS.DOM.TaskControllerInit,+                        GHCJS.DOM.TaskPriorityChangeEvent,+                        GHCJS.DOM.TaskPriorityChangeEventInit,+                        GHCJS.DOM.TaskSignal,+                        GHCJS.DOM.TaskSignalAnyInit,+                        GHCJS.DOM.Text,+                        GHCJS.DOM.TextDecodeOptions,+                        GHCJS.DOM.TextDecoder,+                        GHCJS.DOM.TextDecoderCommon,+                        GHCJS.DOM.TextDecoderOptions,+                        GHCJS.DOM.TextDecoderStream,+                        GHCJS.DOM.TextEncoder,+                        GHCJS.DOM.TextEncoderCommon,+                        GHCJS.DOM.TextEncoderEncodeIntoResult,+                        GHCJS.DOM.TextEncoderStream,+                        GHCJS.DOM.TextEvent,+                        GHCJS.DOM.TextMetrics,+                        GHCJS.DOM.TextTrack,+                        GHCJS.DOM.TextTrackCue,+                        GHCJS.DOM.TextTrackCueList,+                        GHCJS.DOM.TextTrackList,+                        GHCJS.DOM.TimeRanges,+                        GHCJS.DOM.TimelineRangeOffset,+                        GHCJS.DOM.ToggleEvent,+                        GHCJS.DOM.ToggleEventInit,+                        GHCJS.DOM.TogglePopoverOptions,+                        GHCJS.DOM.Touch,+                        GHCJS.DOM.TouchEvent,+                        GHCJS.DOM.TouchEventInit,+                        GHCJS.DOM.TouchInit,+                        GHCJS.DOM.TouchList,+                        GHCJS.DOM.TrackEvent,+                        GHCJS.DOM.TrackEventInit,+                        GHCJS.DOM.TransformStream,+                        GHCJS.DOM.TransformStreamDefaultController,+                        GHCJS.DOM.TransitionEvent,+                        GHCJS.DOM.TransitionEventInit,+                        GHCJS.DOM.TreeWalker,+                        GHCJS.DOM.TrustedHTML,+                        GHCJS.DOM.TrustedHTMLParserOptions,+                        GHCJS.DOM.TrustedScript,+                        GHCJS.DOM.TrustedScriptURL,+                        GHCJS.DOM.TrustedTypePolicy,+                        GHCJS.DOM.TrustedTypePolicyFactory,+                        GHCJS.DOM.TrustedTypePolicyOptions,+                        GHCJS.DOM.UIEvent,+                        GHCJS.DOM.UIEventInit,+                        GHCJS.DOM.ULongRange,+                        GHCJS.DOM.URL,+                        GHCJS.DOM.URLPattern,+                        GHCJS.DOM.URLPatternComponentResult,+                        GHCJS.DOM.URLPatternInit,+                        GHCJS.DOM.URLPatternOptions,+                        GHCJS.DOM.URLPatternResult,+                        GHCJS.DOM.URLSearchParams,+                        GHCJS.DOM.UnknownCredentialOptions,+                        GHCJS.DOM.UserActivation,+                        GHCJS.DOM.VTTCue,+                        GHCJS.DOM.VTTRegion,+                        GHCJS.DOM.ValidityState,+                        GHCJS.DOM.ValidityStateFlags,+                        GHCJS.DOM.VideoColorSpace,+                        GHCJS.DOM.VideoColorSpaceInit,+                        GHCJS.DOM.VideoConfiguration,+                        GHCJS.DOM.VideoDecoder,+                        GHCJS.DOM.VideoDecoderConfig,+                        GHCJS.DOM.VideoDecoderInit,+                        GHCJS.DOM.VideoDecoderSupport,+                        GHCJS.DOM.VideoEncoder,+                        GHCJS.DOM.VideoEncoderConfig,+                        GHCJS.DOM.VideoEncoderEncodeOptions,+                        GHCJS.DOM.VideoEncoderEncodeOptionsForAv1,+                        GHCJS.DOM.VideoEncoderEncodeOptionsForAvc,+                        GHCJS.DOM.VideoEncoderEncodeOptionsForHevc,+                        GHCJS.DOM.VideoEncoderEncodeOptionsForVp9,+                        GHCJS.DOM.VideoEncoderInit,+                        GHCJS.DOM.VideoEncoderSupport,+                        GHCJS.DOM.VideoFrame,+                        GHCJS.DOM.VideoFrameBufferInit,+                        GHCJS.DOM.VideoFrameCallbackMetadata,+                        GHCJS.DOM.VideoFrameCopyToOptions,+                        GHCJS.DOM.VideoFrameInit,+                        GHCJS.DOM.VideoFrameMetadata,+                        GHCJS.DOM.VideoFrameOutputCallback,+                        GHCJS.DOM.VideoFrameRequestCallback,+                        GHCJS.DOM.VideoPlaybackQuality,+                        GHCJS.DOM.VideoTrack,+                        GHCJS.DOM.VideoTrackList,+                        GHCJS.DOM.ViewTimeline,+                        GHCJS.DOM.ViewTimelineOptions,+                        GHCJS.DOM.ViewTransition,+                        GHCJS.DOM.ViewTransitionTypeSet,+                        GHCJS.DOM.ViewTransitionUpdateCallback,+                        GHCJS.DOM.VisualViewport,+                        GHCJS.DOM.VoidFunction,+                        GHCJS.DOM.WEBGL_color_buffer_float,+                        GHCJS.DOM.WEBGL_compressed_texture_astc,+                        GHCJS.DOM.WEBGL_compressed_texture_etc,+                        GHCJS.DOM.WEBGL_compressed_texture_etc1,+                        GHCJS.DOM.WEBGL_compressed_texture_pvrtc,+                        GHCJS.DOM.WEBGL_compressed_texture_s3tc,+                        GHCJS.DOM.WEBGL_compressed_texture_s3tc_srgb,+                        GHCJS.DOM.WEBGL_debug_renderer_info,+                        GHCJS.DOM.WEBGL_debug_shaders,+                        GHCJS.DOM.WEBGL_depth_texture,+                        GHCJS.DOM.WEBGL_draw_buffers,+                        GHCJS.DOM.WEBGL_lose_context,+                        GHCJS.DOM.WEBGL_multi_draw,+                        GHCJS.DOM.WGSLLanguageFeatures,+                        GHCJS.DOM.WakeLock,+                        GHCJS.DOM.WakeLockSentinel,+                        GHCJS.DOM.WaveShaperNode,+                        GHCJS.DOM.WaveShaperOptions,+                        GHCJS.DOM.WebCodecsErrorCallback,+                        GHCJS.DOM.WebGL2RenderingContext,+                        GHCJS.DOM.WebGL2RenderingContextBase,+                        GHCJS.DOM.WebGL2RenderingContextOverloads,+                        GHCJS.DOM.WebGLActiveInfo,+                        GHCJS.DOM.WebGLBuffer,+                        GHCJS.DOM.WebGLContextAttributes,+                        GHCJS.DOM.WebGLContextEvent,+                        GHCJS.DOM.WebGLContextEventInit,+                        GHCJS.DOM.WebGLFramebuffer,+                        GHCJS.DOM.WebGLObject,+                        GHCJS.DOM.WebGLProgram,+                        GHCJS.DOM.WebGLQuery,+                        GHCJS.DOM.WebGLRenderbuffer,+                        GHCJS.DOM.WebGLRenderingContext,+                        GHCJS.DOM.WebGLRenderingContextBase,+                        GHCJS.DOM.WebGLRenderingContextOverloads,+                        GHCJS.DOM.WebGLSampler,+                        GHCJS.DOM.WebGLShader,+                        GHCJS.DOM.WebGLShaderPrecisionFormat,+                        GHCJS.DOM.WebGLSync,+                        GHCJS.DOM.WebGLTexture,+                        GHCJS.DOM.WebGLTransformFeedback,+                        GHCJS.DOM.WebGLUniformLocation,+                        GHCJS.DOM.WebGLVertexArrayObject,+                        GHCJS.DOM.WebGLVertexArrayObjectOES,+                        GHCJS.DOM.WebSocket,+                        GHCJS.DOM.WebTransport,+                        GHCJS.DOM.WebTransportBidirectionalStream,+                        GHCJS.DOM.WebTransportCloseInfo,+                        GHCJS.DOM.WebTransportConnectionStats,+                        GHCJS.DOM.WebTransportDatagramDuplexStream,+                        GHCJS.DOM.WebTransportDatagramStats,+                        GHCJS.DOM.WebTransportDatagramsWritable,+                        GHCJS.DOM.WebTransportError,+                        GHCJS.DOM.WebTransportErrorOptions,+                        GHCJS.DOM.WebTransportHash,+                        GHCJS.DOM.WebTransportOptions,+                        GHCJS.DOM.WebTransportReceiveStream,+                        GHCJS.DOM.WebTransportReceiveStreamStats,+                        GHCJS.DOM.WebTransportSendGroup,+                        GHCJS.DOM.WebTransportSendOptions,+                        GHCJS.DOM.WebTransportSendStream,+                        GHCJS.DOM.WebTransportSendStreamOptions,+                        GHCJS.DOM.WebTransportSendStreamStats,+                        GHCJS.DOM.WebTransportWriter,+                        GHCJS.DOM.WheelEvent,+                        GHCJS.DOM.WheelEventInit,+                        GHCJS.DOM.Window,+                        GHCJS.DOM.WindowClient,+                        GHCJS.DOM.WindowEventHandlers,+                        GHCJS.DOM.WindowLocalStorage,+                        GHCJS.DOM.WindowOrWorkerGlobalScope,+                        GHCJS.DOM.WindowPostMessageOptions,+                        GHCJS.DOM.WindowSessionStorage,+                        GHCJS.DOM.Worker,+                        GHCJS.DOM.WorkerAndParameters,+                        GHCJS.DOM.WorkerGlobalScope,+                        GHCJS.DOM.WorkerLocation,+                        GHCJS.DOM.WorkerNavigator,+                        GHCJS.DOM.WorkerOptions,+                        GHCJS.DOM.Worklet,+                        GHCJS.DOM.WorkletGlobalScope,+                        GHCJS.DOM.WorkletOptions,+                        GHCJS.DOM.WritableStream,+                        GHCJS.DOM.WritableStreamDefaultController,+                        GHCJS.DOM.WritableStreamDefaultWriter,+                        GHCJS.DOM.WriteParams,+                        GHCJS.DOM.XMLDocument,+                        GHCJS.DOM.XMLHttpRequest,+                        GHCJS.DOM.XMLHttpRequestEventTarget,+                        GHCJS.DOM.XMLHttpRequestUpload,+                        GHCJS.DOM.XMLSerializer,+                        GHCJS.DOM.XPathEvaluator,+                        GHCJS.DOM.XPathEvaluatorBase,+                        GHCJS.DOM.XPathExpression,+                        GHCJS.DOM.XPathNSResolver,+                        GHCJS.DOM.XPathResult,+                        GHCJS.DOM.XSLTProcessor
+ src/GHCJS/DOM/Debug.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+module GHCJS.DOM.Debug (+    DomHasCallStack+  , debugEnabled+  , getElementStack+  , addDebugMenu+  , addDebugMenu'+) where++import Control.Arrow (Arrow(..))+import Control.Monad.IO.Class (MonadIO(..))++import Data.Char (toLower)+import Data.Foldable (forM_)+import Data.Monoid ((<>))++import System.IO (stderr, hPutStrLn)++import GHC.Stack+       (srcLocStartLine, srcLocFile, SrcLoc(..), HasCallStack)+import GHC.Exts (Constraint)++import GHCJS.DOM (currentDocumentUnchecked)+import GHCJS.DOM.Types+       (HTMLDivElement(..), HTMLStyleElement(..), uncheckedCastTo,+        HTMLUListElement(..), PointerEvent(..), Document(..), Element(..),+        HTMLAnchorElement(..), MonadJSM, JSM, liftJSM, JSString)+import GHCJS.DOM.Debug.Internal (DomHasCallStack, getElementStack, debugEnabled)+import GHCJS.DOM.Document+       (createTextNode, getBodyUnchecked,+        getElementsByTagName, createElement, elementFromPoint)+import GHCJS.DOM.Element+       (getTagName, setAttribute, getAttribute, setInnerHTML)+import GHCJS.DOM.EventM+       (addListener, uiPageXY, mouseClientXY, mouseShiftKey, target,+        newListener, on, preventDefault)+import GHCJS.DOM.EventTargetClosures (SaferEventListener(..))+import GHCJS.DOM.GlobalEventHandlers (click, contextMenu)+import GHCJS.DOM.HTMLCollection (itemUnchecked)+import GHCJS.DOM.HTMLStyleElement (setType)+import GHCJS.DOM.Node (getParentElement, appendChild_)+import GHCJS.DOM.NonElementParentNode (getElementById)++addDebugMenu :: MonadJSM m => m (JSM ())+addDebugMenu = addDebugMenu' (const Nothing)++addDebugMenu' :: MonadJSM m => (SrcLoc -> Maybe String) -> m (JSM ())+addDebugMenu' getSourceLink = liftJSM $ do+    let menuId = "ghcjs-dom-debug" :: JSString+    doc <- currentDocumentUnchecked+    style <- uncheckedCastTo HTMLStyleElement <$> createElement doc ("style" :: JSString)+    setType style ("text/css" :: JSString)+    setInnerHTML style $ mconcat [+        "#", menuId, ", #", menuId, " ul ul{"+      , "  display: block;"+      , "  position: absolute;"+      , "  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);"+      , "  padding: 2px;"+      , "  z-index:1000;"+      , "  margin: 0;"+      , "  list-style-type: none;"+      , "  list-style: none;"+      , "  background-color:#fff;"+      , "  color:#000;"+      , "}\n"+      , "#", menuId, " ul{"+      , "  list-style-type: none;"+      , "  margin: 0;"+      , "  padding: 2px;"+      , "  cursor: pointer;"+      , "}\n"+      , "#", menuId, " li{"+      , "  white-space: nowrap;"+      , "}\n"+      , "#", menuId, " ul ul{"+      , "  display: none;"+      , "}\n"+      , "#", menuId, ">li:hover{"+      , "  background-color:#ddd;"+      , "}\n"+      , "#", menuId, " li:hover ul{"+      , "  display: inline-block;"+      , "  position: absolute;"+      , "  z-index:1001;"+      , "}\n"+      ]+    getElementsByTagName doc ("head" :: JSString) >>= (`itemUnchecked` 0) >>= (`appendChild_` style)+    body <- getBodyUnchecked doc+    clickListener <- newListener $ do+        target >>= \case+            Just (t :: HTMLAnchorElement) ->+                getAttribute t ("hs-srcloc" :: JSString)+                    >>= mapM_ (liftIO . hPutStrLn stderr . ("OPEN " <>))+            Nothing -> return ()+        getElementById doc menuId >>= mapM_+            (\e -> setAttribute e ("style" :: JSString) ("display: none;" :: JSString))+    on doc contextMenu $ mouseShiftKey >>= \case+        True -> ((fromIntegral *** fromIntegral) <$> mouseClientXY) >>= uncurry (elementFromPoint doc) >>= \case+            Just e ->  do+                preventDefault+                menu <- getElementById doc menuId >>= \case+                    Just menu -> setInnerHTML menu ("" :: JSString) >> return (uncheckedCastTo HTMLDivElement menu)+                    Nothing -> do+                        menu <- uncheckedCastTo HTMLDivElement <$> createElement doc ("div" :: JSString)+                        setAttribute menu ("id" :: JSString) menuId+                        appendChild_ body menu+                        return menu++                if debugEnabled+                    then do+                        ul <- uncheckedCastTo HTMLUListElement <$> createElement doc ("ul" :: JSString)+                        appendChild_ menu ul+                        addMenu doc clickListener ul e+                    else do+                        a <- uncheckedCastTo HTMLAnchorElement <$> createElement doc ("a" :: JSString)+                        appendChild_ menu a+                        createTextNode doc ("The ghcjs-dom debug cabal flag is switched off" :: JSString)+                            >>= appendChild_ a+                        setAttribute a ("href" :: JSString)+                            ("https://github.com/ghcjs/ghcjs-dom/blob/master/README.md#debug" :: JSString)+                        setAttribute a ("target" :: JSString) ("_blank" :: JSString)+                        liftJSM $ addListener a click clickListener False++                (pageX, pageY) <- uiPageXY+                setAttribute menu ("style" :: JSString) ("display: block; left: " <> show pageX <> "px; top:" <> show pageY <> "px;" )+            Nothing -> return ()+        False -> return ()++  where+    addMenu :: MonadJSM m => Document -> SaferEventListener HTMLAnchorElement PointerEvent -> HTMLUListElement -> Element -> m ()+    addMenu doc clickListener parentMenu = loop+      where+        loop e = do+            getElementStack e >>= mapM_ (addElementMenu doc clickListener parentMenu e)+            getParentElement e >>= mapM_ loop++    addElementMenu+        :: MonadJSM m+        => Document+        -> SaferEventListener HTMLAnchorElement PointerEvent+        -> HTMLUListElement+        -> Element+        -> [(String, SrcLoc)]+        -> m ()+    addElementMenu doc clickListener parentMenu e cs = do+        tagName <- map toLower <$> getTagName e+        parentLi <- createElement doc ("li" :: JSString)+        appendChild_ parentMenu parentLi+        createTextNode doc tagName >>= appendChild_ parentLi+        ul <- createElement doc ("ul" :: JSString)+        appendChild_ parentLi ul+        forM_ (reverse cs) $ \(f, loc) -> do+            li <- createElement doc ("li" :: JSString)+            appendChild_ ul li+            a <- uncheckedCastTo HTMLAnchorElement <$> createElement doc ("a" :: JSString)+            appendChild_ li a+            createTextNode doc (f <> " " <> srcLocFile loc <> ":" <> show (srcLocStartLine loc))+                >>= appendChild_ a+            forM_ (getSourceLink loc) $ \link -> do+                setAttribute a ("href" :: JSString) link+                setAttribute a ("target" :: JSString) ("_blank" :: JSString)+            setAttribute a ("hs-srcloc" :: JSString) $ prettySrcLoc loc+            liftJSM $ addListener a click clickListener False++    prettySrcLoc :: SrcLoc -> String+    prettySrcLoc SrcLoc {..} = mconcat+        [ srcLocFile          , ":("+        , show srcLocStartLine, ","+        , show srcLocStartCol , ")-("+        , show srcLocEndLine  , ","+        , show srcLocEndCol   , ") in "+        , srcLocPackage, ":", srcLocModule+        ]+
+ src/GHCJS/DOM/Debug/Internal.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE KindSignatures #-}+module GHCJS.DOM.Debug.Internal (+    DomHasCallStack+  , debugEnabled+  , cachedStacks+  , cacheStack+  , lookupStack+  , getElementStack+) where++import Control.Monad (void)+import Control.Monad.IO.Class (MonadIO, liftIO)+import Data.Map (Map)+import qualified Data.Map as M (insert, size, lookup)+import Data.IORef (atomicModifyIORef', IORef, newIORef, readIORef)+import GHC.Stack+       (SrcLoc, CallStack, callStack, getCallStack, HasCallStack)+import GHC.Exts (Constraint)+import System.IO.Unsafe (unsafePerformIO)+import Text.Read (readMaybe)++import GHCJS.DOM.Types (Element(..), MonadDOM, ToJSString, JSString)+import GHCJS.DOM.Element (setAttribute, getAttribute)++#ifdef GHCJS_DOM_DEBUG++type DomHasCallStack = (HasCallStack :: Constraint)+debugEnabled :: Bool+debugEnabled = True++#else++type DomHasCallStack = (() :: Constraint)++debugEnabled :: Bool+debugEnabled = False++#endif++cachedStacks :: IORef (Map String Int, Map Int [(String, SrcLoc)])+cachedStacks = unsafePerformIO $ newIORef (mempty, mempty)+{-# NOINLINE cachedStacks #-}++lookupStack :: MonadIO m => Int -> m (Maybe [(String, SrcLoc)])+lookupStack n = do+    (_, intToStack) <- liftIO $ readIORef cachedStacks+    return $ M.lookup n intToStack++getElementStack :: MonadDOM m => Element -> m (Maybe [(String, SrcLoc)])+getElementStack e =+    getAttribute e ("hs-creator" :: JSString) >>= \case+        Just a -> case readMaybe a of+            Just n -> lookupStack n+            Nothing -> return Nothing+        Nothing -> return Nothing++cacheStack :: MonadIO m => [(String, SrcLoc)] -> m Int+cacheStack cs = do+    let csString = show cs+    liftIO $ atomicModifyIORef' cachedStacks $ \(stackToInt, intToStack) ->+        case M.lookup csString stackToInt of+            Just n -> ((stackToInt, intToStack), n)+            Nothing ->+                let n = M.size stackToInt in+                ((M.insert csString n stackToInt, M.insert n cs intToStack), n)++
+ src/GHCJS/DOM/Document.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE PackageImports #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ConstraintKinds #-}+module GHCJS.DOM.Document (+    module Export+  , createElement+  , createElement_+  , createElementNS+  , createElementNS_+) where++#ifdef GHCJS_DOM_DEBUG++import Control.Monad (void)+import Control.Monad.IO.Class (MonadIO, liftIO)+import Data.IORef (atomicModifyIORef', IORef, newIORef, readIORef)+import GHC.Stack+       (SrcLoc, CallStack, callStack, getCallStack, HasCallStack)+import System.IO.Unsafe (unsafePerformIO)+import Text.Read (readMaybe)++import GHCJS.DOM.Types (Element(..), MonadDOM, ToJSString, JSString)+import GHCJS.DOM.Debug.Internal (cacheStack)+import GHCJS.DOM.Element (setAttribute, getAttribute)+#ifdef  MIN_VERSION_ghcjs_dom_javascript+import qualified "ghcjs-dom-javascript" GHCJS.DOM.Document as Raw (createElement, createElement_, createElementNS, createElementNS_)+import "ghcjs-dom-javascript" GHCJS.DOM.Document as Export hiding (createElement, createElement_, createElementNS, createElementNS_)+#else+#ifdef  MIN_VERSION_ghcjs_dom_jsffi+import qualified "ghcjs-dom-jsffi" GHCJS.DOM.Document as Raw (createElement, createElement_, createElementNS, createElementNS_)+import "ghcjs-dom-jsffi" GHCJS.DOM.Document as Export hiding (createElement, createElement_, createElementNS, createElementNS_)+#else+#if __GLASGOW_HASKELL__ >= 900+import qualified "ghcjs-dom-jsaddle" GHCJS.DOM.Document as Raw (createElement, createElement_, createElementNS, createElementNS_)+import "ghcjs-dom-jsaddle" GHCJS.DOM.Document as Export hiding (createElement, createElement_, createElementNS, createElementNS_)+#else+import qualified "jsaddle-dom" GHCJS.DOM.Document as Raw (createElement, createElement_, createElementNS, createElementNS_)+import "jsaddle-dom" GHCJS.DOM.Document as Export hiding (createElement, createElement_, createElementNS, createElementNS_)+#endif+#endif+#endif+++createElement+    :: (MonadDOM m, IsDocument doc, ToJSString localName, HasCallStack)+    => doc+    -> localName+    -> m Element+createElement doc localName = do+    e <- Raw.createElement doc localName+    let cs = getCallStack callStack+    setAttribute e ("hs-creator"::JSString) . show =<< cacheStack cs+    return e++createElement_+    :: (MonadDOM m, IsDocument doc, ToJSString localName, HasCallStack)+    => doc+    -> localName+    -> m ()+createElement_ doc localName = void $ createElement doc localName++createElementNS+    :: (MonadDOM m, IsDocument doc, ToJSString namespaceURI, ToJSString qualifiedName, HasCallStack)+    => doc+    -> Maybe namespaceURI+    -> qualifiedName+    -> m Element+createElementNS doc namespaceURI qualifiedName = do+    e <- Raw.createElementNS doc namespaceURI qualifiedName+    setAttribute e ("haskell-stack"::JSString) . show =<< cacheStack (getCallStack callStack)+    return e++createElementNS_+    :: (MonadDOM m, IsDocument doc, ToJSString namespaceURI, ToJSString qualifiedName, HasCallStack)+    => doc+    -> Maybe namespaceURI+    -> qualifiedName+    -> m ()+createElementNS_ doc namespaceURI qualifiedName = void $ createElementNS doc namespaceURI qualifiedName++#else++#ifdef MIN_VERSION_ghcjs_dom_javascript+import "ghcjs-dom-javascript" GHCJS.DOM.Document (createElement, createElement_, createElementNS, createElementNS_)+import "ghcjs-dom-javascript" GHCJS.DOM.Document as Export hiding (createElement, createElement_, createElementNS, createElementNS_)+#else+#ifdef MIN_VERSION_ghcjs_dom_jsffi+import "ghcjs-dom-jsffi" GHCJS.DOM.Document (createElement, createElement_, createElementNS, createElementNS_)+import "ghcjs-dom-jsffi" GHCJS.DOM.Document as Export hiding (createElement, createElement_, createElementNS, createElementNS_)+#else+#if __GLASGOW_HASKELL__ >= 900+import "ghcjs-dom-jsaddle" GHCJS.DOM.Document (createElement, createElement_, createElementNS, createElementNS_)+import "ghcjs-dom-jsaddle" GHCJS.DOM.Document as Export hiding (createElement, createElement_, createElementNS, createElementNS_)+#else+import "jsaddle-dom" GHCJS.DOM.Document (createElement, createElement_, createElementNS, createElementNS_)+import "jsaddle-dom" GHCJS.DOM.Document as Export hiding (createElement, createElement_, createElementNS, createElementNS_)+#endif+#endif+#endif++#endif