{
  "dart.dom.html": {
    "AbstractWorker": {
      "members": {
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [AbstractWorker].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [AbstractWorker]."
        ]
      }
    },
    "ApplicationCache": {
      "comment": [
        "/**",
        " * ApplicationCache is accessed via [Window.applicationCache].",
        " */"
      ],
      "members": {
        "cachedEvent": [
          "/**",
          "   * Static factory designed to expose `cached` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "checkingEvent": [
          "/**",
          "   * Static factory designed to expose `checking` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "downloadingEvent": [
          "/**",
          "   * Static factory designed to expose `downloading` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "errorEvent": [
          "/**",
          "   * Static factory designed to expose `error` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "noupdateEvent": [
          "/**",
          "   * Static factory designed to expose `noupdate` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "obsoleteEvent": [
          "/**",
          "   * Static factory designed to expose `obsolete` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "oncached": [
          "/// Stream of `cached` events handled by this [ApplicationCache]."
        ],
        "onchecking": [
          "/// Stream of `checking` events handled by this [ApplicationCache]."
        ],
        "ondownloading": [
          "/// Stream of `downloading` events handled by this [ApplicationCache]."
        ],
        "onerror": [
          "/// Stream of `error` events handled by this [ApplicationCache]."
        ],
        "onnoupdate": [
          "/// Stream of `noupdate` events handled by this [ApplicationCache]."
        ],
        "onobsolete": [
          "/// Stream of `obsolete` events handled by this [ApplicationCache]."
        ],
        "onprogress": [
          "/// Stream of `progress` events handled by this [ApplicationCache]."
        ],
        "onupdateready": [
          "/// Stream of `updateready` events handled by this [ApplicationCache]."
        ],
        "progressEvent": [
          "/**",
          "   * Static factory designed to expose `progress` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ],
        "updatereadyEvent": [
          "/**",
          "   * Static factory designed to expose `updateready` events to event",
          "   * handlers that are not necessarily instances of [ApplicationCache].",
          "   *",
          "   * See [EventStreamProvider] for usage information.",
          "   */"
        ]
      }
    },
    "CanvasGradient": {
      "comment": [
        "/**",
        " * An opaque canvas object representing a gradient.",
        " *",
        " * Created by calling [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]."
        ]
      }
    },
    "MouseEvent": {
      "members": {
        "fromElement": [
          "/**",
          "   * The nonstandard way to access the element that the mouse comes",
          "   * from in the case of a `mouseover` event.",
          "   *",
          "   * This member is deprecated and not cross-browser compatible; use",
          "   * relatedTarget to get the same information in the standard way.",
          "   */"
        ],
        "toElement": [
          "/**",
          "   * The nonstandard way to access the element that the mouse goes",
          "   * to in the case of a `mouseout` event.",
          "   *",
          "   * This member is deprecated and not cross-browser compatible; use",
          "   * relatedTarget to get the same information in the standard way.",
          "   */"
        ]
      }
    },
    "Node": {
      "members": {
        "appendChild": [
          "/**",
          "   * Adds a node to the end of the child [nodes] list of this node.",
          "   *",
          "   * If the node already exists in this document, it will be removed from its",
          "   * current parent node, then added to this node.",
          "   *",
          "   * This method is more efficient than `nodes.add`, and is the preferred",
          "   * way of appending a child node.",
          "   */"
        ],
        "childNodes": [
          "/**",
          "   * A list of this node's children.",
          "   *",
          "   * ## Other resources",
          "   *",
          "   * * [Node.childNodes]",
          "   * (https://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes)",
          "   * from MDN.",
          "   */"
        ],
        "cloneNode": [
          "/**",
          "   * Returns a copy of this node.",
          "   *",
          "   * If [deep] is `true`, then all of this node's children and 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.",
          "   */"
        ]
      }
    }
  }
}
