{
  "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": {
      "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 [createLinearGradient] or [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](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.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 [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](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.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]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.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]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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",
          "   *",
          "   * * [scrollByLines]",
          "   * (http://docs.webplatform.org/wiki/dom/methods/scrollByLines) from WebPlatform.org.",
          "   */"
        ],
        "scrollByPages": [
          "/**",
          "   * Scrolls the element by a number of pages.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [scrollByPages]",
          "   * (http://docs.webplatform.org/wiki/dom/methods/scrollByPages) from WebPlatform.org.",
          "   */"
        ],
        "scrollEvent": [
          "/**",
          "   * Static factory designed to expose `scroll` events to event",
          "   * handlers that are not necessarily instances of [Element].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "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]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.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/web/html5/dnd/basics)",
          "   * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)",
          "   * from HTML5Rocks.",
          "   * * [Drag and drop specification]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.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://html.adobe.com/webplatform/layout/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://html.adobe.com/webplatform/layout/regions/) from Adobe.",
          "   * * [CSS regions specification]",
          "   * (http://www.w3.org/TR/css3-regions/) from W3C.",
          "   */"
        ],
        "webkitRequestFullscreen": [
          "/**",
          "   * Displays this element fullscreen.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Using the full-screen API]",
          "   * (http://docs.webplatform.org/wiki/tutorials/using_the_full-screen_api)",
          "   * tutorial from WebPlatform.org.",
          "   * * [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.",
          "   */"
        ]
      }
    },
    "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]."
        ]
      }
    },
    "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 decendents 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 all of the nodes into this node directly before refChild.",
          "   *",
          "   * ## 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 decendents.",
          "   *",
          "   * ## 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]."
        ],
        "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.",
          "   */"
        ]
      }
    },
    "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 [WebSocketEvents].",
        " *",
        " * 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 constrast, 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": {
        "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.",
          "   */"
        ],
        "DOMContentLoadedEvent": [
          "/**",
          "   * Static factory designed to expose `contentloaded` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "hashchangeEvent": [
          "/**",
          "   * Static factory designed to expose `hashchange` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "offlineEvent": [
          "/**",
          "   * Static factory designed to expose `offline` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "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]."
        ],
        "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.",
          "   */"
        ],
        "popstateEvent": [
          "/**",
          "   * Static factory designed to expose `popstate` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "resizeEvent": [
          "/**",
          "   * Static factory designed to expose `resize` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "storageEvent": [
          "/**",
          "   * Static factory designed to expose `storage` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "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.",
          "   */"
        ]
      }
    },
    "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_RECIEVED` 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](http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Responses)",
          "   * for a list of common response headers.",
          "   */"
        ],
        "getResponseHeader": [
          "/**",
          "   * Return the response header named `header`, or `null` if not found.",
          "   *",
          "   * See also [HTTP response headers](http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Responses)",
          "   * 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 asyncronously, 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 complext 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 [common MIME types](http://en.wikipedia.org/wiki/Internet_media_type#List_of_common_media_types)",
          "   */"
        ],
        "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/DOM/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 complext 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 requst 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/DOM/XMLHttpRequest#send%28%29)",
          "   * 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 \\\"200 OK\\\").",
          "   * See also: [Http Status Codes](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)",
          "   */"
        ],
        "timeout": [
          "/**",
          "   * Length of time before a request is automatically terminated.",
          "   *",
          "   * When the time has passed, a [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#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.",
          "   * The events fired will be members of [HttpRequestUploadEvents].",
          "   */"
        ],
        "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 [asBroadcast] 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": {
        "bufferData": [
          "/**",
          "   * Buffers the specified data.",
          "   *",
          "   * This specific method is provided for WebGL API compatibility reasons, but",
          "   * it is highly recommended that you use [bufferDataTyped] or [bufferByteData]",
          "   * depending on your purposes.",
          "   */"
        ],
        "bufferSubData": [
          "/**",
          "   * Buffers the specified subset of data.",
          "   *",
          "   * This specific method is provided for WebGL API compatibility reasons, but",
          "   * it is highly recommended that you use [bufferSubDataTyped] or [bufferSubByteData]",
          "   * depending on your purposes.",
          "   */"
        ],
        "texImage2D": [
          "/**",
          "   * Updates the currently bound texture to [data].",
          "   *",
          "   * This specific method is provided for WebGL API compatibility reasons, but it",
          "   * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]",
          "   * (or for more specificity, the more specialized [texImage2DImageData],",
          "   * [texImage2DCanvas], [texImage2DVideo]).",
          "   */"
        ],
        "texSubImage2D": [
          "/**",
          "   * Updates a sub-rectangle of the currently bound texture to [data].",
          "   *",
          "   * This specific method is provided for WebGL API compatibility reasons, but it",
          "   * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]",
          "   * (or for more specificity, the more specialized [texSubImage2DImageData],",
          "   * [texSubImage2DCanvas], [texSubImage2DVideo]).",
          "   */"
        ]
      }
    }
  },
  "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.",
          "   *",
          "   * * [Database.changeVersion](http://www.w3.org/TR/webdatabase/#dom-database-changeversion) from W3C.",
          "   */"
        ]
      }
    }
  }
}
