{
  "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 fullscreen 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.",
          "   */"
        ]
      }
    },
    "Event": {
      "members": {
        "AT_TARGET": [
          "/**",
          "   * This event is being handled by the event target.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Target phase] (http://www.w3.org/TR/DOM-Level-3-Events/#target-phase)",
          "   * from W3C.",
          "   */"
        ],
        "BUBBLING_PHASE": [
          "/**",
          "   * This event is bubbling up through the target's ancestors.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Bubble phase] (http://www.w3.org/TR/DOM-Level-3-Events/#bubble-phase)",
          "   * from W3C.",
          "   */"
        ],
        "CAPTURING_PHASE": [
          "/**",
          "   * This event is propagating through the target's ancestors, starting from the",
          "   * document.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Bubble phase] (http://www.w3.org/TR/DOM-Level-3-Events/#bubble-phase)",
          "   * from W3C.",
          "   */"
        ],
        "clipboardData": [
          "/**",
          "   * Access to the system's clipboard data during copy, cut, and paste events.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [clipboardData specification]",
          "   * (http://www.w3.org/TR/clipboard-apis/#attributes) from W3C.",
          "   */"
        ],
        "path": [
          "/**",
          "   * This event's path, taking into account shadow DOM.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Shadow DOM extensions to Event]",
          "   * (http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event) from",
          "   * W3C.",
          "   */"
        ]
      }
    },
    "EventSource": {
      "members": {
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [EventSource].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [EventSource].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [EventSource]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [EventSource]."
        ],
        "onopen": [
          "/// Stream of `open` events handled by this [EventSource]."
        ],
        "openEvent": [
          "/**",
          "   * Static factory designed to expose `open` events to event",
          "   * handlers that are not necessarily instances of [EventSource].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "FileReader": {
      "members": {
        "abortEvent": [
          "/**",
          "   * Static factory designed to expose `abort` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadendEvent": [
          "/**",
          "   * Static factory designed to expose `loadend` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadEvent": [
          "/**",
          "   * Static factory designed to expose `load` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadstartEvent": [
          "/**",
          "   * Static factory designed to expose `loadstart` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [FileReader]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [FileReader]."
        ],
        "onload": [
          "/// Stream of `load` events handled by this [FileReader]."
        ],
        "onloadend": [
          "/// Stream of `loadend` events handled by this [FileReader]."
        ],
        "onloadstart": [
          "/// Stream of `loadstart` events handled by this [FileReader]."
        ],
        "onprogress": [
          "/// Stream of `progress` events handled by this [FileReader]."
        ],
        "progressEvent": [
          "/**",
          "   * Static factory designed to expose `progress` events to event",
          "   * handlers that are not necessarily instances of [FileReader].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "FileWriter": {
      "members": {
        "abortEvent": [
          "/**",
          "   * Static factory designed to expose `abort` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [FileWriter]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [FileWriter]."
        ],
        "onprogress": [
          "/// Stream of `progress` events handled by this [FileWriter]."
        ],
        "onwrite": [
          "/// Stream of `write` events handled by this [FileWriter]."
        ],
        "onwriteend": [
          "/// Stream of `writeend` events handled by this [FileWriter]."
        ],
        "onwritestart": [
          "/// Stream of `writestart` events handled by this [FileWriter]."
        ],
        "progressEvent": [
          "/**",
          "   * Static factory designed to expose `progress` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "writeendEvent": [
          "/**",
          "   * Static factory designed to expose `writeend` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "writeEvent": [
          "/**",
          "   * Static factory designed to expose `write` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "writestartEvent": [
          "/**",
          "   * Static factory designed to expose `writestart` events to event",
          "   * handlers that are not necessarily instances of [FileWriter].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "HTMLAreaElement": {
      "comment": [
        "/**",
        " * DOM Area Element, which links regions of an image map with a hyperlink.",
        " *",
        " * The element can also define an uninteractive region of the map.",
        " *",
        " * See also:",
        " *",
        " * * [<area>](https://developer.mozilla.org/en-US/docs/HTML/Element/area)",
        " * on MDN.",
        " */"
      ]
    },
    "HTMLBodyElement": {
      "members": {
        "blurEvent": [
          "/**",
          "   * Static factory designed to expose `blur` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "focusEvent": [
          "/**",
          "   * Static factory designed to expose `focus` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "hashchangeEvent": [
          "/**",
          "   * Static factory designed to expose `hashchange` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadEvent": [
          "/**",
          "   * Static factory designed to expose `load` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "offlineEvent": [
          "/**",
          "   * Static factory designed to expose `offline` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onblur": [
          "/// Stream of `blur` events handled by this [BodyElement]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [BodyElement]."
        ],
        "onfocus": [
          "/// Stream of `focus` events handled by this [BodyElement]."
        ],
        "onhashchange": [
          "/// Stream of `hashchange` events handled by this [BodyElement]."
        ],
        "onlineEvent": [
          "/**",
          "   * Static factory designed to expose `online` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onload": [
          "/// Stream of `load` events handled by this [BodyElement]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [BodyElement]."
        ],
        "onoffline": [
          "/// Stream of `offline` events handled by this [BodyElement]."
        ],
        "ononline": [
          "/// Stream of `online` events handled by this [BodyElement]."
        ],
        "onpopstate": [
          "/// Stream of `popstate` events handled by this [BodyElement]."
        ],
        "onresize": [
          "/// Stream of `resize` events handled by this [BodyElement]."
        ],
        "onstorage": [
          "/// Stream of `storage` events handled by this [BodyElement]."
        ],
        "onunload": [
          "/// Stream of `unload` events handled by this [BodyElement]."
        ],
        "popstateEvent": [
          "/**",
          "   * Static factory designed to expose `popstate` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "resizeEvent": [
          "/**",
          "   * Static factory designed to expose `resize` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "storageEvent": [
          "/**",
          "   * Static factory designed to expose `storage` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "unloadEvent": [
          "/**",
          "   * Static factory designed to expose `unload` events to event",
          "   * handlers that are not necessarily instances of [BodyElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "HTMLCanvasElement": {
      "members": {
        "height": [
          "/// The height of this canvas element in CSS pixels."
        ],
        "onwebglcontextlost": [
          "/// Stream of `webglcontextlost` events handled by this [CanvasElement]."
        ],
        "onwebglcontextrestored": [
          "/// Stream of `webglcontextrestored` events handled by this [CanvasElement]."
        ],
        "webglcontextlostEvent": [
          "/**",
          "   * Static factory designed to expose `webglcontextlost` events to event",
          "   * handlers that are not necessarily instances of [CanvasElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webglcontextrestoredEvent": [
          "/**",
          "   * Static factory designed to expose `webglcontextrestored` events to event",
          "   * handlers that are not necessarily instances of [CanvasElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "width": [
          "/// The width of this canvas element in CSS pixels."
        ]
      }
    },
    "HTMLDivElement": {
      "comment": [
        "/**",
        " * A generic container for content on an HTML page;",
        " * corresponds to the &lt;div&gt; tag.",
        " *",
        " * The [DivElement] is a generic container and does not have any semantic",
        " * significance. It is functionally similar to [SpanElement].",
        " *",
        " * The [DivElement] is a block-level element, as opposed to [SpanElement],",
        " * which is an inline-level element.",
        " *",
        " * Example usage:",
        " *",
        " *     DivElement div = new DivElement();",
        " *     div.text = 'Here's my new DivElem",
        " *     document.body.elements.add(elem);",
        " *",
        " * See also:",
        " *",
        " * * [HTML <div> element](http://www.w3.org/TR/html-markup/div.html) from W3C.",
        " * * [Block-level element](http://www.w3.org/TR/CSS2/visuren.html#block-boxes) from W3C.",
        " * * [Inline-level element](http://www.w3.org/TR/CSS2/visuren.html#inline-boxes) from W3C.",
        " */"
      ]
    },
    "HTMLFormElement": {
      "members": {
        "autocompleteerrorEvent": [
          "/**",
          "   * Static factory designed to expose `autocompleteerror` events to event",
          "   * handlers that are not necessarily instances of [FormElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "autocompleteEvent": [
          "/**",
          "   * Static factory designed to expose `autocomplete` events to event",
          "   * handlers that are not necessarily instances of [FormElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onautocomplete": [
          "/// Stream of `autocomplete` events handled by this [FormElement]."
        ],
        "onautocompleteerror": [
          "/// Stream of `autocompleteerror` events handled by this [FormElement]."
        ]
      }
    },
    "HTMLHRElement": {
      "comment": [
        "/**",
        " * An `<hr>` tag.",
        " */"
      ]
    },
    "HTMLInputElement": {
      "members": {
        "onwebkitSpeechChange": [
          "/// Stream of `speechchange` events handled by this [InputElement]."
        ],
        "webkitSpeechChangeEvent": [
          "/**",
          "   * Static factory designed to expose `speechchange` events to event",
          "   * handlers that are not necessarily instances of [InputElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "HTMLMediaElement": {
      "members": {
        "canplayEvent": [
          "/**",
          "   * Static factory designed to expose `canplay` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "canplaythroughEvent": [
          "/**",
          "   * Static factory designed to expose `canplaythrough` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "durationchangeEvent": [
          "/**",
          "   * Static factory designed to expose `durationchange` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "emptiedEvent": [
          "/**",
          "   * Static factory designed to expose `emptied` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "endedEvent": [
          "/**",
          "   * Static factory designed to expose `ended` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadeddataEvent": [
          "/**",
          "   * Static factory designed to expose `loadeddata` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadedmetadataEvent": [
          "/**",
          "   * Static factory designed to expose `loadedmetadata` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "loadstartEvent": [
          "/**",
          "   * Static factory designed to expose `loadstart` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "oncanplay": [
          "/// Stream of `canplay` events handled by this [MediaElement]."
        ],
        "oncanplaythrough": [
          "/// Stream of `canplaythrough` events handled by this [MediaElement]."
        ],
        "ondurationchange": [
          "/// Stream of `durationchange` events handled by this [MediaElement]."
        ],
        "onemptied": [
          "/// Stream of `emptied` events handled by this [MediaElement]."
        ],
        "onended": [
          "/// Stream of `ended` events handled by this [MediaElement]."
        ],
        "onloadeddata": [
          "/// Stream of `loadeddata` events handled by this [MediaElement]."
        ],
        "onloadedmetadata": [
          "/// Stream of `loadedmetadata` events handled by this [MediaElement]."
        ],
        "onloadstart": [
          "/// Stream of `loadstart` events handled by this [MediaElement]."
        ],
        "onpause": [
          "/// Stream of `pause` events handled by this [MediaElement]."
        ],
        "onplay": [
          "/// Stream of `play` events handled by this [MediaElement]."
        ],
        "onplaying": [
          "/// Stream of `playing` events handled by this [MediaElement]."
        ],
        "onprogress": [
          "/// Stream of `progress` events handled by this [MediaElement]."
        ],
        "onratechange": [
          "/// Stream of `ratechange` events handled by this [MediaElement]."
        ],
        "onseeked": [
          "/// Stream of `seeked` events handled by this [MediaElement]."
        ],
        "onseeking": [
          "/// Stream of `seeking` events handled by this [MediaElement]."
        ],
        "onshow": [
          "/// Stream of `show` events handled by this [MediaElement]."
        ],
        "onstalled": [
          "/// Stream of `stalled` events handled by this [MediaElement]."
        ],
        "onsuspend": [
          "/// Stream of `suspend` events handled by this [MediaElement]."
        ],
        "ontimeupdate": [
          "/// Stream of `timeupdate` events handled by this [MediaElement]."
        ],
        "onvolumechange": [
          "/// Stream of `volumechange` events handled by this [MediaElement]."
        ],
        "onwaiting": [
          "/// Stream of `waiting` events handled by this [MediaElement]."
        ],
        "onwebkitkeyadded": [
          "/// Stream of `keyadded` events handled by this [MediaElement]."
        ],
        "onwebkitkeyerror": [
          "/// Stream of `keyerror` events handled by this [MediaElement]."
        ],
        "onwebkitkeymessage": [
          "/// Stream of `keymessage` events handled by this [MediaElement]."
        ],
        "onwebkitneedkey": [
          "/// Stream of `needkey` events handled by this [MediaElement]."
        ],
        "pauseEvent": [
          "/**",
          "   * Static factory designed to expose `pause` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "playEvent": [
          "/**",
          "   * Static factory designed to expose `play` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "playingEvent": [
          "/**",
          "   * Static factory designed to expose `playing` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "progressEvent": [
          "/**",
          "   * Static factory designed to expose `progress` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "ratechangeEvent": [
          "/**",
          "   * Static factory designed to expose `ratechange` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "seekedEvent": [
          "/**",
          "   * Static factory designed to expose `seeked` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "seekingEvent": [
          "/**",
          "   * Static factory designed to expose `seeking` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "showEvent": [
          "/**",
          "   * Static factory designed to expose `show` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "stalledEvent": [
          "/**",
          "   * Static factory designed to expose `stalled` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "suspendEvent": [
          "/**",
          "   * Static factory designed to expose `suspend` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "timeupdateEvent": [
          "/**",
          "   * Static factory designed to expose `timeupdate` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "volumechangeEvent": [
          "/**",
          "   * Static factory designed to expose `volumechange` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "waitingEvent": [
          "/**",
          "   * Static factory designed to expose `waiting` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeyaddedEvent": [
          "/**",
          "   * Static factory designed to expose `keyadded` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeyerrorEvent": [
          "/**",
          "   * Static factory designed to expose `keyerror` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeymessageEvent": [
          "/**",
          "   * Static factory designed to expose `keymessage` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitneedkeyEvent": [
          "/**",
          "   * Static factory designed to expose `needkey` events to event",
          "   * handlers that are not necessarily instances of [MediaElement].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "HTMLMenuElement": {
      "comment": [
        "/**",
        " * An HTML <menu> element.",
        " *",
        " * A <menu> element represents an unordered list of menu commands.",
        " *",
        " * See also:",
        " *",
        " *  * [Menu Element](https://developer.mozilla.org/en-US/docs/HTML/Element/menu) from MDN.",
        " *  * [Menu Element](http://www.w3.org/TR/html5/the-menu-element.html#the-menu-element) from the W3C.",
        " */"
      ]
    },
    "MediaKeySession": {
      "members": {
        "onwebkitkeyadded": [
          "/// Stream of `keyadded` events handled by this [MediaKeySession]."
        ],
        "onwebkitkeyerror": [
          "/// Stream of `keyerror` events handled by this [MediaKeySession]."
        ],
        "onwebkitkeymessage": [
          "/// Stream of `keymessage` events handled by this [MediaKeySession]."
        ],
        "webkitkeyaddedEvent": [
          "/**",
          "   * Static factory designed to expose `keyadded` events to event",
          "   * handlers that are not necessarily instances of [MediaKeySession].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeyerrorEvent": [
          "/**",
          "   * Static factory designed to expose `keyerror` events to event",
          "   * handlers that are not necessarily instances of [MediaKeySession].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitkeymessageEvent": [
          "/**",
          "   * Static factory designed to expose `keymessage` events to event",
          "   * handlers that are not necessarily instances of [MediaKeySession].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "MediaStream": {
      "members": {
        "addtrackEvent": [
          "/**",
          "   * Static factory designed to expose `addtrack` events to event",
          "   * handlers that are not necessarily instances of [MediaStream].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "endedEvent": [
          "/**",
          "   * Static factory designed to expose `ended` events to event",
          "   * handlers that are not necessarily instances of [MediaStream].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onaddtrack": [
          "/// Stream of `addtrack` events handled by this [MediaStream]."
        ],
        "onended": [
          "/// Stream of `ended` events handled by this [MediaStream]."
        ],
        "onremovetrack": [
          "/// Stream of `removetrack` events handled by this [MediaStream]."
        ],
        "removetrackEvent": [
          "/**",
          "   * Static factory designed to expose `removetrack` events to event",
          "   * handlers that are not necessarily instances of [MediaStream].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "MediaStreamTrack": {
      "members": {
        "endedEvent": [
          "/**",
          "   * Static factory designed to expose `ended` events to event",
          "   * handlers that are not necessarily instances of [MediaStreamTrack].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "muteEvent": [
          "/**",
          "   * Static factory designed to expose `mute` events to event",
          "   * handlers that are not necessarily instances of [MediaStreamTrack].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onended": [
          "/// Stream of `ended` events handled by this [MediaStreamTrack]."
        ],
        "onmute": [
          "/// Stream of `mute` events handled by this [MediaStreamTrack]."
        ],
        "onunmute": [
          "/// Stream of `unmute` events handled by this [MediaStreamTrack]."
        ],
        "unmuteEvent": [
          "/**",
          "   * Static factory designed to expose `unmute` events to event",
          "   * handlers that are not necessarily instances of [MediaStreamTrack].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "MessagePort": {
      "members": {
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [MessagePort].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [MessagePort]."
        ]
      }
    },
    "MIDIAccess": {
      "members": {
        "connectEvent": [
          "/**",
          "   * Static factory designed to expose `connect` events to event",
          "   * handlers that are not necessarily instances of [MidiAccess].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "disconnectEvent": [
          "/**",
          "   * Static factory designed to expose `disconnect` events to event",
          "   * handlers that are not necessarily instances of [MidiAccess].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onconnect": [
          "/// Stream of `connect` events handled by this [MidiAccess]."
        ],
        "ondisconnect": [
          "/// Stream of `disconnect` events handled by this [MidiAccess]."
        ]
      }
    },
    "MIDIInput": {
      "members": {
        "midimessageEvent": [
          "/**",
          "   * Static factory designed to expose `midimessage` events to event",
          "   * handlers that are not necessarily instances of [MidiInput].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onmidimessage": [
          "/// Stream of `midimessage` events handled by this [MidiInput]."
        ]
      }
    },
    "MIDIPort": {
      "members": {
        "disconnectEvent": [
          "/**",
          "   * Static factory designed to expose `disconnect` events to event",
          "   * handlers that are not necessarily instances of [MidiPort].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "ondisconnect": [
          "/// Stream of `disconnect` events handled by this [MidiPort]."
        ]
      }
    },
    "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": {
        "alert": [
          "/**",
          "   * Displays a modal alert to the user.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [User prompts]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#user-prompts)",
          "   * from WHATWG.",
          "   */"
        ],
        "applicationCache": [
          "/**",
          "   * The application cache for this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [A beginner's guide to using the application cache]",
          "   * (http://www.html5rocks.com/en/tutorials/appcache/beginner) from HTML5Rocks.",
          "   * * [Application cache API]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#application-cache-api)",
          "   * from WHATWG.",
          "   */"
        ],
        "confirm": [
          "/**",
          "   * Displays a modal OK/Cancel prompt to the user.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [User prompts]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#user-prompts)",
          "   * from WHATWG.",
          "   */"
        ],
        "crypto": [
          "/**",
          "   * Entrypoint for the browser's cryptographic functions.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Web cryptography API](http://www.w3.org/TR/WebCryptoAPI/) from W3C.",
          "   */"
        ],
        "CSS": [
          "/**",
          "   * Entrypoint for CSS-related functions.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The CSS interface](http://dev.w3.org/csswg/css-conditional/#the-css-interface) from W3C.",
          "   */"
        ],
        "defaultStatus": [
          "/// *Deprecated*."
        ],
        "defaultstatus": [
          "/// *Deprecated*."
        ],
        "devicemotionEvent": [
          "/**",
          "   * Static factory designed to expose `devicemotion` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "deviceorientationEvent": [
          "/**",
          "   * Static factory designed to expose `deviceorientation` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "devicePixelRatio": [
          "/**",
          "   * The ratio between physical pixels and logical CSS pixels.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [devicePixelRatio]",
          "   * (http://www.quirksmode.org/blog/archives/2012/06/devicepixelrati.html) from",
          "   * quirksmode.",
          "   * * [More about devicePixelRatio]",
          "   * (http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html) from",
          "   * quirksmode.",
          "   */"
        ],
        "DOMContentLoadedEvent": [
          "/**",
          "   * Static factory designed to expose `contentloaded` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "find": [
          "/**",
          "   * Finds text in this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.find]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/API/Window.find) from MDN.",
          "   */"
        ],
        "getMatchedCSSRules": [
          "/**",
          "   * Returns all CSS rules that apply to the element's pseudo-element.",
          "   */"
        ],
        "getSelection": [
          "/**",
          "   * Returns the currently selected text.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.getSelection]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection)",
          "   * from MDN.",
          "   */"
        ],
        "hashchangeEvent": [
          "/**",
          "   * Static factory designed to expose `hashchange` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "history": [
          "/**",
          "   * The current session history for this window's newest document.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Loading web pages]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html)",
          "   * from WHATWG.",
          "   */"
        ],
        "innerHeight": [
          "/**",
          "   * The height of the viewport including scrollbars.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [innerHeight]",
          "   * (http://docs.webplatform.org/wiki/css/cssom/properties/innerHeight) from",
          "   * WebPlatform.org.",
          "   */"
        ],
        "innerWidth": [
          "/**",
          "   * The width of the viewport including scrollbars.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [innerWidth]",
          "   * (http://docs.webplatform.org/wiki/css/cssom/properties/innerWidth) from",
          "   * WebPlatform.org.",
          "   */"
        ],
        "localStorage": [
          "/**",
          "   * Storage for this window that persists across sessions.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [DOM storage guide]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage) from",
          "   * MDN.",
          "   * * [The past, present & future of local storage for web applications]",
          "   * (http://diveintohtml5.info/storage.html) from Dive Into HTML5.",
          "   * * [Local storage specification]",
          "   * (http://www.w3.org/TR/webstorage/#the-localstorage-attribute) from W3C.",
          "   */"
        ],
        "locationbar": [
          "/**",
          "   * This window's location bar, which displays the URL.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface elements]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#browser-interface-elements)",
          "   * from WHATWG.",
          "   */"
        ],
        "matchMedia": [
          "/**",
          "   * Returns a list of media queries for the given query string.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Testing media queries]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Testing_media_queries)",
          "   * from MDN.",
          "   * * [The MediaQueryList specification]",
          "   * (http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface) from W3C.",
          "   */"
        ],
        "menubar": [
          "/**",
          "   * This window's menu bar, which displays menu commands.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface elements]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#browser-interface-elements)",
          "   * from WHATWG.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "moveBy": [
          "/**",
          "   * Moves this window.",
          "   *",
          "   * x and y can be negative.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.moveBy]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/API/Window.moveBy) from MDN.",
          "   * * [Window.moveBy]",
          "   * (http://dev.w3.org/csswg/cssom-view/#dom-window-moveby) from W3C.",
          "   */"
        ],
        "name": [
          "/**",
          "   * The name of this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window name]",
          "   * (http://docs.webplatform.org/wiki/html/attributes/name_(window)) from",
          "   * WebPlatform.org.",
          "   */"
        ],
        "navigator": [
          "/**",
          "   * The user agent accessing this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The navigator object]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#the-navigator-object)",
          "   * from WHATWG.",
          "   */"
        ],
        "offlineEvent": [
          "/**",
          "   * Static factory designed to expose `offline` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "offscreenBuffering": [
          "/**",
          "   * Whether objects are drawn offscreen before being displayed.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [offscreenBuffering]",
          "   * (http://docs.webplatform.org/wiki/dom/properties/offscreenBuffering) from",
          "   * WebPlatform.org.",
          "   */"
        ],
        "onabort": [
          "/// Stream of `abort` events handled by this [Window]."
        ],
        "onblur": [
          "/// Stream of `blur` events handled by this [Window]."
        ],
        "onchange": [
          "/// Stream of `change` events handled by this [Window]."
        ],
        "onclick": [
          "/// Stream of `click` events handled by this [Window]."
        ],
        "oncontextmenu": [
          "/// Stream of `contextmenu` events handled by this [Window]."
        ],
        "ondblclick": [
          "/// Stream of `doubleclick` events handled by this [Window]."
        ],
        "ondevicemotion": [
          "/// Stream of `devicemotion` events handled by this [Window]."
        ],
        "ondeviceorientation": [
          "/// Stream of `deviceorientation` events handled by this [Window]."
        ],
        "onDOMContentLoaded": [
          "/// Stream of `contentloaded` events handled by this [Window]."
        ],
        "ondrag": [
          "/// Stream of `drag` events handled by this [Window]."
        ],
        "ondragend": [
          "/// Stream of `dragend` events handled by this [Window]."
        ],
        "ondragenter": [
          "/// Stream of `dragenter` events handled by this [Window]."
        ],
        "ondragleave": [
          "/// Stream of `dragleave` events handled by this [Window]."
        ],
        "ondragover": [
          "/// Stream of `dragover` events handled by this [Window]."
        ],
        "ondragstart": [
          "/// Stream of `dragstart` events handled by this [Window]."
        ],
        "ondrop": [
          "/// Stream of `drop` events handled by this [Window]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Window]."
        ],
        "onfocus": [
          "/// Stream of `focus` events handled by this [Window]."
        ],
        "onhashchange": [
          "/// Stream of `hashchange` events handled by this [Window]."
        ],
        "oninput": [
          "/// Stream of `input` events handled by this [Window]."
        ],
        "oninvalid": [
          "/// Stream of `invalid` events handled by this [Window]."
        ],
        "onkeydown": [
          "/// Stream of `keydown` events handled by this [Window]."
        ],
        "onkeypress": [
          "/// Stream of `keypress` events handled by this [Window]."
        ],
        "onkeyup": [
          "/// Stream of `keyup` events handled by this [Window]."
        ],
        "onlineEvent": [
          "/**",
          "   * Static factory designed to expose `online` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onload": [
          "/// Stream of `load` events handled by this [Window]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [Window]."
        ],
        "onmousedown": [
          "/// Stream of `mousedown` events handled by this [Window]."
        ],
        "onmouseenter": [
          "/// Stream of `mouseenter` events handled by this [Window]."
        ],
        "onmouseleave": [
          "/// Stream of `mouseleave` events handled by this [Window]."
        ],
        "onmousemove": [
          "/// Stream of `mousemove` events handled by this [Window]."
        ],
        "onmouseout": [
          "/// Stream of `mouseout` events handled by this [Window]."
        ],
        "onmouseover": [
          "/// Stream of `mouseover` events handled by this [Window]."
        ],
        "onmouseup": [
          "/// Stream of `mouseup` events handled by this [Window]."
        ],
        "onmousewheel": [
          "/// Stream of `mousewheel` events handled by this [Window]."
        ],
        "onoffline": [
          "/// Stream of `offline` events handled by this [Window]."
        ],
        "ononline": [
          "/// Stream of `online` events handled by this [Window]."
        ],
        "onpagehide": [
          "/// Stream of `pagehide` events handled by this [Window]."
        ],
        "onpageshow": [
          "/// Stream of `pageshow` events handled by this [Window]."
        ],
        "onpopstate": [
          "/// Stream of `popstate` events handled by this [Window]."
        ],
        "onreset": [
          "/// Stream of `reset` events handled by this [Window]."
        ],
        "onresize": [
          "/// Stream of `resize` events handled by this [Window]."
        ],
        "onscroll": [
          "/// Stream of `scroll` events handled by this [Window]."
        ],
        "onsearch": [
          "/// Stream of `search` events handled by this [Window]."
        ],
        "onselect": [
          "/// Stream of `select` events handled by this [Window]."
        ],
        "onstorage": [
          "/// Stream of `storage` events handled by this [Window]."
        ],
        "onsubmit": [
          "/// Stream of `submit` events handled by this [Window]."
        ],
        "ontouchcancel": [
          "/// Stream of `touchcancel` events handled by this [Window]."
        ],
        "ontouchend": [
          "/// Stream of `touchend` events handled by this [Window]."
        ],
        "ontouchmove": [
          "/// Stream of `touchmove` events handled by this [Window]."
        ],
        "ontouchstart": [
          "/// Stream of `touchstart` events handled by this [Window]."
        ],
        "ontransitionend": [
          "/// Stream of `transitionend` events handled by this [Window]."
        ],
        "onunload": [
          "/// Stream of `unload` events handled by this [Window]."
        ],
        "onwebkitAnimationEnd": [
          "/// Stream of `animationend` events handled by this [Window]."
        ],
        "onwebkitAnimationIteration": [
          "/// Stream of `animationiteration` events handled by this [Window]."
        ],
        "onwebkitAnimationStart": [
          "/// Stream of `animationstart` events handled by this [Window]."
        ],
        "openDatabase": [
          "/// *Deprecated.*"
        ],
        "outerHeight": [
          "/**",
          "   * The height of this window including all user interface elements.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [outerHeight]",
          "   * (http://docs.webplatform.org/wiki/css/cssom/properties/outerHeight) from",
          "   * WebPlatform.org.",
          "   */"
        ],
        "outerWidth": [
          "/**",
          "   * The width of the window including all user interface elements.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [outerWidth]",
          "   * (http://docs.webplatform.org/wiki/css/cssom/properties/outerWidth) from",
          "   * WebPlatform.org.",
          "   */"
        ],
        "pagehideEvent": [
          "/**",
          "   * Static factory designed to expose `pagehide` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "pageshowEvent": [
          "/**",
          "   * Static factory designed to expose `pageshow` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "pageXOffset": [
          "/**",
          "   * The distance this window has been scrolled horizontally.",
          "   *",
          "   * This attribute is an alias for [scrollX].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification]",
          "   * (http://www.w3.org/TR/cssom-view/#screen) from W3C.",
          "   * * [scrollX and pageXOffset]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX) from MDN.",
          "   */"
        ],
        "pageYOffset": [
          "/**",
          "   * The distance this window has been scrolled vertically.",
          "   *",
          "   * This attribute is an alias for [scrollY].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification]",
          "   * (http://www.w3.org/TR/cssom-view/#screen) from W3C.",
          "   * * [scrollY and pageYOffset]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY) from MDN.",
          "   */"
        ],
        "performance": [
          "/**",
          "   * Timing and navigation data for this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Measuring page load speed with navigation timeing]",
          "   * (http://www.html5rocks.com/en/tutorials/webperformance/basics/) from",
          "   * HTML5Rocks.",
          "   * * [Navigation timing specification]",
          "   * (http://www.w3.org/TR/navigation-timing/) from W3C.",
          "   */"
        ],
        "PERSISTENT": [
          "/**",
          "   * Indicates that file system data cannot be cleared unless given user",
          "   * permission.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Exploring the FileSystem APIs]",
          "   * (http://www.html5rocks.com/en/tutorials/file/filesystem/) from HTML5Rocks.",
          "   * * [File API]",
          "   * (http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem) from W3C.",
          "   */"
        ],
        "popstateEvent": [
          "/**",
          "   * Static factory designed to expose `popstate` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "print": [
          "/**",
          "   * Opens the print dialog for this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.print]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/API/Window.print) from MDN.",
          "   */"
        ],
        "resizeBy": [
          "/**",
          "   * Resizes this window by an offset.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window resizeBy] (http://docs.webplatform.org/wiki/dom/methods/resizeBy)",
          "   * from WebPlatform.org.",
          "   */"
        ],
        "resizeEvent": [
          "/**",
          "   * Static factory designed to expose `resize` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "resizeTo": [
          "/**",
          "   * Resizes this window to a specific width and height.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window resizeTo] (http://docs.webplatform.org/wiki/dom/methods/resizeTo)",
          "   * from WebPlatform.org.",
          "   */"
        ],
        "screen": [
          "/**",
          "   * Information about the screen displaying this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification]",
          "   * (http://www.w3.org/TR/cssom-view/#screen) from W3C.",
          "   */"
        ],
        "screenLeft": [
          "/**",
          "   * The distance from the left side of the screen to the left side of this",
          "   * window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification]",
          "   * (http://www.w3.org/TR/cssom-view/#screen) from W3C.",
          "   */"
        ],
        "screenTop": [
          "/**",
          "   * The distance from the top of the screen to the top of this window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification]",
          "   * (http://www.w3.org/TR/cssom-view/#screen) from W3C.",
          "   */"
        ],
        "screenX": [
          "/**",
          "   * The distance from the left side of the screen to the mouse pointer.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification]",
          "   * (http://www.w3.org/TR/cssom-view/#screen) from W3C.",
          "   */"
        ],
        "screenY": [
          "/**",
          "   * The distance from the top of the screen to the mouse pointer.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Screen interface specification]",
          "   * (http://www.w3.org/TR/cssom-view/#screen) from W3C.",
          "   */"
        ],
        "scroll": [
          "/**",
          "   * Scrolls the page horizontally and vertically to a specific point.",
          "   *",
          "   * This method is identical to [scrollTo].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window scroll] (http://docs.webplatform.org/wiki/dom/methods/scroll)",
          "   * from WebPlatform.org.",
          "   */"
        ],
        "scrollbars": [
          "/**",
          "   * This window's scroll bars.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface elements]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#browser-interface-elements)",
          "   * from WHATWG.",
          "   */"
        ],
        "scrollBy": [
          "/**",
          "   * Scrolls the page horizontally and vertically by an offset.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window scrollBy] (http://docs.webplatform.org/wiki/dom/methods/scrollBy)",
          "   * from WebPlatform.org.",
          "   */"
        ],
        "scrollTo": [
          "/**",
          "   * Scrolls the page horizontally and vertically to a specific point.",
          "   *",
          "   * This method is identical to [scroll].",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window scrollTo] (http://docs.webplatform.org/wiki/dom/methods/scrollTo)",
          "   * from WebPlatform.org.",
          "   */"
        ],
        "self": [
          "/**",
          "   * The current window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.self]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/API/Window.self) from MDN.",
          "   */"
        ],
        "sessionStorage": [
          "/**",
          "   * Storage for this window that is cleared when this session ends.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [DOM storage guide]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage) from",
          "   * MDN.",
          "   * * [The past, present & future of local storage for web applications]",
          "   * (http://diveintohtml5.info/storage.html) from Dive Into HTML5.",
          "   * * [Local storage specification]",
          "   * (http://www.w3.org/TR/webstorage/#dom-sessionstorage) from W3C.",
          "   */"
        ],
        "showModalDialog": [
          "/**",
          "   * Opens a new page as a modal dialog.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Dialogs implemented using separate documents]",
          "   * (http://www.w3.org/html/wg/drafts/html/master/webappapis.html#dialogs-implemented-using-separate-documents)",
          "   * from W3C.",
          "   */"
        ],
        "speechSynthesis": [
          "/**",
          "   * Access to speech synthesis in the browser.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Web speech specification]",
          "   * (https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section)",
          "   * from W3C.",
          "   */"
        ],
        "status": [
          "/// *Deprecated*."
        ],
        "statusbar": [
          "/**",
          "   * This window's status bar.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface elements]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#browser-interface-elements)",
          "   * from WHATWG.",
          "   */"
        ],
        "stop": [
          "/**",
          "   * Stops the window from loading.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [The Window object]",
          "   * (http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-window-object)",
          "   * from W3C.",
          "   */"
        ],
        "storageEvent": [
          "/**",
          "   * Static factory designed to expose `storage` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "styleMedia": [
          "/**",
          "   * Access to CSS media queries.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [StyleMedia class reference]",
          "   * (https://developer.apple.com/library/safari/documentation/SafariDOMAdditions/Reference/StyleMedia/StyleMedia/StyleMedia.html)",
          "   * from Safari Developer Library.",
          "   */"
        ],
        "TEMPORARY": [
          "/**",
          "   * Indicates that file system data can be cleared at any time.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Exploring the FileSystem APIs]",
          "   * (http://www.html5rocks.com/en/tutorials/file/filesystem/) from HTML5Rocks.",
          "   * * [File API]",
          "   * (http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem) from W3C.",
          "   */"
        ],
        "toolbar": [
          "/**",
          "   * This window's tool bar.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Browser interface elements]",
          "   * (http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#browser-interface-elements)",
          "   * from WHATWG.",
          "   */"
        ],
        "unloadEvent": [
          "/**",
          "   * Static factory designed to expose `unload` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitAnimationEndEvent": [
          "/**",
          "   * Static factory designed to expose `animationend` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitAnimationIterationEvent": [
          "/**",
          "   * Static factory designed to expose `animationiteration` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitAnimationStartEvent": [
          "/**",
          "   * Static factory designed to expose `animationstart` events to event",
          "   * handlers that are not necessarily instances of [Window].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "webkitResolveLocalFileSystemURL": [
          "/**",
          "   * Asynchronously retrieves a local filesystem entry.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Obtaining access to file system entry points]",
          "   * (http://www.w3.org/TR/file-system-api/#obtaining-access-to-file-system-entry-points)",
          "   * from W3C.",
          "   */"
        ],
        "window": [
          "/**",
          "   * The current window.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Window.window]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/API/Window.window) from MDN.",
          "   */"
        ]
      }
    },
    "Worker": {
      "members": {
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [Worker].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "messageEvent": [
          "/**",
          "   * Static factory designed to expose `message` events to event",
          "   * handlers that are not necessarily instances of [Worker].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [Worker]."
        ],
        "onmessage": [
          "/// Stream of `message` events handled by this [Worker]."
        ]
      }
    },
    "WorkerGlobalScope": {
      "members": {
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [WorkerGlobalScope].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [WorkerGlobalScope]."
        ]
      }
    },
    "XMLHttpRequest": {
      "members": {
        "abort": [
          "/**",
          "   * Stop the current request.",
          "   *",
          "   * The request can only be stopped if readyState is `HEADERS_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.",
          "   *",
          "   * The [bufferData] 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.",
          "   *",
          "   * The [bufferSubData] 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].",
          "   *",
          "   * The [texImage2D] 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].",
          "   *",
          "   * The [texSubImage2D] 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.",
          "   */"
        ]
      }
    }
  }
}
