{
  "dart.dom.html": {
    "AbstractWorker": {
      "members": {
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [AbstractWorker].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [AbstractWorker]."
        ]
      }
    },
    "ApplicationCache": {
      "comment": [
        "/**",
        " * ApplicationCache is accessed via [Window.applicationCache].",
        " */"
      ],
      "members": {
        "cachedEvent": [
          "/**",
          "   * Static factory designed to expose `cached` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "checkingEvent": [
          "/**",
          "   * Static factory designed to expose `checking` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "downloadingEvent": [
          "/**",
          "   * Static factory designed to expose `downloading` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "noupdateEvent": [
          "/**",
          "   * Static factory designed to expose `noupdate` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "obsoleteEvent": [
          "/**",
          "   * Static factory designed to expose `obsolete` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "oncached": [
          "/// Stream of `cached` events handled by this [ApplicationCache]."
        ],
        "onchecking": [
          "/// Stream of `checking` events handled by this [ApplicationCache]."
        ],
        "ondownloading": [
          "/// Stream of `downloading` events handled by this [ApplicationCache]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [ApplicationCache]."
        ],
        "onnoupdate": [
          "/// Stream of `noupdate` events handled by this [ApplicationCache]."
        ],
        "onobsolete": [
          "/// Stream of `obsolete` events handled by this [ApplicationCache]."
        ],
        "onprogress": [
          "/// Stream of `progress` events handled by this [ApplicationCache]."
        ],
        "onupdateready": [
          "/// Stream of `updateready` events handled by this [ApplicationCache]."
        ],
        "progressEvent": [
          "/**",
          "   * Static factory designed to expose `progress` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "updatereadyEvent": [
          "/**",
          "   * Static factory designed to expose `updateready` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "CanvasGradient": {
      "comment": [
        "/**",
        " * An opaque canvas object representing a gradient.",
        " *",
        " * Created by calling the methods",
        " * [CanvasRenderingContext2D.createLinearGradient] or",
        " * [CanvasRenderingContext2D.createRadialGradient] on a",
        " * [CanvasRenderingContext2D] object.",
        " *",
        " * Example usage:",
        " *",
        " *     var canvas = new CanvasElement(width: 600, height: 600);",
        " *     var ctx = canvas.context2D;",
        " *     ctx.clearRect(0, 0, 600, 600);",
        " *     ctx.save();",
        " *     // Create radial gradient.",
        " *     CanvasGradient gradient = ctx.createRadialGradient(0, 0, 0, 0, 0, 600);",
        " *     gradient.addColorStop(0, '#000');",
        " *     gradient.addColorStop(1, 'rgb(255, 255, 255)');",
        " *     // Assign gradients to fill.",
        " *     ctx.fillStyle = gradient;",
        " *     // Draw a rectangle with a gradient fill.",
        " *     ctx.fillRect(0, 0, 600, 600);",
        " *     ctx.save();",
        " *     document.body.children.add(canvas);",
        " *",
        " * See also:",
        " *",
        " * * [CanvasGradient](https://developer.mozilla.org/en-US/docs/DOM/CanvasGradient) from MDN.",
        " * * [CanvasGradient](https://html.spec.whatwg.org/multipage/scripting.html#canvasgradient)",
        " *   from WHATWG.",
        " * * [CanvasGradient](http://www.w3.org/TR/2010/WD-2dcontext-20100304/#canvasgradient) from W3C.",
        " */"
      ],
      "members": {
        "addColorStop": [
          "/**",
          "   * Adds a color stop to this gradient at the offset.",
          "   *",
          "   * The [offset] can range between 0.0 and 1.0.",
          "   *",
          "   * See also:",
          "   *",
          "   * * [Multiple Color Stops](https://developer.mozilla.org/en-US/docs/CSS/linear-gradient#Gradient_with_multiple_color_stops) from MDN.",
          "   */"
        ]
      }
    },
    "CanvasPattern": {
      "comment": [
        "/**",
        " * An opaque object representing a pattern of image, canvas, or video.",
        " *",
        " * Created by calling [CanvasRenderingContext2D.createPattern] on a",
        " * [CanvasRenderingContext2D] object.",
        " *",
        " * Example usage:",
        " *",
        " *     var canvas = new CanvasElement(width: 600, height: 600);",
        " *     var ctx = canvas.context2D;",
        " *     var img = new ImageElement();",
        " *     // Image src needs to be loaded before pattern is applied.",
        " *     img.onLoad.listen((event) {",
        " *       // When the image is loaded, create a pattern",
        " *       // from the ImageElement.",
        " *       CanvasPattern pattern = ctx.createPattern(img, 'repeat');",
        " *       ctx.rect(0, 0, canvas.width, canvas.height);",
        " *       ctx.fillStyle = pattern;",
        " *       ctx.fill();",
        " *     });",
        " *     img.src = \"images/foo.jpg\";",
        " *     document.body.children.add(canvas);",
        " *",
        " * See also:",
        " * * [CanvasPattern](https://developer.mozilla.org/en-US/docs/DOM/CanvasPattern) from MDN.",
        " * * [CanvasPattern](https://html.spec.whatwg.org/multipage/scripting.html#canvaspattern)",
        " *   from WHATWG.",
        " * * [CanvasPattern](http://www.w3.org/TR/2010/WD-2dcontext-20100304/#canvaspattern) from W3C.",
        " */"
      ]
    },
    "CanvasRenderingContext": {
      "comment": [
        "/**",
        " * A rendering context for a canvas element.",
        " *",
        " * This context is extended by [CanvasRenderingContext2D] and",
        " * [WebGLRenderingContext].",
        " */"
      ],
      "members": {
        "canvas": [
          "/// Reference to the canvas element to which this context belongs."
        ]
      }
    },
    "CanvasRenderingContext2D": {
      "members": {
        "currentPath": [
          "/**",
          "   * The current default path of this canvas context, if there is one.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Current default",
          "   *   path](https://html.spec.whatwg.org/multipage/scripting.html#current-default-path)",
          "   *   from WHATWG.",
          "   */"
        ],
        "imageSmoothingEnabled": [
          "/**",
          "   * Whether images and patterns on this canvas will be smoothed when this",
          "   * canvas is scaled.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Image",
          "   *   smoothing](https://html.spec.whatwg.org/multipage/scripting.html#image-smoothing)",
          "   *   from WHATWG.",
          "   */"
        ],
        "webkitBackingStorePixelRatio": [
          "/**",
          "   * The ratio between this canvas' backing store dimensions and the canvas'",
          "   * logical dimensions.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [High DPI Canvas",
          "   *   tutorial](http://www.html5rocks.com/en/tutorials/canvas/hidpi/)",
          "   *   from HTML5Rocks.",
          "   */"
        ]
      }
    },
    "Clipboard": {
      "members": {
        "getData": [
          "/**",
          "   * Gets the data for the specified type.",
          "   *",
          "   * The data is only available from within a drop operation (such as an",
          "   * [Element.onDrop] event) and will return null before the event is",
          "   * triggered.",
          "   *",
          "   * Data transfer is prohibited across domains. If a drag originates",
          "   * from content from another domain or protocol (HTTP vs HTTPS) then the",
          "   * data cannot be accessed.",
          "   *",
          "   * The [type] can have values such as:",
          "   *",
          "   * * `'Text'`",
          "   * * `'URL'`",
          "   */"
        ]
      }
    },
    "DedicatedWorkerGlobalScope": {
      "members": {
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [DedicatedWorkerGlobalScope].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [DedicatedWorkerGlobalScope]."
        ]
      }
    },
    "Document": {
      "comment": [
        "/**",
        " * The base class for all documents.",
        " *",
        " * Each web page loaded in the browser has its own [Document] object, which is",
        " * typically an [HtmlDocument].",
        " *",
        " * If you aren't comfortable with DOM concepts, see the Dart tutorial",
        " * [Target 2: Connect Dart & HTML](http://www.dartlang.org/docs/tutorials/connect-dart-html/).",
        " */"
      ],
      "members": {
        "onabort": [
          "/// Stream of `abort` events handled by this [Document]."
        ],
        "onbeforecopy": [
          "/// Stream of `beforecopy` events handled by this [Document]."
        ],
        "onbeforecut": [
          "/// Stream of `beforecut` events handled by this [Document]."
        ],
        "onbeforepaste": [
          "/// Stream of `beforepaste` events handled by this [Document]."
        ],
        "onblur": [
          "/// Stream of `blur` events handled by this [Document]."
        ],
        "onchange": [
          "/// Stream of `change` events handled by this [Document]."
        ],
        "onclick": [
          "/// Stream of `click` events handled by this [Document]."
        ],
        "oncontextmenu": [
          "/// Stream of `contextmenu` events handled by this [Document]."
        ],
        "oncopy": [
          "/// Stream of `copy` events handled by this [Document]."
        ],
        "oncut": [
          "/// Stream of `cut` events handled by this [Document]."
        ],
        "ondblclick": [
          "/// Stream of `doubleclick` events handled by this [Document]."
        ],
        "ondrag": [
          "/// Stream of `drag` events handled by this [Document]."
        ],
        "ondragend": [
          "/// Stream of `dragend` events handled by this [Document]."
        ],
        "ondragenter": [
          "/// Stream of `dragenter` events handled by this [Document]."
        ],
        "ondragleave": [
          "/// Stream of `dragleave` events handled by this [Document]."
        ],
        "ondragover": [
          "/// Stream of `dragover` events handled by this [Document]."
        ],
        "ondragstart": [
          "/// Stream of `dragstart` events handled by this [Document]."
        ],
        "ondrop": [
          "/// Stream of `drop` events handled by this [Document]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Document]."
        ],
        "onfocus": [
          "/// Stream of `focus` events handled by this [Document]."
        ],
        "oninput": [
          "/// Stream of `input` events handled by this [Document]."
        ],
        "oninvalid": [
          "/// Stream of `invalid` events handled by this [Document]."
        ],
        "onkeydown": [
          "/// Stream of `keydown` events handled by this [Document]."
        ],
        "onkeypress": [
          "/// Stream of `keypress` events handled by this [Document]."
        ],
        "onkeyup": [
          "/// Stream of `keyup` events handled by this [Document]."
        ],
        "onload": [
          "/// Stream of `load` events handled by this [Document]."
        ],
        "onmousedown": [
          "/// Stream of `mousedown` events handled by this [Document]."
        ],
        "onmouseenter": [
          "/// Stream of `mouseenter` events handled by this [Document]."
        ],
        "onmouseleave": [
          "/// Stream of `mouseleave` events handled by this [Document]."
        ],
        "onmousemove": [
          "/// Stream of `mousemove` events handled by this [Document]."
        ],
        "onmouseout": [
          "/// Stream of `mouseout` events handled by this [Document]."
        ],
        "onmouseover": [
          "/// Stream of `mouseover` events handled by this [Document]."
        ],
        "onmouseup": [
          "/// Stream of `mouseup` events handled by this [Document]."
        ],
        "onmousewheel": [
          "/// Stream of `mousewheel` events handled by this [Document]."
        ],
        "onpaste": [
          "/// Stream of `paste` events handled by this [Document]."
        ],
        "onreadystatechange": [
          "/// Stream of `readystatechange` events handled by this [Document]."
        ],
        "onreset": [
          "/// Stream of `reset` events handled by this [Document]."
        ],
        "onscroll": [
          "/// Stream of `scroll` events handled by this [Document]."
        ],
        "onsearch": [
          "/// Stream of `search` events handled by this [Document]."
        ],
        "onsecuritypolicyviolation": [
          "/// Stream of `securitypolicyviolation` events handled by this [Document]."
        ],
        "onselect": [
          "/// Stream of `select` events handled by this [Document]."
        ],
        "onselectionchange": [
          "/// Stream of `selectionchange` events handled by this [Document]."
        ],
        "onselectstart": [
          "/// Stream of `selectstart` events handled by this [Document]."
        ],
        "onsubmit": [
          "/// Stream of `submit` events handled by this [Document]."
        ],
        "ontouchcancel": [
          "/// Stream of `touchcancel` events handled by this [Document]."
        ],
        "ontouchend": [
          "/// Stream of `touchend` events handled by this [Document]."
        ],
        "ontouchmove": [
          "/// Stream of `touchmove` events handled by this [Document]."
        ],
        "ontouchstart": [
          "/// Stream of `touchstart` events handled by this [Document]."
        ],
        "onwebkitfullscreenchange": [
          "/// Stream of `fullscreenchange` events handled by this [Document]."
        ],
        "onwebkitfullscreenerror": [
          "/// Stream of `fullscreenerror` events handled by this [Document]."
        ],
        "onwebkitpointerlockchange": [
          "/// Stream of `pointerlockchange` events handled by this [Document]."
        ],
        "onwebkitpointerlockerror": [
          "/// Stream of `pointerlockerror` events handled by this [Document]."
        ],
        "querySelector": [
          "/**",
          "   * Finds the first descendant element of this document that matches the",
          "   * specified group of selectors.",
          "   *",
          "   * Unless your webpage contains multiple documents, the top-level",
          "   * [querySelector]",
          "   * method behaves the same as this method, so you should use it instead to",
          "   * save typing a few characters.",
          "   *",
          "   * [selectors] should be a string using CSS selector syntax.",
          "   *",
          "   *     var element1 = document.querySelector('.className');",
          "   *     var element2 = document.querySelector('#id');",
          "   *",
          "   * For details about CSS selector syntax, see the",
          "   * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).",
          "   */"
        ],
        "readystatechangeEvent": [
          "/**",
          "   * Static factory designed to expose `readystatechange` events to event",
          "   * handlers that are not necessarily instances of [Document].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "securitypolicyviolationEvent": [
          "/**",
          "   * Static factory designed to expose `securitypolicyviolation` events to event",
          "   * handlers that are not necessarily instances of [Document].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "selectionchangeEvent": [
          "/**",
          "   * Static factory designed to expose `selectionchange` events to event",
          "   * handlers that are not necessarily instances of [Document].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitpointerlockchangeEvent": [
          "/**",
          "   * Static factory designed to expose `pointerlockchange` events to event",
          "   * handlers that are not necessarily instances of [Document].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitpointerlockerrorEvent": [
          "/**",
          "   * Static factory designed to expose `pointerlockerror` events to event",
          "   * handlers that are not necessarily instances of [Document].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "DocumentFragment": {
      "members": {
        "querySelector": [
          "/**",
          "   * Finds the first descendant element of this document fragment that matches",
          "   * the specified group of selectors.",
          "   *",
          "   * [selectors] should be a string using CSS selector syntax.",
          "   *",
          "   *     var element1 = fragment.querySelector('.className');",
          "   *     var element2 = fragment.querySelector('#id');",
          "   *",
          "   * For details about CSS selector syntax, see the",
          "   * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).",
          "   */"
        ]
      }
    },
    "Element": {
      "comment": [
        "/**",
        " * An abstract class, which all HTML elements extend.",
        " */"
      ],
      "members": {
        "abortEvent": [
          "/**",
          "   * Static factory designed to expose `abort` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "beforecopyEvent": [
          "/**",
          "   * Static factory designed to expose `beforecopy` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "beforecutEvent": [
          "/**",
          "   * Static factory designed to expose `beforecut` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "beforepasteEvent": [
          "/**",
          "   * Static factory designed to expose `beforepaste` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "blurEvent": [
          "/**",
          "   * Static factory designed to expose `blur` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "changeEvent": [
          "/**",
          "   * Static factory designed to expose `change` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "clickEvent": [
          "/**",
          "   * Static factory designed to expose `click` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "contextmenuEvent": [
          "/**",
          "   * Static factory designed to expose `contextmenu` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "copyEvent": [
          "/**",
          "   * Static factory designed to expose `copy` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "cutEvent": [
          "/**",
          "   * Static factory designed to expose `cut` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dblclickEvent": [
          "/**",
          "   * Static factory designed to expose `doubleclick` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dragendEvent": [
          "/**",
          "   * A stream of `dragend` events fired when an element completes a drag",
          "   * operation.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "dragenterEvent": [
          "/**",
          "   * A stream of `dragenter` events fired when a dragged object is first dragged",
          "   * over an element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "dragEvent": [
          "/**",
          "   * A stream of `drag` events fired when an element is currently being dragged.",
          "   *",
          "   * A `drag` event is added to this stream as soon as the drag begins.",
          "   * A `drag` event is also added to this stream at intervals while the drag",
          "   * operation is still ongoing.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "draggable": [
          "/**",
          "   * Indicates whether the element can be dragged and dropped.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "dragleaveEvent": [
          "/**",
          "   * A stream of `dragleave` events fired when an object being dragged over an",
          "   * element leaves the element's target area.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "dragoverEvent": [
          "/**",
          "   * A stream of `dragover` events fired when a dragged object is currently",
          "   * being dragged over an element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "dragstartEvent": [
          "/**",
          "   * A stream of `dragstart` events for a dragged element whose drag has begun.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "dropEvent": [
          "/**",
          "   * A stream of `drop` events fired when a dragged object is dropped on an",
          "   * element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "focusEvent": [
          "/**",
          "   * Static factory designed to expose `focus` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "getBoundingClientRect": [
          "/**",
          "   * Returns the smallest bounding rectangle that encompasses this element's",
          "   * padding, scrollbar, and border.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Element.getBoundingClientRect](https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect)",
          "   *   from MDN.",
          "   * * [The getBoundingClientRect()",
          "   *   method](http://www.w3.org/TR/cssom-view/#the-getclientrects()-and-getboundingclientrect()-methods)",
          "   *   from W3C.",
          "   */"
        ],
        "getClientRects": [
          "/**",
          "   * Returns a list of bounding rectangles for each box associated with this",
          "   * element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Element.getClientRects](https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects)",
          "   *   from MDN.",
          "   * * [The getClientRects()",
          "   *   method](http://www.w3.org/TR/cssom-view/#the-getclientrects()-and-getboundingclientrect()-methods)",
          "   *   from W3C.",
          "   */"
        ],
        "getDestinationInsertionPoints": [
          "/**",
          "   * Returns a list of shadow DOM insertion points to which this element is",
          "   * distributed.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Shadow DOM",
          "   *   specification](https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html)",
          "   *   from W3C.",
          "   */"
        ],
        "getElementsByClassName": [
          "/**",
          "   * Returns a list of nodes with the given class name inside this element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [getElementsByClassName](https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByClassName)",
          "   *   from MDN.",
          "   * * [DOM specification](http://www.w3.org/TR/domcore/) from W3C.",
          "   */"
        ],
        "hidden": [
          "/**",
          "   * Indicates whether the element is not relevant to the page's current state.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Hidden attribute",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#the-hidden-attribute)",
          "   *   from WHATWG.",
          "   */"
        ],
        "inputEvent": [
          "/**",
          "   * Static factory designed to expose `input` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "inputMethodContext": [
          "/**",
          "   * The current state of IME composition.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Input method editor",
          "   *   specification](http://www.w3.org/TR/ime-api/) from W3C.",
          "   */"
        ],
        "invalidEvent": [
          "/**",
          "   * Static factory designed to expose `invalid` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "keydownEvent": [
          "/**",
          "   * Static factory designed to expose `keydown` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "keypressEvent": [
          "/**",
          "   * Static factory designed to expose `keypress` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "keyupEvent": [
          "/**",
          "   * Static factory designed to expose `keyup` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadEvent": [
          "/**",
          "   * Static factory designed to expose `load` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mousedownEvent": [
          "/**",
          "   * Static factory designed to expose `mousedown` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseenterEvent": [
          "/**",
          "   * Static factory designed to expose `mouseenter` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseleaveEvent": [
          "/**",
          "   * Static factory designed to expose `mouseleave` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mousemoveEvent": [
          "/**",
          "   * Static factory designed to expose `mousemove` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseoutEvent": [
          "/**",
          "   * Static factory designed to expose `mouseout` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseoverEvent": [
          "/**",
          "   * Static factory designed to expose `mouseover` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseupEvent": [
          "/**",
          "   * Static factory designed to expose `mouseup` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [Element]."
        ],
        "onbeforecopy": [
          "/// Stream of `beforecopy` events handled by this [Element]."
        ],
        "onbeforecut": [
          "/// Stream of `beforecut` events handled by this [Element]."
        ],
        "onbeforepaste": [
          "/// Stream of `beforepaste` events handled by this [Element]."
        ],
        "onblur": [
          "/// Stream of `blur` events handled by this [Element]."
        ],
        "onchange": [
          "/// Stream of `change` events handled by this [Element]."
        ],
        "onclick": [
          "/// Stream of `click` events handled by this [Element]."
        ],
        "oncontextmenu": [
          "/// Stream of `contextmenu` events handled by this [Element]."
        ],
        "oncopy": [
          "/// Stream of `copy` events handled by this [Element]."
        ],
        "oncut": [
          "/// Stream of `cut` events handled by this [Element]."
        ],
        "ondblclick": [
          "/// Stream of `doubleclick` events handled by this [Element]."
        ],
        "ondrag": [
          "/**",
          "   * A stream of `drag` events fired when this element currently being dragged.",
          "   *",
          "   * A `drag` event is added to this stream as soon as the drag begins.",
          "   * A `drag` event is also added to this stream at intervals while the drag",
          "   * operation is still ongoing.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "ondragend": [
          "/**",
          "   * A stream of `dragend` events fired when this element completes a drag",
          "   * operation.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "ondragenter": [
          "/**",
          "   * A stream of `dragenter` events fired when a dragged object is first dragged",
          "   * over this element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "ondragleave": [
          "/**",
          "   * A stream of `dragleave` events fired when an object being dragged over this",
          "   * element leaves this element's target area.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "ondragover": [
          "/**",
          "   * A stream of `dragover` events fired when a dragged object is currently",
          "   * being dragged over this element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "ondragstart": [
          "/**",
          "   * A stream of `dragstart` events fired when this element starts being",
          "   * dragged.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "ondrop": [
          "/**",
          "   * A stream of `drop` events fired when a dragged object is dropped on this",
          "   * element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Element]."
        ],
        "onfocus": [
          "/// Stream of `focus` events handled by this [Element]."
        ],
        "oninput": [
          "/// Stream of `input` events handled by this [Element]."
        ],
        "oninvalid": [
          "/// Stream of `invalid` events handled by this [Element]."
        ],
        "onkeydown": [
          "/// Stream of `keydown` events handled by this [Element]."
        ],
        "onkeypress": [
          "/// Stream of `keypress` events handled by this [Element]."
        ],
        "onkeyup": [
          "/// Stream of `keyup` events handled by this [Element]."
        ],
        "onload": [
          "/// Stream of `load` events handled by this [Element]."
        ],
        "onmousedown": [
          "/// Stream of `mousedown` events handled by this [Element]."
        ],
        "onmouseenter": [
          "/// Stream of `mouseenter` events handled by this [Element]."
        ],
        "onmouseleave": [
          "/// Stream of `mouseleave` events handled by this [Element]."
        ],
        "onmousemove": [
          "/// Stream of `mousemove` events handled by this [Element]."
        ],
        "onmouseout": [
          "/// Stream of `mouseout` events handled by this [Element]."
        ],
        "onmouseover": [
          "/// Stream of `mouseover` events handled by this [Element]."
        ],
        "onmouseup": [
          "/// Stream of `mouseup` events handled by this [Element]."
        ],
        "onmousewheel": [
          "/// Stream of `mousewheel` events handled by this [Element]."
        ],
        "onpaste": [
          "/// Stream of `paste` events handled by this [Element]."
        ],
        "onreset": [
          "/// Stream of `reset` events handled by this [Element]."
        ],
        "onscroll": [
          "/// Stream of `scroll` events handled by this [Element]."
        ],
        "onsearch": [
          "/// Stream of `search` events handled by this [Element]."
        ],
        "onselect": [
          "/// Stream of `select` events handled by this [Element]."
        ],
        "onselectstart": [
          "/// Stream of `selectstart` events handled by this [Element]."
        ],
        "onsubmit": [
          "/// Stream of `submit` events handled by this [Element]."
        ],
        "ontouchcancel": [
          "/// Stream of `touchcancel` events handled by this [Element]."
        ],
        "ontouchend": [
          "/// Stream of `touchend` events handled by this [Element]."
        ],
        "ontouchenter": [
          "/// Stream of `touchenter` events handled by this [Element]."
        ],
        "ontouchleave": [
          "/// Stream of `touchleave` events handled by this [Element]."
        ],
        "ontouchmove": [
          "/// Stream of `touchmove` events handled by this [Element]."
        ],
        "ontouchstart": [
          "/// Stream of `touchstart` events handled by this [Element]."
        ],
        "ontransitionend": [
          "/// Stream of `transitionend` events handled by this [Element]."
        ],
        "onwebkitfullscreenchange": [
          "/// Stream of `fullscreenchange` events handled by this [Element]."
        ],
        "onwebkitfullscreenerror": [
          "/// Stream of `fullscreenerror` events handled by this [Element]."
        ],
        "pasteEvent": [
          "/**",
          "   * Static factory designed to expose `paste` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "pseudo": [
          "/**",
          "   * The name of this element's custom pseudo-element.",
          "   *",
          "   * This value must begin with an x and a hyphen, `x-`, to be considered valid.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Using custom pseudo",
          "   *   elements](http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom-201/#toc-custom-pseduo)",
          "   *   from HTML5Rocks.",
          "   * * [Custom pseudo-elements](http://www.w3.org/TR/shadow-dom/#custom-pseudo-elements)",
          "   *   from W3C.",
          "   */"
        ],
        "querySelector": [
          "/**",
          "   * Finds the first descendant element of this element that matches the",
          "   * specified group of selectors.",
          "   *",
          "   * [selectors] should be a string using CSS selector syntax.",
          "   *",
          "   *     // Gets the first descendant with the class 'classname'",
          "   *     var element = element.querySelector('.className');",
          "   *     // Gets the element with id 'id'",
          "   *     var element = element.querySelector('#id');",
          "   *     // Gets the first descendant [ImageElement]",
          "   *     var img = element.querySelector('img');",
          "   *",
          "   * For details about CSS selector syntax, see the",
          "   * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).",
          "   */"
        ],
        "resetEvent": [
          "/**",
          "   * Static factory designed to expose `reset` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "scrollByLines": [
          "/**",
          "   * Scrolls the element by a number of lines.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.scrollByLines](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollByLines)",
          "   *   from MDN.",
          "   */"
        ],
        "scrollByPages": [
          "/**",
          "   * Scrolls the element by a number of pages.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.scrollByPages](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollByPages)",
          "   *   from MDN.",
          "   */"
        ],
        "scrollEvent": [
          "/**",
          "   * Static factory designed to expose `scroll` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "scrollIntoViewIfNeeded": [
          "/**",
          "   * Nonstandard version of `scrollIntoView` that scrolls the current element",
          "   * into the visible area of the browser window if it's not already within the",
          "   * visible area of the browser window. If the element is already within the",
          "   * visible area of the browser window, then no scrolling takes place.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Element.scrollIntoViewIfNeeded](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoViewIfNeeded)",
          "   *   from MDN.",
          "   */"
        ],
        "searchEvent": [
          "/**",
          "   * Static factory designed to expose `search` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "selectEvent": [
          "/**",
          "   * Static factory designed to expose `select` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "selectstartEvent": [
          "/**",
          "   * Static factory designed to expose `selectstart` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "submitEvent": [
          "/**",
          "   * Static factory designed to expose `submit` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "touchcancelEvent": [
          "/**",
          "   * Static factory designed to expose `touchcancel` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "touchendEvent": [
          "/**",
          "   * Static factory designed to expose `touchend` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "touchenterEvent": [
          "/**",
          "   * Static factory designed to expose `touchenter` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "touchleaveEvent": [
          "/**",
          "   * Static factory designed to expose `touchleave` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "touchmoveEvent": [
          "/**",
          "   * Static factory designed to expose `touchmove` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "touchstartEvent": [
          "/**",
          "   * Static factory designed to expose `touchstart` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "translate": [
          "/**",
          "   * Specifies whether this element's text content changes when the page is",
          "   * localized.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The translate",
          "   *   attribute](https://html.spec.whatwg.org/multipage/dom.html#the-translate-attribute)",
          "   *   from WHATWG.",
          "   */"
        ],
        "webkitdropzone": [
          "/**",
          "   * A set of space-separated keywords that specify what kind of data this",
          "   * Element accepts on drop and what to do with that data.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Drag and drop",
          "   *   sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)",
          "   *   based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Drag and drop",
          "   *   specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)",
          "   *   from WHATWG.",
          "   */"
        ],
        "webkitfullscreenchangeEvent": [
          "/**",
          "   * Static factory designed to expose `fullscreenchange` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitfullscreenerrorEvent": [
          "/**",
          "   * Static factory designed to expose `fullscreenerror` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitGetRegionFlowRanges": [
          "/**",
          "   * Returns an array of ranges of fragments in the flow.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [CSS regions and exclusions",
          "   *   tutorial](http://www.html5rocks.com/en/tutorials/regions/adobe/) from HTML5Rocks.",
          "   * * [Regions](http://webplatform.adobe.com/regions/) from Adobe.",
          "   * * [CSS regions specification](http://www.w3.org/TR/css3-regions/) from W3C.",
          "   */"
        ],
        "webkitRegionOverset": [
          "/**",
          "   * The current state of this region.",
          "   *",
          "   * If `\"empty\"`, then there is no content in this region.",
          "   * If `\"fit\"`, then content fits into this region, and more content can be",
          "   * added. If `\"overset\"`, then there is more content than can be fit into this",
          "   * region.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [CSS regions and exclusions",
          "   *   tutorial](http://www.html5rocks.com/en/tutorials/regions/adobe/) from HTML5Rocks.",
          "   * * [Regions](http://webplatform.adobe.com/regions/) from Adobe.",
          "   * * [CSS regions specification](http://www.w3.org/TR/css3-regions/) from W3C.",
          "   */"
        ],
        "webkitRequestFullscreen": [
          "/**",
          "   * Displays this element fullscreen.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Fullscreen",
          "   *   API](https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API)",
          "   *   from MDN.",
          "   * * [Fullscreen specification](http://www.w3.org/TR/fullscreen/) from W3C.",
          "   */"
        ],
        "webkitRequestPointerLock": [
          "/**",
          "   * Locks the mouse pointer to this element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Pointer lock and first person shooter",
          "   *   controls](http://www.html5rocks.com/en/tutorials/pointerlock/intro/)",
          "   *   tutorial from HTML5Rocks.",
          "   * * [Pointer lock specification](http://www.w3.org/TR/pointerlock/)",
          "   *   from W3C.",
          "   */"
        ]
      }
    },
    "Event": {
      "members": {
        "AT_TARGET": [
          "/**",
          "   * This event is being handled by the event target.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Target phase](http://www.w3.org/TR/DOM-Level-3-Events/#target-phase)",
          "   *   from W3C.",
          "   */"
        ],
        "BUBBLING_PHASE": [
          "/**",
          "   * This event is bubbling up through the target's ancestors.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Bubble phase](http://www.w3.org/TR/DOM-Level-3-Events/#bubble-phase)",
          "   *   from W3C.",
          "   */"
        ],
        "CAPTURING_PHASE": [
          "/**",
          "   * This event is propagating through the target's ancestors, starting from the",
          "   * document.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Bubble phase](http://www.w3.org/TR/DOM-Level-3-Events/#bubble-phase)",
          "   *   from W3C.",
          "   */"
        ],
        "clipboardData": [
          "/**",
          "   * Access to the system's clipboard data during copy, cut, and paste events.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [clipboardData specification](http://www.w3.org/TR/clipboard-apis/#attributes)",
          "   *   from W3C.",
          "   */"
        ],
        "path": [
          "/**",
          "   * This event's path, taking into account shadow DOM.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Shadow DOM extensions to",
          "   *   Event](http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event)",
          "   *   from W3C.",
          "   */"
        ]
      }
    },
    "EventSource": {
      "members": {
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [EventSource].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [EventSource].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [EventSource]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [EventSource]."
        ],
        "onopen": [
          "/// Stream of `open` events handled by this [EventSource]."
        ],
        "openEvent": [
          "/**",
          "   * Static factory designed to expose `open` events to event",
          "   * handlers that are not necessarily instances of [EventSource].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "FileReader": {
      "members": {
        "abortEvent": [
          "/**",
          "   * Static factory designed to expose `abort` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadendEvent": [
          "/**",
          "   * Static factory designed to expose `loadend` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadEvent": [
          "/**",
          "   * Static factory designed to expose `load` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadstartEvent": [
          "/**",
          "   * Static factory designed to expose `loadstart` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [FileReader]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [FileReader]."
        ],
        "onload": [
          "/// Stream of `load` events handled by this [FileReader]."
        ],
        "onloadend": [
          "/// Stream of `loadend` events handled by this [FileReader]."
        ],
        "onloadstart": [
          "/// Stream of `loadstart` events handled by this [FileReader]."
        ],
        "onprogress": [
          "/// Stream of `progress` events handled by this [FileReader]."
        ],
        "progressEvent": [
          "/**",
          "   * Static factory designed to expose `progress` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "FileWriter": {
      "members": {
        "abortEvent": [
          "/**",
          "   * Static factory designed to expose `abort` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [FileWriter]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [FileWriter]."
        ],
        "onprogress": [
          "/// Stream of `progress` events handled by this [FileWriter]."
        ],
        "onwrite": [
          "/// Stream of `write` events handled by this [FileWriter]."
        ],
        "onwriteend": [
          "/// Stream of `writeend` events handled by this [FileWriter]."
        ],
        "onwritestart": [
          "/// Stream of `writestart` events handled by this [FileWriter]."
        ],
        "progressEvent": [
          "/**",
          "   * Static factory designed to expose `progress` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "writeendEvent": [
          "/**",
          "   * Static factory designed to expose `writeend` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "writeEvent": [
          "/**",
          "   * Static factory designed to expose `write` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "writestartEvent": [
          "/**",
          "   * Static factory designed to expose `writestart` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "HTMLAreaElement": {
      "comment": [
        "/**",
        " * DOM Area Element, which links regions of an image map with a hyperlink.",
        " *",
        " * The element can also define an uninteractive region of the map.",
        " *",
        " * See also:",
        " *",
        " * * [`<area>`](https://developer.mozilla.org/en-US/docs/HTML/Element/area)",
        " * on MDN.",
        " */"
      ]
    },
    "HTMLBodyElement": {
      "members": {
        "blurEvent": [
          "/**",
          "   * Static factory designed to expose `blur` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "focusEvent": [
          "/**",
          "   * Static factory designed to expose `focus` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "hashchangeEvent": [
          "/**",
          "   * Static factory designed to expose `hashchange` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadEvent": [
          "/**",
          "   * Static factory designed to expose `load` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "offlineEvent": [
          "/**",
          "   * Static factory designed to expose `offline` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onblur": [
          "/// Stream of `blur` events handled by this [BodyElement]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [BodyElement]."
        ],
        "onfocus": [
          "/// Stream of `focus` events handled by this [BodyElement]."
        ],
        "onhashchange": [
          "/// Stream of `hashchange` events handled by this [BodyElement]."
        ],
        "onlineEvent": [
          "/**",
          "   * Static factory designed to expose `online` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onload": [
          "/// Stream of `load` events handled by this [BodyElement]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [BodyElement]."
        ],
        "onoffline": [
          "/// Stream of `offline` events handled by this [BodyElement]."
        ],
        "ononline": [
          "/// Stream of `online` events handled by this [BodyElement]."
        ],
        "onpopstate": [
          "/// Stream of `popstate` events handled by this [BodyElement]."
        ],
        "onresize": [
          "/// Stream of `resize` events handled by this [BodyElement]."
        ],
        "onstorage": [
          "/// Stream of `storage` events handled by this [BodyElement]."
        ],
        "onunload": [
          "/// Stream of `unload` events handled by this [BodyElement]."
        ],
        "popstateEvent": [
          "/**",
          "   * Static factory designed to expose `popstate` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "resizeEvent": [
          "/**",
          "   * Static factory designed to expose `resize` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "storageEvent": [
          "/**",
          "   * Static factory designed to expose `storage` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "unloadEvent": [
          "/**",
          "   * Static factory designed to expose `unload` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "HTMLCanvasElement": {
      "members": {
        "height": [
          "/// The height of this canvas element in CSS pixels."
        ],
        "onwebglcontextlost": [
          "/// Stream of `webglcontextlost` events handled by this [CanvasElement]."
        ],
        "onwebglcontextrestored": [
          "/// Stream of `webglcontextrestored` events handled by this [CanvasElement]."
        ],
        "webglcontextlostEvent": [
          "/**",
          "   * Static factory designed to expose `webglcontextlost` events to event",
          "   * handlers that are not necessarily instances of [CanvasElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webglcontextrestoredEvent": [
          "/**",
          "   * Static factory designed to expose `webglcontextrestored` events to event",
          "   * handlers that are not necessarily instances of [CanvasElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "width": [
          "/// The width of this canvas element in CSS pixels."
        ]
      }
    },
    "HTMLDivElement": {
      "comment": [
        "/**",
        " * A generic container for content on an HTML page;",
        " * corresponds to the &lt;div&gt; tag.",
        " *",
        " * The [DivElement] is a generic container and does not have any semantic",
        " * significance. It is functionally similar to [SpanElement].",
        " *",
        " * The [DivElement] is a block-level element, as opposed to [SpanElement],",
        " * which is an inline-level element.",
        " *",
        " * Example usage:",
        " *",
        " *     DivElement div = new DivElement();",
        " *     div.text = 'Here's my new DivElem",
        " *     document.body.elements.add(elem);",
        " *",
        " * See also:",
        " *",
        " * * [HTML `<div>` element](http://www.w3.org/TR/html-markup/div.html) from W3C.",
        " * * [Block-level element](http://www.w3.org/TR/CSS2/visuren.html#block-boxes) from W3C.",
        " * * [Inline-level element](http://www.w3.org/TR/CSS2/visuren.html#inline-boxes) from W3C.",
        " */"
      ]
    },
    "HTMLFormElement": {
      "members": {
        "autocompleteerrorEvent": [
          "/**",
          "   * Static factory designed to expose `autocompleteerror` events to event",
          "   * handlers that are not necessarily instances of [FormElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "autocompleteEvent": [
          "/**",
          "   * Static factory designed to expose `autocomplete` events to event",
          "   * handlers that are not necessarily instances of [FormElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onautocomplete": [
          "/// Stream of `autocomplete` events handled by this [FormElement]."
        ],
        "onautocompleteerror": [
          "/// Stream of `autocompleteerror` events handled by this [FormElement]."
        ]
      }
    },
    "HTMLHRElement": {
      "comment": [
        "/**",
        " * An `<hr>` tag.",
        " */"
      ]
    },
    "HTMLInputElement": {
      "members": {
        "onwebkitSpeechChange": [
          "/// Stream of `speechchange` events handled by this [InputElement]."
        ],
        "webkitSpeechChangeEvent": [
          "/**",
          "   * Static factory designed to expose `speechchange` events to event",
          "   * handlers that are not necessarily instances of [InputElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "HTMLMediaElement": {
      "members": {
        "canplayEvent": [
          "/**",
          "   * Static factory designed to expose `canplay` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "canplaythroughEvent": [
          "/**",
          "   * Static factory designed to expose `canplaythrough` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "durationchangeEvent": [
          "/**",
          "   * Static factory designed to expose `durationchange` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "emptiedEvent": [
          "/**",
          "   * Static factory designed to expose `emptied` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "endedEvent": [
          "/**",
          "   * Static factory designed to expose `ended` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadeddataEvent": [
          "/**",
          "   * Static factory designed to expose `loadeddata` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadedmetadataEvent": [
          "/**",
          "   * Static factory designed to expose `loadedmetadata` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadstartEvent": [
          "/**",
          "   * Static factory designed to expose `loadstart` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "oncanplay": [
          "/// Stream of `canplay` events handled by this [MediaElement]."
        ],
        "oncanplaythrough": [
          "/// Stream of `canplaythrough` events handled by this [MediaElement]."
        ],
        "ondurationchange": [
          "/// Stream of `durationchange` events handled by this [MediaElement]."
        ],
        "onemptied": [
          "/// Stream of `emptied` events handled by this [MediaElement]."
        ],
        "onended": [
          "/// Stream of `ended` events handled by this [MediaElement]."
        ],
        "onloadeddata": [
          "/// Stream of `loadeddata` events handled by this [MediaElement]."
        ],
        "onloadedmetadata": [
          "/// Stream of `loadedmetadata` events handled by this [MediaElement]."
        ],
        "onloadstart": [
          "/// Stream of `loadstart` events handled by this [MediaElement]."
        ],
        "onpause": [
          "/// Stream of `pause` events handled by this [MediaElement]."
        ],
        "onplay": [
          "/// Stream of `play` events handled by this [MediaElement]."
        ],
        "onplaying": [
          "/// Stream of `playing` events handled by this [MediaElement]."
        ],
        "onprogress": [
          "/// Stream of `progress` events handled by this [MediaElement]."
        ],
        "onratechange": [
          "/// Stream of `ratechange` events handled by this [MediaElement]."
        ],
        "onseeked": [
          "/// Stream of `seeked` events handled by this [MediaElement]."
        ],
        "onseeking": [
          "/// Stream of `seeking` events handled by this [MediaElement]."
        ],
        "onshow": [
          "/// Stream of `show` events handled by this [MediaElement]."
        ],
        "onstalled": [
          "/// Stream of `stalled` events handled by this [MediaElement]."
        ],
        "onsuspend": [
          "/// Stream of `suspend` events handled by this [MediaElement]."
        ],
        "ontimeupdate": [
          "/// Stream of `timeupdate` events handled by this [MediaElement]."
        ],
        "onvolumechange": [
          "/// Stream of `volumechange` events handled by this [MediaElement]."
        ],
        "onwaiting": [
          "/// Stream of `waiting` events handled by this [MediaElement]."
        ],
        "onwebkitkeyadded": [
          "/// Stream of `keyadded` events handled by this [MediaElement]."
        ],
        "onwebkitkeyerror": [
          "/// Stream of `keyerror` events handled by this [MediaElement]."
        ],
        "onwebkitkeymessage": [
          "/// Stream of `keymessage` events handled by this [MediaElement]."
        ],
        "onwebkitneedkey": [
          "/// Stream of `needkey` events handled by this [MediaElement]."
        ],
        "pauseEvent": [
          "/**",
          "   * Static factory designed to expose `pause` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "playEvent": [
          "/**",
          "   * Static factory designed to expose `play` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "playingEvent": [
          "/**",
          "   * Static factory designed to expose `playing` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "progressEvent": [
          "/**",
          "   * Static factory designed to expose `progress` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "ratechangeEvent": [
          "/**",
          "   * Static factory designed to expose `ratechange` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "seekedEvent": [
          "/**",
          "   * Static factory designed to expose `seeked` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "seekingEvent": [
          "/**",
          "   * Static factory designed to expose `seeking` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "showEvent": [
          "/**",
          "   * Static factory designed to expose `show` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "stalledEvent": [
          "/**",
          "   * Static factory designed to expose `stalled` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "suspendEvent": [
          "/**",
          "   * Static factory designed to expose `suspend` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "timeupdateEvent": [
          "/**",
          "   * Static factory designed to expose `timeupdate` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "volumechangeEvent": [
          "/**",
          "   * Static factory designed to expose `volumechange` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "waitingEvent": [
          "/**",
          "   * Static factory designed to expose `waiting` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeyaddedEvent": [
          "/**",
          "   * Static factory designed to expose `keyadded` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeyerrorEvent": [
          "/**",
          "   * Static factory designed to expose `keyerror` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeymessageEvent": [
          "/**",
          "   * Static factory designed to expose `keymessage` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitneedkeyEvent": [
          "/**",
          "   * Static factory designed to expose `needkey` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "HTMLMenuElement": {
      "comment": [
        "/**",
        " * An HTML <menu> element.",
        " *",
        " * A <menu> element represents an unordered list of menu commands.",
        " *",
        " * See also:",
        " *",
        " *  * [Menu Element](https://developer.mozilla.org/en-US/docs/HTML/Element/menu) from MDN.",
        " *  * [Menu Element](http://www.w3.org/TR/html5/the-menu-element.html#the-menu-element) from the W3C.",
        " */"
      ]
    },
    "MediaKeySession": {
      "members": {
        "onwebkitkeyadded": [
          "/// Stream of `keyadded` events handled by this [MediaKeySession]."
        ],
        "onwebkitkeyerror": [
          "/// Stream of `keyerror` events handled by this [MediaKeySession]."
        ],
        "onwebkitkeymessage": [
          "/// Stream of `keymessage` events handled by this [MediaKeySession]."
        ],
        "webkitkeyaddedEvent": [
          "/**",
          "   * Static factory designed to expose `keyadded` events to event",
          "   * handlers that are not necessarily instances of [MediaKeySession].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeyerrorEvent": [
          "/**",
          "   * Static factory designed to expose `keyerror` events to event",
          "   * handlers that are not necessarily instances of [MediaKeySession].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeymessageEvent": [
          "/**",
          "   * Static factory designed to expose `keymessage` events to event",
          "   * handlers that are not necessarily instances of [MediaKeySession].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "MediaStream": {
      "members": {
        "addtrackEvent": [
          "/**",
          "   * Static factory designed to expose `addtrack` events to event",
          "   * handlers that are not necessarily instances of [MediaStream].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "endedEvent": [
          "/**",
          "   * Static factory designed to expose `ended` events to event",
          "   * handlers that are not necessarily instances of [MediaStream].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onaddtrack": [
          "/// Stream of `addtrack` events handled by this [MediaStream]."
        ],
        "onended": [
          "/// Stream of `ended` events handled by this [MediaStream]."
        ],
        "onremovetrack": [
          "/// Stream of `removetrack` events handled by this [MediaStream]."
        ],
        "removetrackEvent": [
          "/**",
          "   * Static factory designed to expose `removetrack` events to event",
          "   * handlers that are not necessarily instances of [MediaStream].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "MediaStreamTrack": {
      "members": {
        "endedEvent": [
          "/**",
          "   * Static factory designed to expose `ended` events to event",
          "   * handlers that are not necessarily instances of [MediaStreamTrack].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "muteEvent": [
          "/**",
          "   * Static factory designed to expose `mute` events to event",
          "   * handlers that are not necessarily instances of [MediaStreamTrack].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onended": [
          "/// Stream of `ended` events handled by this [MediaStreamTrack]."
        ],
        "onmute": [
          "/// Stream of `mute` events handled by this [MediaStreamTrack]."
        ],
        "onunmute": [
          "/// Stream of `unmute` events handled by this [MediaStreamTrack]."
        ],
        "unmuteEvent": [
          "/**",
          "   * Static factory designed to expose `unmute` events to event",
          "   * handlers that are not necessarily instances of [MediaStreamTrack].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "MessagePort": {
      "members": {
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [MessagePort].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [MessagePort]."
        ]
      }
    },
    "MIDIAccess": {
      "members": {
        "connectEvent": [
          "/**",
          "   * Static factory designed to expose `connect` events to event",
          "   * handlers that are not necessarily instances of [MidiAccess].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "disconnectEvent": [
          "/**",
          "   * Static factory designed to expose `disconnect` events to event",
          "   * handlers that are not necessarily instances of [MidiAccess].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onconnect": [
          "/// Stream of `connect` events handled by this [MidiAccess]."
        ],
        "ondisconnect": [
          "/// Stream of `disconnect` events handled by this [MidiAccess]."
        ]
      }
    },
    "MIDIInput": {
      "members": {
        "midimessageEvent": [
          "/**",
          "   * Static factory designed to expose `midimessage` events to event",
          "   * handlers that are not necessarily instances of [MidiInput].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onmidimessage": [
          "/// Stream of `midimessage` events handled by this [MidiInput]."
        ]
      }
    },
    "MIDIPort": {
      "members": {
        "disconnectEvent": [
          "/**",
          "   * Static factory designed to expose `disconnect` events to event",
          "   * handlers that are not necessarily instances of [MidiPort].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "ondisconnect": [
          "/// Stream of `disconnect` events handled by this [MidiPort]."
        ]
      }
    },
    "MouseEvent": {
      "members": {
        "fromElement": [
          "/**",
          "   * The nonstandard way to access the element that the mouse comes",
          "   * from in the case of a `mouseover` event.",
          "   *",
          "   * This member is deprecated and not cross-browser compatible; use",
          "   * relatedTarget to get the same information in the standard way.",
          "   */"
        ],
        "toElement": [
          "/**",
          "   * The nonstandard way to access the element that the mouse goes",
          "   * to in the case of a `mouseout` event.",
          "   *",
          "   * This member is deprecated and not cross-browser compatible; use",
          "   * relatedTarget to get the same information in the standard way.",
          "   */"
        ]
      }
    },
    "Node": {
      "members": {
        "appendChild": [
          "/**",
          "   * Adds a node to the end of the child [nodes] list of this node.",
          "   *",
          "   * If the node already exists in this document, it will be removed from its",
          "   * current parent node, then added to this node.",
          "   *",
          "   * This method is more efficient than `nodes.add`, and is the preferred",
          "   * way of appending a child node.",
          "   */"
        ],
        "childNodes": [
          "/**",
          "   * A list of this node's children.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.childNodes](https://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes)",
          "   *   from MDN.",
          "   */"
        ],
        "cloneNode": [
          "/**",
          "   * Returns a copy of this node.",
          "   *",
          "   * If [deep] is `true`, then all of this node's children and descendents are",
          "   * copied as well. If [deep] is `false`, then only this node is copied.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.cloneNode](https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode)",
          "   *   from MDN.",
          "   */"
        ],
        "contains": [
          "/**",
          "   * Returns true if this node contains the specified node.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.contains](https://developer.mozilla.org/en-US/docs/Web/API/Node.contains)",
          "   *   from MDN.",
          "   */"
        ],
        "firstChild": [
          "/**",
          "   * The first child of this node.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.firstChild](https://developer.mozilla.org/en-US/docs/Web/API/Node.firstChild)",
          "   *   from MDN.",
          "   */"
        ],
        "hasChildNodes": [
          "/**",
          "   * Returns true if this node has any children.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.hasChildNodes](https://developer.mozilla.org/en-US/docs/Web/API/Node.hasChildNodes)",
          "   *   from MDN.",
          "   */"
        ],
        "insertBefore": [
          "/**",
          "   * Inserts the given node into this node directly before child.",
          "   * If child is `null`, then the given node is inserted at the end",
          "   * of this node's child nodes.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.insertBefore](https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore)",
          "   *   from MDN.",
          "   */"
        ],
        "lastChild": [
          "/**",
          "   * The last child of this node.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.lastChild](https://developer.mozilla.org/en-US/docs/Web/API/Node.lastChild)",
          "   *   from MDN.",
          "   */"
        ],
        "nextSibling": [
          "/**",
          "   * The next sibling node.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.nextSibling](https://developer.mozilla.org/en-US/docs/Web/API/Node.nextSibling)",
          "   *   from MDN.",
          "   */"
        ],
        "nodeName": [
          "/**",
          "   * The name of this node.",
          "   *",
          "   * This varies by this node's [nodeType].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.nodeName](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeName)",
          "   *   from MDN. This page contains a table of [nodeName] values for each",
          "   *   [nodeType].",
          "   */"
        ],
        "nodeType": [
          "/**",
          "   * The type of node.",
          "   *",
          "   * This value is one of:",
          "   *",
          "   * * [ATTRIBUTE_NODE] if this node is an attribute.",
          "   * * [CDATA_SECTION_NODE] if this node is a [CDataSection].",
          "   * * [COMMENT_NODE] if this node is a [Comment].",
          "   * * [DOCUMENT_FRAGMENT_NODE] if this node is a [DocumentFragment].",
          "   * * [DOCUMENT_NODE] if this node is a [Document].",
          "   * * [DOCUMENT_TYPE_NODE] if this node is a [_DocumentType] node.",
          "   * * [ELEMENT_NODE] if this node is an [Element].",
          "   * * [ENTITY_NODE] if this node is an entity.",
          "   * * [ENTITY_REFERENCE_NODE] if this node is an entity reference.",
          "   * * [NOTATION_NODE] if this node is a notation.",
          "   * * [PROCESSING_INSTRUCTION_NODE] if this node is a [ProcessingInstruction].",
          "   * * [TEXT_NODE] if this node is a [Text] node.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.nodeType](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType)",
          "   *   from MDN.",
          "   */"
        ],
        "nodeValue": [
          "/**",
          "   * The value of this node.",
          "   *",
          "   * This varies by this type's [nodeType].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.nodeValue](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeValue)",
          "   *   from MDN. This page contains a table of [nodeValue] values for each",
          "   *   [nodeType].",
          "   */"
        ],
        "ownerDocument": [
          "/**",
          "   * The document this node belongs to.",
          "   *",
          "   * Returns null if this node does not belong to any document.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.ownerDocument](https://developer.mozilla.org/en-US/docs/Web/API/Node.ownerDocument)",
          "   *   from MDN.",
          "   */"
        ],
        "parentElement": [
          "/**",
          "   * The parent element of this node.",
          "   *",
          "   * Returns null if this node either does not have a parent or its parent is",
          "   * not an element.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.parentElement](https://developer.mozilla.org/en-US/docs/Web/API/Node.parentElement)",
          "   *   from W3C.",
          "   */"
        ],
        "parentNode": [
          "/**",
          "   * The parent node of this node.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.parentNode](https://developer.mozilla.org/en-US/docs/Web/API/Node.parentNode)",
          "   *   from MDN.",
          "   */"
        ],
        "previousSibling": [
          "/**",
          "   * The previous sibling node.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.previousSibling](https://developer.mozilla.org/en-US/docs/Web/API/Node.previousSibling)",
          "   *   from MDN.",
          "   */"
        ],
        "textContent": [
          "/**",
          "   * All text within this node and its descendents.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent)",
          "   *   from MDN.",
          "   */"
        ]
      }
    },
    "Notification": {
      "members": {
        "clickEvent": [
          "/**",
          "   * Static factory designed to expose `click` events to event",
          "   * handlers that are not necessarily instances of [Notification].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "closeEvent": [
          "/**",
          "   * Static factory designed to expose `close` events to event",
          "   * handlers that are not necessarily instances of [Notification].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "displayEvent": [
          "/**",
          "   * Static factory designed to expose `display` events to event",
          "   * handlers that are not necessarily instances of [Notification].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [Notification].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onclick": [
          "/// Stream of `click` events handled by this [Notification]."
        ],
        "onclose": [
          "/// Stream of `close` events handled by this [Notification]."
        ],
        "ondisplay": [
          "/// Stream of `display` events handled by this [Notification]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Notification]."
        ],
        "onshow": [
          "/// Stream of `show` events handled by this [Notification]."
        ],
        "showEvent": [
          "/**",
          "   * Static factory designed to expose `show` events to event",
          "   * handlers that are not necessarily instances of [Notification].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "Performance": {
      "members": {
        "onwebkitresourcetimingbufferfull": [
          "/// Stream of `resourcetimingbufferfull` events handled by this [Performance]."
        ],
        "webkitresourcetimingbufferfullEvent": [
          "/**",
          "   * Static factory designed to expose `resourcetimingbufferfull` events to event",
          "   * handlers that are not necessarily instances of [Performance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "RTCDataChannel": {
      "members": {
        "closeEvent": [
          "/**",
          "   * Static factory designed to expose `close` events to event",
          "   * handlers that are not necessarily instances of [RtcDataChannel].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [RtcDataChannel].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [RtcDataChannel].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onclose": [
          "/// Stream of `close` events handled by this [RtcDataChannel]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [RtcDataChannel]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [RtcDataChannel]."
        ],
        "onopen": [
          "/// Stream of `open` events handled by this [RtcDataChannel]."
        ],
        "openEvent": [
          "/**",
          "   * Static factory designed to expose `open` events to event",
          "   * handlers that are not necessarily instances of [RtcDataChannel].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "RTCDTMFSender": {
      "members": {
        "ontonechange": [
          "/// Stream of `tonechange` events handled by this [RtcDtmfSender]."
        ],
        "tonechangeEvent": [
          "/**",
          "   * Static factory designed to expose `tonechange` events to event",
          "   * handlers that are not necessarily instances of [RtcDtmfSender].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "RTCPeerConnection": {
      "members": {
        "addstreamEvent": [
          "/**",
          "   * Static factory designed to expose `addstream` events to event",
          "   * handlers that are not necessarily instances of [RtcPeerConnection].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "datachannelEvent": [
          "/**",
          "   * Static factory designed to expose `datachannel` events to event",
          "   * handlers that are not necessarily instances of [RtcPeerConnection].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "icecandidateEvent": [
          "/**",
          "   * Static factory designed to expose `icecandidate` events to event",
          "   * handlers that are not necessarily instances of [RtcPeerConnection].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "iceconnectionstatechangeEvent": [
          "/**",
          "   * Static factory designed to expose `iceconnectionstatechange` events to event",
          "   * handlers that are not necessarily instances of [RtcPeerConnection].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "negotiationneededEvent": [
          "/**",
          "   * Static factory designed to expose `negotiationneeded` events to event",
          "   * handlers that are not necessarily instances of [RtcPeerConnection].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onaddstream": [
          "/// Stream of `addstream` events handled by this [RtcPeerConnection]."
        ],
        "ondatachannel": [
          "/// Stream of `datachannel` events handled by this [RtcPeerConnection]."
        ],
        "onicecandidate": [
          "/// Stream of `icecandidate` events handled by this [RtcPeerConnection]."
        ],
        "oniceconnectionstatechange": [
          "/// Stream of `iceconnectionstatechange` events handled by this [RtcPeerConnection]."
        ],
        "onnegotiationneeded": [
          "/// Stream of `negotiationneeded` events handled by this [RtcPeerConnection]."
        ],
        "onremovestream": [
          "/// Stream of `removestream` events handled by this [RtcPeerConnection]."
        ],
        "onsignalingstatechange": [
          "/// Stream of `signalingstatechange` events handled by this [RtcPeerConnection]."
        ],
        "ontrack": [
          "/// Stream of `track` events handled by this [RtcPeerConnection]."
        ],
        "removestreamEvent": [
          "/**",
          "   * Static factory designed to expose `removestream` events to event",
          "   * handlers that are not necessarily instances of [RtcPeerConnection].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "signalingstatechangeEvent": [
          "/**",
          "   * Static factory designed to expose `signalingstatechange` events to event",
          "   * handlers that are not necessarily instances of [RtcPeerConnection].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "trackEvent": [
          "/**",
          "   * Static factory designed to expose `track` events to event",
          "   * handlers that are not necessarily instances of [RtcPeerConnection].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "SharedWorkerGlobalScope": {
      "members": {
        "connectEvent": [
          "/**",
          "   * Static factory designed to expose `connect` events to event",
          "   * handlers that are not necessarily instances of [SharedWorkerGlobalScope].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onconnect": [
          "/// Stream of `connect` events handled by this [SharedWorkerGlobalScope]."
        ]
      }
    },
    "SpeechRecognition": {
      "members": {
        "audioendEvent": [
          "/**",
          "   * Static factory designed to expose `audioend` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "audiostartEvent": [
          "/**",
          "   * Static factory designed to expose `audiostart` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "endEvent": [
          "/**",
          "   * Static factory designed to expose `end` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "nomatchEvent": [
          "/**",
          "   * Static factory designed to expose `nomatch` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onaudioend": [
          "/// Stream of `audioend` events handled by this [SpeechRecognition]."
        ],
        "onaudiostart": [
          "/// Stream of `audiostart` events handled by this [SpeechRecognition]."
        ],
        "onend": [
          "/// Stream of `end` events handled by this [SpeechRecognition]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [SpeechRecognition]."
        ],
        "onnomatch": [
          "/// Stream of `nomatch` events handled by this [SpeechRecognition]."
        ],
        "onresult": [
          "/// Stream of `result` events handled by this [SpeechRecognition]."
        ],
        "onsoundend": [
          "/// Stream of `soundend` events handled by this [SpeechRecognition]."
        ],
        "onsoundstart": [
          "/// Stream of `soundstart` events handled by this [SpeechRecognition]."
        ],
        "onspeechend": [
          "/// Stream of `speechend` events handled by this [SpeechRecognition]."
        ],
        "onspeechstart": [
          "/// Stream of `speechstart` events handled by this [SpeechRecognition]."
        ],
        "onstart": [
          "/// Stream of `start` events handled by this [SpeechRecognition]."
        ],
        "resultEvent": [
          "/**",
          "   * Static factory designed to expose `result` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "soundendEvent": [
          "/**",
          "   * Static factory designed to expose `soundend` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "soundstartEvent": [
          "/**",
          "   * Static factory designed to expose `soundstart` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "speechendEvent": [
          "/**",
          "   * Static factory designed to expose `speechend` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "speechstartEvent": [
          "/**",
          "   * Static factory designed to expose `speechstart` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "startEvent": [
          "/**",
          "   * Static factory designed to expose `start` events to event",
          "   * handlers that are not necessarily instances of [SpeechRecognition].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "SpeechSynthesisUtterance": {
      "members": {
        "boundaryEvent": [
          "/**",
          "   * Static factory designed to expose `boundary` events to event",
          "   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "endEvent": [
          "/**",
          "   * Static factory designed to expose `end` events to event",
          "   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "markEvent": [
          "/**",
          "   * Static factory designed to expose `mark` events to event",
          "   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onboundary": [
          "/// Stream of `boundary` events handled by this [SpeechSynthesisUtterance]."
        ],
        "onend": [
          "/// Stream of `end` events handled by this [SpeechSynthesisUtterance]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [SpeechSynthesisUtterance]."
        ],
        "onmark": [
          "/// Stream of `mark` events handled by this [SpeechSynthesisUtterance]."
        ],
        "onpause": [
          "/// Stream of `pause` events handled by this [SpeechSynthesisUtterance]."
        ],
        "onresume": [
          "/// Stream of `resume` events handled by this [SpeechSynthesisUtterance]."
        ],
        "onstart": [
          "/// Stream of `start` events handled by this [SpeechSynthesisUtterance]."
        ],
        "pauseEvent": [
          "/**",
          "   * Static factory designed to expose `pause` events to event",
          "   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "resumeEvent": [
          "/**",
          "   * Static factory designed to expose `resume` events to event",
          "   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "startEvent": [
          "/**",
          "   * Static factory designed to expose `start` events to event",
          "   * handlers that are not necessarily instances of [SpeechSynthesisUtterance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "TextTrack": {
      "members": {
        "cuechangeEvent": [
          "/**",
          "   * Static factory designed to expose `cuechange` events to event",
          "   * handlers that are not necessarily instances of [TextTrack].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "oncuechange": [
          "/// Stream of `cuechange` events handled by this [TextTrack]."
        ]
      }
    },
    "TextTrackCue": {
      "members": {
        "enterEvent": [
          "/**",
          "   * Static factory designed to expose `enter` events to event",
          "   * handlers that are not necessarily instances of [TextTrackCue].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "exitEvent": [
          "/**",
          "   * Static factory designed to expose `exit` events to event",
          "   * handlers that are not necessarily instances of [TextTrackCue].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onenter": [
          "/// Stream of `enter` events handled by this [TextTrackCue]."
        ],
        "onexit": [
          "/// Stream of `exit` events handled by this [TextTrackCue]."
        ]
      }
    },
    "TextTrackList": {
      "members": {
        "addtrackEvent": [
          "/**",
          "   * Static factory designed to expose `addtrack` events to event",
          "   * handlers that are not necessarily instances of [TextTrackList].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onaddtrack": [
          "/// Stream of `addtrack` events handled by this [TextTrackList]."
        ]
      }
    },
    "WebSocket": {
      "comment": [
        "/**",
        " * Use the WebSocket interface to connect to a WebSocket,",
        " * and to send and receive data on that WebSocket.",
        " *",
        " * To use a WebSocket in your web app, first create a WebSocket object,",
        " * passing the WebSocket URL as an argument to the constructor.",
        " *",
        " *     var webSocket = new WebSocket('ws://127.0.0.1:1337/ws');",
        " *",
        " * To send data on the WebSocket, use the [send] method.",
        " *",
        " *     if (webSocket != null && webSocket.readyState == WebSocket.OPEN) {",
        " *       webSocket.send(data);",
        " *     } else {",
        " *       print('WebSocket not connected, message $data not sent');",
        " *     }",
        " *",
        " * To receive data on the WebSocket, register a listener for message events.",
        " *",
        " *     webSocket.onMessage.listen((MessageEvent e) {",
        " *       receivedData(e.data);",
        " *     });",
        " *",
        " * The message event handler receives a [MessageEvent] object",
        " * as its sole argument.",
        " * You can also define open, close, and error handlers,",
        " * as specified by [Event]s.",
        " *",
        " * For more information, see the",
        " * [WebSockets](http://www.dartlang.org/docs/library-tour/#html-websockets)",
        " * section of the library tour and",
        " * [Introducing WebSockets](http://www.html5rocks.com/en/tutorials/websockets/basics/),",
        " * an HTML5Rocks.com tutorial.",
        " */"
      ],
      "members": {
        "closeEvent": [
          "/**",
          "   * Static factory designed to expose `close` events to event",
          "   * handlers that are not necessarily instances of [WebSocket].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [WebSocket].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [WebSocket].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onclose": [
          "/// Stream of `close` events handled by this [WebSocket]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [WebSocket]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [WebSocket]."
        ],
        "onopen": [
          "/// Stream of `open` events handled by this [WebSocket]."
        ],
        "openEvent": [
          "/**",
          "   * Static factory designed to expose `open` events to event",
          "   * handlers that are not necessarily instances of [WebSocket].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "send": [
          "/**",
          "   * Transmit data to the server over this connection.",
          "   *",
          "   * This method accepts data of type [Blob], [ByteBuffer], [String], or",
          "   * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],",
          "   * or [sendTypedData], in contrast, only accept data of the specified type.",
          "   */"
        ]
      }
    },
    "Window": {
      "comment": [
        "/**",
        " * Top-level container for the current browser tab or window.",
        " *",
        " * In a web browser, each window has a [Window] object, but within the context",
        " * of a script, this object represents only the current window.",
        " * Each other window, tab, and iframe has its own [Window] object.",
        " *",
        " * Each window contains a [Document] object, which contains all of the window's",
        " * content.",
        " *",
        " * Use the top-level `window` object to access the current window.",
        " * For example:",
        " *",
        " *     // Draw a scene when the window repaints.",
        " *     drawScene(num delta) {...}",
        " *     window.animationFrame.then(drawScene);.",
        " *",
        " *     // Write to the console.",
        " *     window.console.log('Jinkies!');",
        " *     window.console.error('Jeepers!');",
        " *",
        " * **Note:** This class represents only the current window, while [WindowBase]",
        " * is a representation of any window, including other tabs, windows, and frames.",
        " *",
        " * ## See also",
        " *",
        " * * [WindowBase]",
        " *",
        " * ## Other resources",
        " *",
        " * * [DOM Window](https://developer.mozilla.org/en-US/docs/DOM/window) from MDN.",
        " * * [Window](http://www.w3.org/TR/Window/) from the W3C.",
        " */"
      ],
      "members": {
        "alert": [
          "/**",
          "   * Displays a modal alert to the user.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [User prompts](https://html.spec.whatwg.org/multipage/webappapis.html#user-prompts)",
          "   *   from WHATWG.",
          "   */"
        ],
        "applicationCache": [
          "/**",
          "   * The application cache for this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [A beginner's guide to using the application",
          "   *   cache](http://www.html5rocks.com/en/tutorials/appcache/beginner)",
          "   *   from HTML5Rocks.",
          "   * * [Application cache",
          "   *   API](https://html.spec.whatwg.org/multipage/browsers.html#application-cache-api)",
          "   *   from WHATWG.",
          "   */"
        ],
        "confirm": [
          "/**",
          "   * Displays a modal OK/Cancel prompt to the user.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [User prompts](https://html.spec.whatwg.org/multipage/webappapis.html#user-prompts)",
          "   *   from WHATWG.",
          "   */"
        ],
        "crypto": [
          "/**",
          "   * Entrypoint for the browser's cryptographic functions.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Web cryptography API](http://www.w3.org/TR/WebCryptoAPI/) from W3C.",
          "   */"
        ],
        "CSS": [
          "/**",
          "   * Entrypoint for CSS-related functions.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The CSS interface](http://dev.w3.org/csswg/css-conditional/#the-css-interface) from W3C.",
          "   */"
        ],
        "defaultStatus": [
          "/// *Deprecated*."
        ],
        "defaultstatus": [
          "/// *Deprecated*."
        ],
        "devicemotionEvent": [
          "/**",
          "   * Static factory designed to expose `devicemotion` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "deviceorientationEvent": [
          "/**",
          "   * Static factory designed to expose `deviceorientation` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "devicePixelRatio": [
          "/**",
          "   * The ratio between physical pixels and logical CSS pixels.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [devicePixelRatio](http://www.quirksmode.org/blog/archives/2012/06/devicepixelrati.html)",
          "   *   from quirksmode.",
          "   * * [More about devicePixelRatio](http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html)",
          "   *   from quirksmode.",
          "   */"
        ],
        "DOMContentLoadedEvent": [
          "/**",
          "   * Static factory designed to expose `contentloaded` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "find": [
          "/**",
          "   * Finds text in this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.find](https://developer.mozilla.org/en-US/docs/Web/API/Window.find)",
          "   *   from MDN.",
          "   */"
        ],
        "getMatchedCSSRules": [
          "/**",
          "   * Returns all CSS rules that apply to the element's pseudo-element.",
          "   */"
        ],
        "getSelection": [
          "/**",
          "   * Returns the currently selected text.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.getSelection](https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection)",
          "   *   from MDN.",
          "   */"
        ],
        "hashchangeEvent": [
          "/**",
          "   * Static factory designed to expose `hashchange` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "history": [
          "/**",
          "   * The current session history for this window's newest document.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Loading web pages](https://html.spec.whatwg.org/multipage/browsers.html)",
          "   *   from WHATWG.",
          "   */"
        ],
        "innerHeight": [
          "/**",
          "   * The height of the viewport including scrollbars.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.innerHeight](https://developer.mozilla.org/en-US/docs/Web/API/Window/innerHeight)",
          "   *   from MDN.",
          "   */"
        ],
        "innerWidth": [
          "/**",
          "   * The width of the viewport including scrollbars.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.innerWidth](https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth)",
          "   *   from MDN.",
          "   */"
        ],
        "localStorage": [
          "/**",
          "   * Storage for this window that persists across sessions.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [DOM storage guide](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage)",
          "   *   from MDN.",
          "   * * [The past, present & future of local storage for web",
          "   *   applications](http://diveintohtml5.info/storage.html) from Dive Into HTML5.",
          "   * * [Local storage specification](http://www.w3.org/TR/webstorage/#the-localstorage-attribute)",
          "   *   from W3C.",
          "   */"
        ],
        "locationbar": [
          "/**",
          "   * This window's location bar, which displays the URL.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface",
          "   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)",
          "   *   from WHATWG.",
          "   */"
        ],
        "matchMedia": [
          "/**",
          "   * Returns a list of media queries for the given query string.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Testing media",
          "   *   queries](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Testing_media_queries)",
          "   *   from MDN.",
          "   * * [The MediaQueryList",
          "   *   specification](http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface) from W3C.",
          "   */"
        ],
        "menubar": [
          "/**",
          "   * This window's menu bar, which displays menu commands.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface",
          "   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)",
          "   *   from WHATWG.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "moveBy": [
          "/**",
          "   * Moves this window.",
          "   *",
          "   * x and y can be negative.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.moveBy](https://developer.mozilla.org/en-US/docs/Web/API/Window.moveBy)",
          "   *   from MDN.",
          "   * * [Window.moveBy](http://dev.w3.org/csswg/cssom-view/#dom-window-moveby) from W3C.",
          "   */"
        ],
        "name": [
          "/**",
          "   * The name of this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.name](https://developer.mozilla.org/en-US/docs/Web/API/Window/name)",
          "   *   from MDN.",
          "   */"
        ],
        "navigator": [
          "/**",
          "   * The user agent accessing this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The navigator",
          "   *   object](https://html.spec.whatwg.org/multipage/webappapis.html#the-navigator-object)",
          "   *   from WHATWG.",
          "   */"
        ],
        "offlineEvent": [
          "/**",
          "   * Static factory designed to expose `offline` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "offscreenBuffering": [
          "/**",
          "   * Whether objects are drawn offscreen before being displayed.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [offscreenBuffering](https://webplatform.github.io/docs/dom/HTMLElement/offscreenBuffering/)",
          "   *   from WebPlatform.org.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [Window]."
        ],
        "onblur": [
          "/// Stream of `blur` events handled by this [Window]."
        ],
        "onchange": [
          "/// Stream of `change` events handled by this [Window]."
        ],
        "onclick": [
          "/// Stream of `click` events handled by this [Window]."
        ],
        "oncontextmenu": [
          "/// Stream of `contextmenu` events handled by this [Window]."
        ],
        "ondblclick": [
          "/// Stream of `doubleclick` events handled by this [Window]."
        ],
        "ondevicemotion": [
          "/// Stream of `devicemotion` events handled by this [Window]."
        ],
        "ondeviceorientation": [
          "/// Stream of `deviceorientation` events handled by this [Window]."
        ],
        "onDOMContentLoaded": [
          "/// Stream of `contentloaded` events handled by this [Window]."
        ],
        "ondrag": [
          "/// Stream of `drag` events handled by this [Window]."
        ],
        "ondragend": [
          "/// Stream of `dragend` events handled by this [Window]."
        ],
        "ondragenter": [
          "/// Stream of `dragenter` events handled by this [Window]."
        ],
        "ondragleave": [
          "/// Stream of `dragleave` events handled by this [Window]."
        ],
        "ondragover": [
          "/// Stream of `dragover` events handled by this [Window]."
        ],
        "ondragstart": [
          "/// Stream of `dragstart` events handled by this [Window]."
        ],
        "ondrop": [
          "/// Stream of `drop` events handled by this [Window]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Window]."
        ],
        "onfocus": [
          "/// Stream of `focus` events handled by this [Window]."
        ],
        "onhashchange": [
          "/// Stream of `hashchange` events handled by this [Window]."
        ],
        "oninput": [
          "/// Stream of `input` events handled by this [Window]."
        ],
        "oninvalid": [
          "/// Stream of `invalid` events handled by this [Window]."
        ],
        "onkeydown": [
          "/// Stream of `keydown` events handled by this [Window]."
        ],
        "onkeypress": [
          "/// Stream of `keypress` events handled by this [Window]."
        ],
        "onkeyup": [
          "/// Stream of `keyup` events handled by this [Window]."
        ],
        "onlineEvent": [
          "/**",
          "   * Static factory designed to expose `online` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onload": [
          "/// Stream of `load` events handled by this [Window]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [Window]."
        ],
        "onmousedown": [
          "/// Stream of `mousedown` events handled by this [Window]."
        ],
        "onmouseenter": [
          "/// Stream of `mouseenter` events handled by this [Window]."
        ],
        "onmouseleave": [
          "/// Stream of `mouseleave` events handled by this [Window]."
        ],
        "onmousemove": [
          "/// Stream of `mousemove` events handled by this [Window]."
        ],
        "onmouseout": [
          "/// Stream of `mouseout` events handled by this [Window]."
        ],
        "onmouseover": [
          "/// Stream of `mouseover` events handled by this [Window]."
        ],
        "onmouseup": [
          "/// Stream of `mouseup` events handled by this [Window]."
        ],
        "onmousewheel": [
          "/// Stream of `mousewheel` events handled by this [Window]."
        ],
        "onoffline": [
          "/// Stream of `offline` events handled by this [Window]."
        ],
        "ononline": [
          "/// Stream of `online` events handled by this [Window]."
        ],
        "onpagehide": [
          "/// Stream of `pagehide` events handled by this [Window]."
        ],
        "onpageshow": [
          "/// Stream of `pageshow` events handled by this [Window]."
        ],
        "onpopstate": [
          "/// Stream of `popstate` events handled by this [Window]."
        ],
        "onreset": [
          "/// Stream of `reset` events handled by this [Window]."
        ],
        "onresize": [
          "/// Stream of `resize` events handled by this [Window]."
        ],
        "onscroll": [
          "/// Stream of `scroll` events handled by this [Window]."
        ],
        "onsearch": [
          "/// Stream of `search` events handled by this [Window]."
        ],
        "onselect": [
          "/// Stream of `select` events handled by this [Window]."
        ],
        "onstorage": [
          "/// Stream of `storage` events handled by this [Window]."
        ],
        "onsubmit": [
          "/// Stream of `submit` events handled by this [Window]."
        ],
        "ontouchcancel": [
          "/// Stream of `touchcancel` events handled by this [Window]."
        ],
        "ontouchend": [
          "/// Stream of `touchend` events handled by this [Window]."
        ],
        "ontouchmove": [
          "/// Stream of `touchmove` events handled by this [Window]."
        ],
        "ontouchstart": [
          "/// Stream of `touchstart` events handled by this [Window]."
        ],
        "ontransitionend": [
          "/// Stream of `transitionend` events handled by this [Window]."
        ],
        "onunload": [
          "/// Stream of `unload` events handled by this [Window]."
        ],
        "onwebkitAnimationEnd": [
          "/// Stream of `animationend` events handled by this [Window]."
        ],
        "onwebkitAnimationIteration": [
          "/// Stream of `animationiteration` events handled by this [Window]."
        ],
        "onwebkitAnimationStart": [
          "/// Stream of `animationstart` events handled by this [Window]."
        ],
        "openDatabase": [
          "/// *Deprecated.*"
        ],
        "outerHeight": [
          "/**",
          "   * The height of this window including all user interface elements.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.outerHeight](https://developer.mozilla.org/en-US/docs/Web/API/Window/outerHeight)",
          "   *   from MDN.",
          "   */"
        ],
        "outerWidth": [
          "/**",
          "   * The width of the window including all user interface elements.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.outerWidth](https://developer.mozilla.org/en-US/docs/Web/API/Window/outerWidth)",
          "   *   from MDN.",
          "   */"
        ],
        "pagehideEvent": [
          "/**",
          "   * Static factory designed to expose `pagehide` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "pageshowEvent": [
          "/**",
          "   * Static factory designed to expose `pageshow` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "pageXOffset": [
          "/**",
          "   * The distance this window has been scrolled horizontally.",
          "   *",
          "   * This attribute is an alias for [scrollX].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface",
          "   *   specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.",
          "   * * [scrollX and",
          "   *   pageXOffset](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX)",
          "   *   from MDN.",
          "   */"
        ],
        "pageYOffset": [
          "/**",
          "   * The distance this window has been scrolled vertically.",
          "   *",
          "   * This attribute is an alias for [scrollY].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface",
          "   *   specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.",
          "   * * [scrollY and",
          "   *   pageYOffset](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY)",
          "   *   from MDN.",
          "   */"
        ],
        "performance": [
          "/**",
          "   * Timing and navigation data for this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Measuring page load speed with navigation",
          "   *   timeing](http://www.html5rocks.com/en/tutorials/webperformance/basics/)",
          "   *   from HTML5Rocks.",
          "   * * [Navigation timing",
          "   *   specification](http://www.w3.org/TR/navigation-timing/) from W3C.",
          "   */"
        ],
        "PERSISTENT": [
          "/**",
          "   * Indicates that file system data cannot be cleared unless given user",
          "   * permission.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Exploring the FileSystem",
          "   *   APIs](http://www.html5rocks.com/en/tutorials/file/filesystem/)",
          "   *   from HTML5Rocks.",
          "   * * [File API](http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem)",
          "   *   from W3C.",
          "   */"
        ],
        "popstateEvent": [
          "/**",
          "   * Static factory designed to expose `popstate` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "print": [
          "/**",
          "   * Opens the print dialog for this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.print](https://developer.mozilla.org/en-US/docs/Web/API/Window.print)",
          "   *   from MDN.",
          "   */"
        ],
        "resizeBy": [
          "/**",
          "   * Resizes this window by an offset.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.resizeBy](https://developer.mozilla.org/en-US/docs/Web/API/Window/resizeBy)",
          "   *   from MDN.",
          "   */"
        ],
        "resizeEvent": [
          "/**",
          "   * Static factory designed to expose `resize` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "resizeTo": [
          "/**",
          "   * Resizes this window to a specific width and height.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.resizeTo](https://developer.mozilla.org/en-US/docs/Web/API/Window/resizeTo)",
          "   *   from MDN.",
          "   */"
        ],
        "screen": [
          "/**",
          "   * Information about the screen displaying this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)",
          "   *   from W3C.",
          "   */"
        ],
        "screenLeft": [
          "/**",
          "   * The distance from the left side of the screen to the left side of this",
          "   * window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)",
          "   *   from W3C.",
          "   */"
        ],
        "screenTop": [
          "/**",
          "   * The distance from the top of the screen to the top of this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)",
          "   *   from W3C.",
          "   */"
        ],
        "screenX": [
          "/**",
          "   * The distance from the left side of the screen to the mouse pointer.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)",
          "   *   from W3C.",
          "   */"
        ],
        "screenY": [
          "/**",
          "   * The distance from the top of the screen to the mouse pointer.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)",
          "   *   from W3C.",
          "   */"
        ],
        "scroll": [
          "/**",
          "   * Scrolls the page horizontally and vertically to a specific point.",
          "   *",
          "   * This method is identical to [scrollTo].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.scroll](https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll)",
          "   *   from MDN.",
          "   */"
        ],
        "scrollbars": [
          "/**",
          "   * This window's scroll bars.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface",
          "   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)",
          "   *   from WHATWG.",
          "   */"
        ],
        "scrollBy": [
          "/**",
          "   * Scrolls the page horizontally and vertically by an offset.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.scrollBy](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollBy)",
          "   *   from MDN.",
          "   */"
        ],
        "scrollTo": [
          "/**",
          "   * Scrolls the page horizontally and vertically to a specific point.",
          "   *",
          "   * This method is identical to [scroll].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.scrollTo](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo)",
          "   *   from MDN.",
          "   */"
        ],
        "self": [
          "/**",
          "   * The current window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.self](https://developer.mozilla.org/en-US/docs/Web/API/Window.self)",
          "   *   from MDN.",
          "   */"
        ],
        "sessionStorage": [
          "/**",
          "   * Storage for this window that is cleared when this session ends.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [DOM storage",
          "   *   guide](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage)",
          "   *   from MDN.",
          "   * * [The past, present & future of local storage for web",
          "   *   applications](http://diveintohtml5.info/storage.html) from Dive Into HTML5.",
          "   * * [Local storage",
          "   *   specification](http://www.w3.org/TR/webstorage/#dom-sessionstorage) from W3C.",
          "   */"
        ],
        "showModalDialog": [
          "/**",
          "   * Opens a new page as a modal dialog.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Dialogs implemented using separate",
          "   *   documents](http://www.w3.org/html/wg/drafts/html/master/webappapis.html#dialogs-implemented-using-separate-documents)",
          "   *   from W3C.",
          "   */"
        ],
        "speechSynthesis": [
          "/**",
          "   * Access to speech synthesis in the browser.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Web speech",
          "   *   specification](https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section)",
          "   *   from W3C.",
          "   */"
        ],
        "status": [
          "/// *Deprecated*."
        ],
        "statusbar": [
          "/**",
          "   * This window's status bar.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface",
          "   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)",
          "   *   from WHATWG.",
          "   */"
        ],
        "stop": [
          "/**",
          "   * Stops the window from loading.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Window",
          "   *   object](http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-window-object)",
          "   *   from W3C.",
          "   */"
        ],
        "storageEvent": [
          "/**",
          "   * Static factory designed to expose `storage` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "styleMedia": [
          "/**",
          "   * Access to CSS media queries.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [StyleMedia class",
          "   *   reference](https://developer.apple.com/library/safari/documentation/SafariDOMAdditions/Reference/StyleMedia/)",
          "   *   from Safari Developer Library.",
          "   */"
        ],
        "TEMPORARY": [
          "/**",
          "   * Indicates that file system data can be cleared at any time.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Exploring the FileSystem",
          "   *   APIs](http://www.html5rocks.com/en/tutorials/file/filesystem/) from HTML5Rocks.",
          "   * * [File API](http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem)",
          "   *   from W3C.",
          "   */"
        ],
        "toolbar": [
          "/**",
          "   * This window's tool bar.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface",
          "   *   elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)",
          "   *   from WHATWG.",
          "   */"
        ],
        "unloadEvent": [
          "/**",
          "   * Static factory designed to expose `unload` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitAnimationEndEvent": [
          "/**",
          "   * Static factory designed to expose `animationend` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitAnimationIterationEvent": [
          "/**",
          "   * Static factory designed to expose `animationiteration` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitAnimationStartEvent": [
          "/**",
          "   * Static factory designed to expose `animationstart` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitResolveLocalFileSystemURL": [
          "/**",
          "   * Asynchronously retrieves a local filesystem entry.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Obtaining access to file system entry",
          "   *   points](http://www.w3.org/TR/file-system-api/#obtaining-access-to-file-system-entry-points)",
          "   * from W3C.",
          "   */"
        ],
        "window": [
          "/**",
          "   * The current window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.window](https://developer.mozilla.org/en-US/docs/Web/API/Window.window)",
          "   *   from MDN.",
          "   */"
        ]
      }
    },
    "Worker": {
      "members": {
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [Worker].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [Worker].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Worker]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [Worker]."
        ]
      }
    },
    "WorkerGlobalScope": {
      "members": {
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [WorkerGlobalScope].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [WorkerGlobalScope]."
        ]
      }
    },
    "XMLHttpRequest": {
      "members": {
        "abort": [
          "/**",
          "   * Stop the current request.",
          "   *",
          "   * The request can only be stopped if readyState is `HEADERS_RECEIVED` or",
          "   * `LOADING`. If this method is not in the process of being sent, the method",
          "   * has no effect.",
          "   */"
        ],
        "getAllResponseHeaders": [
          "/**",
          "   * Retrieve all the response headers from a request.",
          "   *",
          "   * `null` if no headers have been received. For multipart requests,",
          "   * `getAllResponseHeaders` will return the response headers for the current",
          "   * part of the request.",
          "   *",
          "   * See also [HTTP response",
          "   * headers](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_fields)",
          "   * for a list of common response headers.",
          "   */"
        ],
        "getResponseHeader": [
          "/**",
          "   * Return the response header named `header`, or null if not found.",
          "   *",
          "   * See also [HTTP response",
          "   * headers](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_fields)",
          "   * for a list of common response headers.",
          "   */"
        ],
        "onreadystatechange": [
          "/// Stream of `readystatechange` events handled by this [HttpRequest].",
          "/**",
          "   * Event listeners to be notified every time the [HttpRequest]",
          "   * object's `readyState` changes values.",
          "   */"
        ],
        "open": [
          "/**",
          "   * Specify the desired `url`, and `method` to use in making the request.",
          "   *",
          "   * By default the request is done asynchronously, with no user or password",
          "   * authentication information. If `async` is false, the request will be send",
          "   * synchronously.",
          "   *",
          "   * Calling `open` again on a currently active request is equivalent to",
          "   * calling `abort`.",
          "   *",
          "   * Note: Most simple HTTP requests can be accomplished using the [getString],",
          "   * [request], [requestCrossOrigin], or [postFormData] methods. Use of this",
          "   * `open` method is intended only for more complex HTTP requests where",
          "   * finer-grained control is needed.",
          "   */"
        ],
        "overrideMimeType": [
          "/**",
          "   * Specify a particular MIME type (such as `text/xml`) desired for the",
          "   * response.",
          "   *",
          "   * This value must be set before the request has been sent. See also the list",
          "   * of [IANA Official MIME types](https://www.iana.org/assignments/media-types/media-types.xhtml).",
          "   */"
        ],
        "readyState": [
          "/**",
          "   * Indicator of the current state of the request:",
          "   *",
          "   * <table>",
          "   *   <tr>",
          "   *     <td>Value</td>",
          "   *     <td>State</td>",
          "   *     <td>Meaning</td>",
          "   *   </tr>",
          "   *   <tr>",
          "   *     <td>0</td>",
          "   *     <td>unsent</td>",
          "   *     <td><code>open()</code> has not yet been called</td>",
          "   *   </tr>",
          "   *   <tr>",
          "   *     <td>1</td>",
          "   *     <td>opened</td>",
          "   *     <td><code>send()</code> has not yet been called</td>",
          "   *   </tr>",
          "   *   <tr>",
          "   *     <td>2</td>",
          "   *     <td>headers received</td>",
          "   *     <td><code>sent()</code> has been called; response headers and <code>status</code> are available</td>",
          "   *   </tr>",
          "   *   <tr>",
          "   *     <td>3</td> <td>loading</td> <td><code>responseText</code> holds some data</td>",
          "   *   </tr>",
          "   *   <tr>",
          "   *     <td>4</td> <td>done</td> <td>request is complete</td>",
          "   *   </tr>",
          "   * </table>",
          "   */"
        ],
        "readystatechangeEvent": [
          "/**",
          "   * Static factory designed to expose `readystatechange` events to event",
          "   * handlers that are not necessarily instances of [HttpRequest].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "response": [
          "/**",
          "   * The data received as a reponse from the request.",
          "   *",
          "   * The data could be in the",
          "   * form of a [String], [ByteBuffer], [Document], [Blob], or json (also a",
          "   * [String]). `null` indicates request failure.",
          "   */"
        ],
        "responseText": [
          "/**",
          "   * The response in String form or empty String on failure.",
          "   */"
        ],
        "responseType": [
          "/**",
          "   * [String] telling the server the desired response format.",
          "   *",
          "   * Default is `String`.",
          "   * Other options are one of 'arraybuffer', 'blob', 'document', 'json',",
          "   * 'text'. Some newer browsers will throw NS_ERROR_DOM_INVALID_ACCESS_ERR if",
          "   * `responseType` is set while performing a synchronous request.",
          "   *",
          "   * See also: [MDN",
          "   * responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-responsetype)",
          "   */"
        ],
        "responseXML": [
          "/**",
          "   * The request response, or null on failure.",
          "   *",
          "   * The response is processed as",
          "   * `text/xml` stream, unless responseType = 'document' and the request is",
          "   * synchronous.",
          "   */"
        ],
        "send": [
          "/**",
          "   * Send the request with any given `data`.",
          "   *",
          "   * Note: Most simple HTTP requests can be accomplished using the [getString],",
          "   * [request], [requestCrossOrigin], or [postFormData] methods. Use of this",
          "   * `send` method is intended only for more complex HTTP requests where",
          "   * finer-grained control is needed.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [XMLHttpRequest.send](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#send%28%29)",
          "   *   from MDN.",
          "   */"
        ],
        "setRequestHeader": [
          "/**",
          "   * Sets the value of an HTTP request header.",
          "   *",
          "   * This method should be called after the request is opened, but before",
          "   * the request is sent.",
          "   *",
          "   * Multiple calls with the same header will combine all their values into a",
          "   * single header.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [XMLHttpRequest.setRequestHeader](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#setRequestHeader())",
          "   *   from MDN.",
          "   * * [The setRequestHeader()",
          "   *   method](http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method)",
          "   *   from W3C.",
          "   */"
        ],
        "status": [
          "/**",
          "   * The HTTP result code from the request (200, 404, etc).",
          "   * See also: [HTTP Status Codes](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)",
          "   */"
        ],
        "statusText": [
          "/**",
          "   * The request response string (such as \\\"OK\\\").",
          "   * See also: [HTTP Status Codes](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)",
          "   */"
        ],
        "timeout": [
          "/**",
          "   * Length of time in milliseconds before a request is automatically",
          "   * terminated.",
          "   *",
          "   * When the time has passed, a [HttpRequestEventTarget.timeoutEvent] is",
          "   * dispatched.",
          "   *",
          "   * If [timeout] is set to 0, then the request will not time out.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [XMLHttpRequest.timeout](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-timeout)",
          "   *   from MDN.",
          "   * * [The timeout attribute](http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute)",
          "   *   from W3C.",
          "   */"
        ],
        "upload": [
          "/**",
          "   * [EventTarget] that can hold listeners to track the progress of the request.",
          "   */"
        ],
        "withCredentials": [
          "/**",
          "   * True if cross-site requests should use credentials such as cookies",
          "   * or authorization headers; false otherwise.",
          "   *",
          "   * This value is ignored for same-site requests.",
          "   */"
        ],
        "XMLHttpRequest": [
          "/**",
          "   * General constructor for any type of request (GET, POST, etc).",
          "   *",
          "   * This call is used in conjunction with [open]:",
          "   *",
          "   *     var request = new HttpRequest();",
          "   *     request.open('GET', 'http://dartlang.org');",
          "   *     request.onLoad.listen((event) => print(",
          "   *         'Request complete ${event.target.reponseText}'));",
          "   *     request.send();",
          "   *",
          "   * is the (more verbose) equivalent of",
          "   *",
          "   *     HttpRequest.getString('http://dartlang.org').then(",
          "   *         (result) => print('Request complete: $result'));",
          "   */"
        ]
      }
    },
    "XMLHttpRequestEventTarget": {
      "members": {
        "abortEvent": [
          "/**",
          "   * Static factory designed to expose `abort` events to event",
          "   * handlers that are not necessarily instances of [HttpRequestEventTarget].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [HttpRequestEventTarget].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadendEvent": [
          "/**",
          "   * Static factory designed to expose `loadend` events to event",
          "   * handlers that are not necessarily instances of [HttpRequestEventTarget].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadEvent": [
          "/**",
          "   * Static factory designed to expose `load` events to event",
          "   * handlers that are not necessarily instances of [HttpRequestEventTarget].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadstartEvent": [
          "/**",
          "   * Static factory designed to expose `loadstart` events to event",
          "   * handlers that are not necessarily instances of [HttpRequestEventTarget].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [HttpRequestEventTarget]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [HttpRequestEventTarget]."
        ],
        "onload": [
          "/// Stream of `load` events handled by this [HttpRequestEventTarget]."
        ],
        "onloadend": [
          "/// Stream of `loadend` events handled by this [HttpRequestEventTarget]."
        ],
        "onloadstart": [
          "/// Stream of `loadstart` events handled by this [HttpRequestEventTarget]."
        ],
        "onprogress": [
          "/// Stream of `progress` events handled by this [HttpRequestEventTarget]."
        ],
        "ontimeout": [
          "/// Stream of `timeout` events handled by this [HttpRequestEventTarget]."
        ],
        "progressEvent": [
          "/**",
          "   * Static factory designed to expose `progress` events to event",
          "   * handlers that are not necessarily instances of [HttpRequestEventTarget].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "timeoutEvent": [
          "/**",
          "   * Static factory designed to expose `timeout` events to event",
          "   * handlers that are not necessarily instances of [HttpRequestEventTarget].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    }
  },
  "dart.dom.indexed_db": {
    "IDBDatabase": {
      "comment": [
        "/**",
        " * An indexed database object for storing client-side data",
        " * in web apps.",
        " */"
      ],
      "members": {
        "abortEvent": [
          "/**",
          "   * Static factory designed to expose `abort` events to event",
          "   * handlers that are not necessarily instances of [Database].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "closeEvent": [
          "/**",
          "   * Static factory designed to expose `close` events to event",
          "   * handlers that are not necessarily instances of [Database].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [Database].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [Database]."
        ],
        "onclose": [
          "/// Stream of `close` events handled by this [Database]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Database]."
        ],
        "onversionchange": [
          "/// Stream of `versionchange` events handled by this [Database]."
        ],
        "versionchangeEvent": [
          "/**",
          "   * Static factory designed to expose `versionchange` events to event",
          "   * handlers that are not necessarily instances of [Database].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "IDBOpenDBRequest": {
      "members": {
        "blockedEvent": [
          "/**",
          "   * Static factory designed to expose `blocked` events to event",
          "   * handlers that are not necessarily instances of [OpenDBRequest].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onblocked": [
          "/// Stream of `blocked` events handled by this [OpenDBRequest]."
        ],
        "onupgradeneeded": [
          "/// Stream of `upgradeneeded` events handled by this [OpenDBRequest]."
        ],
        "upgradeneededEvent": [
          "/**",
          "   * Static factory designed to expose `upgradeneeded` events to event",
          "   * handlers that are not necessarily instances of [OpenDBRequest].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "IDBRequest": {
      "members": {
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [Request].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Request]."
        ],
        "onsuccess": [
          "/// Stream of `success` events handled by this [Request]."
        ],
        "successEvent": [
          "/**",
          "   * Static factory designed to expose `success` events to event",
          "   * handlers that are not necessarily instances of [Request].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "IDBTransaction": {
      "members": {
        "abortEvent": [
          "/**",
          "   * Static factory designed to expose `abort` events to event",
          "   * handlers that are not necessarily instances of [Transaction].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "completeEvent": [
          "/**",
          "   * Static factory designed to expose `complete` events to event",
          "   * handlers that are not necessarily instances of [Transaction].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [Transaction].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [Transaction]."
        ],
        "oncomplete": [
          "/// Stream of `complete` events handled by this [Transaction]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Transaction]."
        ]
      }
    }
  },
  "dart.dom.svg": {
    "SVGElementInstance": {
      "members": {
        "abortEvent": [
          "/**",
          "   * Static factory designed to expose `abort` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "beforecopyEvent": [
          "/**",
          "   * Static factory designed to expose `beforecopy` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "beforecutEvent": [
          "/**",
          "   * Static factory designed to expose `beforecut` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "beforepasteEvent": [
          "/**",
          "   * Static factory designed to expose `beforepaste` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "blurEvent": [
          "/**",
          "   * Static factory designed to expose `blur` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "changeEvent": [
          "/**",
          "   * Static factory designed to expose `change` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "clickEvent": [
          "/**",
          "   * Static factory designed to expose `click` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "contextmenuEvent": [
          "/**",
          "   * Static factory designed to expose `contextmenu` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "copyEvent": [
          "/**",
          "   * Static factory designed to expose `copy` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "cutEvent": [
          "/**",
          "   * Static factory designed to expose `cut` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dblclickEvent": [
          "/**",
          "   * Static factory designed to expose `doubleclick` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dragendEvent": [
          "/**",
          "   * Static factory designed to expose `dragend` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dragenterEvent": [
          "/**",
          "   * Static factory designed to expose `dragenter` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dragEvent": [
          "/**",
          "   * Static factory designed to expose `drag` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dragleaveEvent": [
          "/**",
          "   * Static factory designed to expose `dragleave` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dragoverEvent": [
          "/**",
          "   * Static factory designed to expose `dragover` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dragstartEvent": [
          "/**",
          "   * Static factory designed to expose `dragstart` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "dropEvent": [
          "/**",
          "   * Static factory designed to expose `drop` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "focusEvent": [
          "/**",
          "   * Static factory designed to expose `focus` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "inputEvent": [
          "/**",
          "   * Static factory designed to expose `input` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "keydownEvent": [
          "/**",
          "   * Static factory designed to expose `keydown` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "keypressEvent": [
          "/**",
          "   * Static factory designed to expose `keypress` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "keyupEvent": [
          "/**",
          "   * Static factory designed to expose `keyup` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadEvent": [
          "/**",
          "   * Static factory designed to expose `load` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mousedownEvent": [
          "/**",
          "   * Static factory designed to expose `mousedown` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseenterEvent": [
          "/**",
          "   * Static factory designed to expose `mouseenter` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseleaveEvent": [
          "/**",
          "   * Static factory designed to expose `mouseleave` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mousemoveEvent": [
          "/**",
          "   * Static factory designed to expose `mousemove` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseoutEvent": [
          "/**",
          "   * Static factory designed to expose `mouseout` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseoverEvent": [
          "/**",
          "   * Static factory designed to expose `mouseover` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mouseupEvent": [
          "/**",
          "   * Static factory designed to expose `mouseup` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "mousewheelEvent": [
          "/**",
          "   * Static factory designed to expose `mousewheel` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [ElementInstance]."
        ],
        "onbeforecopy": [
          "/// Stream of `beforecopy` events handled by this [ElementInstance]."
        ],
        "onbeforecut": [
          "/// Stream of `beforecut` events handled by this [ElementInstance]."
        ],
        "onbeforepaste": [
          "/// Stream of `beforepaste` events handled by this [ElementInstance]."
        ],
        "onblur": [
          "/// Stream of `blur` events handled by this [ElementInstance]."
        ],
        "onchange": [
          "/// Stream of `change` events handled by this [ElementInstance]."
        ],
        "onclick": [
          "/// Stream of `click` events handled by this [ElementInstance]."
        ],
        "oncontextmenu": [
          "/// Stream of `contextmenu` events handled by this [ElementInstance]."
        ],
        "oncopy": [
          "/// Stream of `copy` events handled by this [ElementInstance]."
        ],
        "oncut": [
          "/// Stream of `cut` events handled by this [ElementInstance]."
        ],
        "ondblclick": [
          "/// Stream of `doubleclick` events handled by this [ElementInstance]."
        ],
        "ondrag": [
          "/// Stream of `drag` events handled by this [ElementInstance]."
        ],
        "ondragend": [
          "/// Stream of `dragend` events handled by this [ElementInstance]."
        ],
        "ondragenter": [
          "/// Stream of `dragenter` events handled by this [ElementInstance]."
        ],
        "ondragleave": [
          "/// Stream of `dragleave` events handled by this [ElementInstance]."
        ],
        "ondragover": [
          "/// Stream of `dragover` events handled by this [ElementInstance]."
        ],
        "ondragstart": [
          "/// Stream of `dragstart` events handled by this [ElementInstance]."
        ],
        "ondrop": [
          "/// Stream of `drop` events handled by this [ElementInstance]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [ElementInstance]."
        ],
        "onfocus": [
          "/// Stream of `focus` events handled by this [ElementInstance]."
        ],
        "oninput": [
          "/// Stream of `input` events handled by this [ElementInstance]."
        ],
        "onkeydown": [
          "/// Stream of `keydown` events handled by this [ElementInstance]."
        ],
        "onkeypress": [
          "/// Stream of `keypress` events handled by this [ElementInstance]."
        ],
        "onkeyup": [
          "/// Stream of `keyup` events handled by this [ElementInstance]."
        ],
        "onload": [
          "/// Stream of `load` events handled by this [ElementInstance]."
        ],
        "onmousedown": [
          "/// Stream of `mousedown` events handled by this [ElementInstance]."
        ],
        "onmouseenter": [
          "/// Stream of `mouseenter` events handled by this [ElementInstance]."
        ],
        "onmouseleave": [
          "/// Stream of `mouseleave` events handled by this [ElementInstance]."
        ],
        "onmousemove": [
          "/// Stream of `mousemove` events handled by this [ElementInstance]."
        ],
        "onmouseout": [
          "/// Stream of `mouseout` events handled by this [ElementInstance]."
        ],
        "onmouseover": [
          "/// Stream of `mouseover` events handled by this [ElementInstance]."
        ],
        "onmouseup": [
          "/// Stream of `mouseup` events handled by this [ElementInstance]."
        ],
        "onmousewheel": [
          "/// Stream of `mousewheel` events handled by this [ElementInstance]."
        ],
        "onpaste": [
          "/// Stream of `paste` events handled by this [ElementInstance]."
        ],
        "onreset": [
          "/// Stream of `reset` events handled by this [ElementInstance]."
        ],
        "onresize": [
          "/// Stream of `resize` events handled by this [ElementInstance]."
        ],
        "onscroll": [
          "/// Stream of `scroll` events handled by this [ElementInstance]."
        ],
        "onsearch": [
          "/// Stream of `search` events handled by this [ElementInstance]."
        ],
        "onselect": [
          "/// Stream of `select` events handled by this [ElementInstance]."
        ],
        "onselectstart": [
          "/// Stream of `selectstart` events handled by this [ElementInstance]."
        ],
        "onsubmit": [
          "/// Stream of `submit` events handled by this [ElementInstance]."
        ],
        "onunload": [
          "/// Stream of `unload` events handled by this [ElementInstance]."
        ],
        "pasteEvent": [
          "/**",
          "   * Static factory designed to expose `paste` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "resetEvent": [
          "/**",
          "   * Static factory designed to expose `reset` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "resizeEvent": [
          "/**",
          "   * Static factory designed to expose `resize` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "scrollEvent": [
          "/**",
          "   * Static factory designed to expose `scroll` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "searchEvent": [
          "/**",
          "   * Static factory designed to expose `search` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "selectEvent": [
          "/**",
          "   * Static factory designed to expose `select` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "selectstartEvent": [
          "/**",
          "   * Static factory designed to expose `selectstart` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "submitEvent": [
          "/**",
          "   * Static factory designed to expose `submit` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "unloadEvent": [
          "/**",
          "   * Static factory designed to expose `unload` events to event",
          "   * handlers that are not necessarily instances of [ElementInstance].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    }
  },
  "dart.dom.web_audio": {
    "AudioBufferSourceNode": {
      "members": {
        "endedEvent": [
          "/**",
          "   * Static factory designed to expose `ended` events to event",
          "   * handlers that are not necessarily instances of [AudioBufferSourceNode].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onended": [
          "/// Stream of `ended` events handled by this [AudioBufferSourceNode]."
        ]
      }
    },
    "AudioContext": {
      "members": {
        "completeEvent": [
          "/**",
          "   * Static factory designed to expose `complete` events to event",
          "   * handlers that are not necessarily instances of [AudioContext].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "oncomplete": [
          "/// Stream of `complete` events handled by this [AudioContext]."
        ]
      }
    },
    "OscillatorNode": {
      "members": {
        "endedEvent": [
          "/**",
          "   * Static factory designed to expose `ended` events to event",
          "   * handlers that are not necessarily instances of [OscillatorNode].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onended": [
          "/// Stream of `ended` events handled by this [OscillatorNode]."
        ]
      }
    },
    "ScriptProcessorNode": {
      "members": {
        "audioprocessEvent": [
          "/**",
          "   * Static factory designed to expose `audioprocess` events to event",
          "   * handlers that are not necessarily instances of [ScriptProcessorNode].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onaudioprocess": [
          "/// Stream of `audioprocess` events handled by this [ScriptProcessorNode].",
          "/**",
          "   * Get a Stream that fires events when AudioProcessingEvents occur.",
          "   * This particular stream is special in that it only allows one listener to a",
          "   * given stream. Converting the returned [Stream.asBroadcastStream] will",
          "   * likely ruin the soft-real-time properties which which these events are",
          "   * fired and can be processed.",
          "   */"
        ]
      }
    }
  },
  "dart.dom.web_gl": {
    "WebGLContextAttributes": {
      "comment": [
        "/**",
        " * The properties of a WebGL rendering context.",
        " *",
        " * If [alpha] is `true`, then the context has an alpha channel.",
        " *",
        " * If [antialias] is `true`, then antialiasing is performed by the browser, but",
        " * only if the browser's implementation of WebGL supports antialiasing.",
        " *",
        " * If [depth] is `true`, then the context has a depth buffer of at least 16",
        " * bits.",
        " *",
        " * If [premultipliedAlpha] is `true`, then the context's colors are assumed to",
        " * be premultiplied. This means that color values are assumed to have  been",
        " * multiplied by their alpha values. If [alpha] is `false`, then this flag is",
        " * ignored.",
        " *",
        " * If [preserveDrawingBuffer] is `false`, then all contents of the context are",
        " * cleared. If `true`, then all values will remain until changed or cleared.",
        " *",
        " * If [stencil] is `true`, then the context has a stencil buffer of at least 8",
        " * bits.",
        " */"
      ]
    },
    "WebGLRenderingContext": {
      "members": {
      }
    }
  },
  "dart.dom.web_sql": {
    "Database": {
      "members": {
        "changeVersion": [
          "/**",
          "   * Atomically update the database version to [newVersion], asynchronously",
          "   * running [callback] on the [SqlTransaction] representing this",
          "   * [changeVersion] transaction.",
          "   *",
          "   * If [callback] runs successfully, then [successCallback] is called.",
          "   * Otherwise, [errorCallback] is called.",
          "   *",
          "   * [oldVersion] should match the database's current [version] exactly.",
          "   *",
          "   * See also:",
          "   *",
          "   * * [Database.changeVersion](http://www.w3.org/TR/webdatabase/#dom-database-changeversion) from W3C.",
          "   */"
        ]
      }
    }
  }
}
