// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// WARNING: Do not edit - generated code.

class _DocumentWrappingImplementation extends _NodeWrappingImplementation implements Document {
  _DocumentWrappingImplementation() : super() {}

  static create__DocumentWrappingImplementation() native {
    return new _DocumentWrappingImplementation();
  }

  String get URL() { return _get__Document_URL(this); }
  static String _get__Document_URL(var _this) native;

  HTMLCollection get anchors() { return _get__Document_anchors(this); }
  static HTMLCollection _get__Document_anchors(var _this) native;

  HTMLCollection get applets() { return _get__Document_applets(this); }
  static HTMLCollection _get__Document_applets(var _this) native;

  HTMLElement get body() { return _get__Document_body(this); }
  static HTMLElement _get__Document_body(var _this) native;

  void set body(HTMLElement value) { _set__Document_body(this, value); }
  static void _set__Document_body(var _this, HTMLElement value) native;

  String get characterSet() { return _get__Document_characterSet(this); }
  static String _get__Document_characterSet(var _this) native;

  String get charset() { return _get__Document_charset(this); }
  static String _get__Document_charset(var _this) native;

  void set charset(String value) { _set__Document_charset(this, value); }
  static void _set__Document_charset(var _this, String value) native;

  String get compatMode() { return _get__Document_compatMode(this); }
  static String _get__Document_compatMode(var _this) native;

  String get cookie() { return _get__Document_cookie(this); }
  static String _get__Document_cookie(var _this) native;

  void set cookie(String value) { _set__Document_cookie(this, value); }
  static void _set__Document_cookie(var _this, String value) native;

  String get defaultCharset() { return _get__Document_defaultCharset(this); }
  static String _get__Document_defaultCharset(var _this) native;

  DOMWindow get defaultView() { return _get__Document_defaultView(this); }
  static DOMWindow _get__Document_defaultView(var _this) native;

  DocumentType get doctype() { return _get__Document_doctype(this); }
  static DocumentType _get__Document_doctype(var _this) native;

  Element get documentElement() { return _get__Document_documentElement(this); }
  static Element _get__Document_documentElement(var _this) native;

  String get documentURI() { return _get__Document_documentURI(this); }
  static String _get__Document_documentURI(var _this) native;

  void set documentURI(String value) { _set__Document_documentURI(this, value); }
  static void _set__Document_documentURI(var _this, String value) native;

  String get domain() { return _get__Document_domain(this); }
  static String _get__Document_domain(var _this) native;

  HTMLCollection get forms() { return _get__Document_forms(this); }
  static HTMLCollection _get__Document_forms(var _this) native;

  HTMLHeadElement get head() { return _get__Document_head(this); }
  static HTMLHeadElement _get__Document_head(var _this) native;

  HTMLCollection get images() { return _get__Document_images(this); }
  static HTMLCollection _get__Document_images(var _this) native;

  DOMImplementation get implementation() { return _get__Document_implementation(this); }
  static DOMImplementation _get__Document_implementation(var _this) native;

  String get inputEncoding() { return _get__Document_inputEncoding(this); }
  static String _get__Document_inputEncoding(var _this) native;

  String get lastModified() { return _get__Document_lastModified(this); }
  static String _get__Document_lastModified(var _this) native;

  HTMLCollection get links() { return _get__Document_links(this); }
  static HTMLCollection _get__Document_links(var _this) native;

  EventListener get onabort() { return _get__Document_onabort(this); }
  static EventListener _get__Document_onabort(var _this) native;

  void set onabort(EventListener value) { _set__Document_onabort(this, value); }
  static void _set__Document_onabort(var _this, EventListener value) native;

  EventListener get onbeforecopy() { return _get__Document_onbeforecopy(this); }
  static EventListener _get__Document_onbeforecopy(var _this) native;

  void set onbeforecopy(EventListener value) { _set__Document_onbeforecopy(this, value); }
  static void _set__Document_onbeforecopy(var _this, EventListener value) native;

  EventListener get onbeforecut() { return _get__Document_onbeforecut(this); }
  static EventListener _get__Document_onbeforecut(var _this) native;

  void set onbeforecut(EventListener value) { _set__Document_onbeforecut(this, value); }
  static void _set__Document_onbeforecut(var _this, EventListener value) native;

  EventListener get onbeforepaste() { return _get__Document_onbeforepaste(this); }
  static EventListener _get__Document_onbeforepaste(var _this) native;

  void set onbeforepaste(EventListener value) { _set__Document_onbeforepaste(this, value); }
  static void _set__Document_onbeforepaste(var _this, EventListener value) native;

  EventListener get onblur() { return _get__Document_onblur(this); }
  static EventListener _get__Document_onblur(var _this) native;

  void set onblur(EventListener value) { _set__Document_onblur(this, value); }
  static void _set__Document_onblur(var _this, EventListener value) native;

  EventListener get onchange() { return _get__Document_onchange(this); }
  static EventListener _get__Document_onchange(var _this) native;

  void set onchange(EventListener value) { _set__Document_onchange(this, value); }
  static void _set__Document_onchange(var _this, EventListener value) native;

  EventListener get onclick() { return _get__Document_onclick(this); }
  static EventListener _get__Document_onclick(var _this) native;

  void set onclick(EventListener value) { _set__Document_onclick(this, value); }
  static void _set__Document_onclick(var _this, EventListener value) native;

  EventListener get oncontextmenu() { return _get__Document_oncontextmenu(this); }
  static EventListener _get__Document_oncontextmenu(var _this) native;

  void set oncontextmenu(EventListener value) { _set__Document_oncontextmenu(this, value); }
  static void _set__Document_oncontextmenu(var _this, EventListener value) native;

  EventListener get oncopy() { return _get__Document_oncopy(this); }
  static EventListener _get__Document_oncopy(var _this) native;

  void set oncopy(EventListener value) { _set__Document_oncopy(this, value); }
  static void _set__Document_oncopy(var _this, EventListener value) native;

  EventListener get oncut() { return _get__Document_oncut(this); }
  static EventListener _get__Document_oncut(var _this) native;

  void set oncut(EventListener value) { _set__Document_oncut(this, value); }
  static void _set__Document_oncut(var _this, EventListener value) native;

  EventListener get ondblclick() { return _get__Document_ondblclick(this); }
  static EventListener _get__Document_ondblclick(var _this) native;

  void set ondblclick(EventListener value) { _set__Document_ondblclick(this, value); }
  static void _set__Document_ondblclick(var _this, EventListener value) native;

  EventListener get ondrag() { return _get__Document_ondrag(this); }
  static EventListener _get__Document_ondrag(var _this) native;

  void set ondrag(EventListener value) { _set__Document_ondrag(this, value); }
  static void _set__Document_ondrag(var _this, EventListener value) native;

  EventListener get ondragend() { return _get__Document_ondragend(this); }
  static EventListener _get__Document_ondragend(var _this) native;

  void set ondragend(EventListener value) { _set__Document_ondragend(this, value); }
  static void _set__Document_ondragend(var _this, EventListener value) native;

  EventListener get ondragenter() { return _get__Document_ondragenter(this); }
  static EventListener _get__Document_ondragenter(var _this) native;

  void set ondragenter(EventListener value) { _set__Document_ondragenter(this, value); }
  static void _set__Document_ondragenter(var _this, EventListener value) native;

  EventListener get ondragleave() { return _get__Document_ondragleave(this); }
  static EventListener _get__Document_ondragleave(var _this) native;

  void set ondragleave(EventListener value) { _set__Document_ondragleave(this, value); }
  static void _set__Document_ondragleave(var _this, EventListener value) native;

  EventListener get ondragover() { return _get__Document_ondragover(this); }
  static EventListener _get__Document_ondragover(var _this) native;

  void set ondragover(EventListener value) { _set__Document_ondragover(this, value); }
  static void _set__Document_ondragover(var _this, EventListener value) native;

  EventListener get ondragstart() { return _get__Document_ondragstart(this); }
  static EventListener _get__Document_ondragstart(var _this) native;

  void set ondragstart(EventListener value) { _set__Document_ondragstart(this, value); }
  static void _set__Document_ondragstart(var _this, EventListener value) native;

  EventListener get ondrop() { return _get__Document_ondrop(this); }
  static EventListener _get__Document_ondrop(var _this) native;

  void set ondrop(EventListener value) { _set__Document_ondrop(this, value); }
  static void _set__Document_ondrop(var _this, EventListener value) native;

  EventListener get onerror() { return _get__Document_onerror(this); }
  static EventListener _get__Document_onerror(var _this) native;

  void set onerror(EventListener value) { _set__Document_onerror(this, value); }
  static void _set__Document_onerror(var _this, EventListener value) native;

  EventListener get onfocus() { return _get__Document_onfocus(this); }
  static EventListener _get__Document_onfocus(var _this) native;

  void set onfocus(EventListener value) { _set__Document_onfocus(this, value); }
  static void _set__Document_onfocus(var _this, EventListener value) native;

  EventListener get oninput() { return _get__Document_oninput(this); }
  static EventListener _get__Document_oninput(var _this) native;

  void set oninput(EventListener value) { _set__Document_oninput(this, value); }
  static void _set__Document_oninput(var _this, EventListener value) native;

  EventListener get oninvalid() { return _get__Document_oninvalid(this); }
  static EventListener _get__Document_oninvalid(var _this) native;

  void set oninvalid(EventListener value) { _set__Document_oninvalid(this, value); }
  static void _set__Document_oninvalid(var _this, EventListener value) native;

  EventListener get onkeydown() { return _get__Document_onkeydown(this); }
  static EventListener _get__Document_onkeydown(var _this) native;

  void set onkeydown(EventListener value) { _set__Document_onkeydown(this, value); }
  static void _set__Document_onkeydown(var _this, EventListener value) native;

  EventListener get onkeypress() { return _get__Document_onkeypress(this); }
  static EventListener _get__Document_onkeypress(var _this) native;

  void set onkeypress(EventListener value) { _set__Document_onkeypress(this, value); }
  static void _set__Document_onkeypress(var _this, EventListener value) native;

  EventListener get onkeyup() { return _get__Document_onkeyup(this); }
  static EventListener _get__Document_onkeyup(var _this) native;

  void set onkeyup(EventListener value) { _set__Document_onkeyup(this, value); }
  static void _set__Document_onkeyup(var _this, EventListener value) native;

  EventListener get onload() { return _get__Document_onload(this); }
  static EventListener _get__Document_onload(var _this) native;

  void set onload(EventListener value) { _set__Document_onload(this, value); }
  static void _set__Document_onload(var _this, EventListener value) native;

  EventListener get onmousedown() { return _get__Document_onmousedown(this); }
  static EventListener _get__Document_onmousedown(var _this) native;

  void set onmousedown(EventListener value) { _set__Document_onmousedown(this, value); }
  static void _set__Document_onmousedown(var _this, EventListener value) native;

  EventListener get onmousemove() { return _get__Document_onmousemove(this); }
  static EventListener _get__Document_onmousemove(var _this) native;

  void set onmousemove(EventListener value) { _set__Document_onmousemove(this, value); }
  static void _set__Document_onmousemove(var _this, EventListener value) native;

  EventListener get onmouseout() { return _get__Document_onmouseout(this); }
  static EventListener _get__Document_onmouseout(var _this) native;

  void set onmouseout(EventListener value) { _set__Document_onmouseout(this, value); }
  static void _set__Document_onmouseout(var _this, EventListener value) native;

  EventListener get onmouseover() { return _get__Document_onmouseover(this); }
  static EventListener _get__Document_onmouseover(var _this) native;

  void set onmouseover(EventListener value) { _set__Document_onmouseover(this, value); }
  static void _set__Document_onmouseover(var _this, EventListener value) native;

  EventListener get onmouseup() { return _get__Document_onmouseup(this); }
  static EventListener _get__Document_onmouseup(var _this) native;

  void set onmouseup(EventListener value) { _set__Document_onmouseup(this, value); }
  static void _set__Document_onmouseup(var _this, EventListener value) native;

  EventListener get onmousewheel() { return _get__Document_onmousewheel(this); }
  static EventListener _get__Document_onmousewheel(var _this) native;

  void set onmousewheel(EventListener value) { _set__Document_onmousewheel(this, value); }
  static void _set__Document_onmousewheel(var _this, EventListener value) native;

  EventListener get onpaste() { return _get__Document_onpaste(this); }
  static EventListener _get__Document_onpaste(var _this) native;

  void set onpaste(EventListener value) { _set__Document_onpaste(this, value); }
  static void _set__Document_onpaste(var _this, EventListener value) native;

  EventListener get onreadystatechange() { return _get__Document_onreadystatechange(this); }
  static EventListener _get__Document_onreadystatechange(var _this) native;

  void set onreadystatechange(EventListener value) { _set__Document_onreadystatechange(this, value); }
  static void _set__Document_onreadystatechange(var _this, EventListener value) native;

  EventListener get onreset() { return _get__Document_onreset(this); }
  static EventListener _get__Document_onreset(var _this) native;

  void set onreset(EventListener value) { _set__Document_onreset(this, value); }
  static void _set__Document_onreset(var _this, EventListener value) native;

  EventListener get onscroll() { return _get__Document_onscroll(this); }
  static EventListener _get__Document_onscroll(var _this) native;

  void set onscroll(EventListener value) { _set__Document_onscroll(this, value); }
  static void _set__Document_onscroll(var _this, EventListener value) native;

  EventListener get onsearch() { return _get__Document_onsearch(this); }
  static EventListener _get__Document_onsearch(var _this) native;

  void set onsearch(EventListener value) { _set__Document_onsearch(this, value); }
  static void _set__Document_onsearch(var _this, EventListener value) native;

  EventListener get onselect() { return _get__Document_onselect(this); }
  static EventListener _get__Document_onselect(var _this) native;

  void set onselect(EventListener value) { _set__Document_onselect(this, value); }
  static void _set__Document_onselect(var _this, EventListener value) native;

  EventListener get onselectionchange() { return _get__Document_onselectionchange(this); }
  static EventListener _get__Document_onselectionchange(var _this) native;

  void set onselectionchange(EventListener value) { _set__Document_onselectionchange(this, value); }
  static void _set__Document_onselectionchange(var _this, EventListener value) native;

  EventListener get onselectstart() { return _get__Document_onselectstart(this); }
  static EventListener _get__Document_onselectstart(var _this) native;

  void set onselectstart(EventListener value) { _set__Document_onselectstart(this, value); }
  static void _set__Document_onselectstart(var _this, EventListener value) native;

  EventListener get onsubmit() { return _get__Document_onsubmit(this); }
  static EventListener _get__Document_onsubmit(var _this) native;

  void set onsubmit(EventListener value) { _set__Document_onsubmit(this, value); }
  static void _set__Document_onsubmit(var _this, EventListener value) native;

  EventListener get ontouchcancel() { return _get__Document_ontouchcancel(this); }
  static EventListener _get__Document_ontouchcancel(var _this) native;

  void set ontouchcancel(EventListener value) { _set__Document_ontouchcancel(this, value); }
  static void _set__Document_ontouchcancel(var _this, EventListener value) native;

  EventListener get ontouchend() { return _get__Document_ontouchend(this); }
  static EventListener _get__Document_ontouchend(var _this) native;

  void set ontouchend(EventListener value) { _set__Document_ontouchend(this, value); }
  static void _set__Document_ontouchend(var _this, EventListener value) native;

  EventListener get ontouchmove() { return _get__Document_ontouchmove(this); }
  static EventListener _get__Document_ontouchmove(var _this) native;

  void set ontouchmove(EventListener value) { _set__Document_ontouchmove(this, value); }
  static void _set__Document_ontouchmove(var _this, EventListener value) native;

  EventListener get ontouchstart() { return _get__Document_ontouchstart(this); }
  static EventListener _get__Document_ontouchstart(var _this) native;

  void set ontouchstart(EventListener value) { _set__Document_ontouchstart(this, value); }
  static void _set__Document_ontouchstart(var _this, EventListener value) native;

  EventListener get onwebkitfullscreenchange() { return _get__Document_onwebkitfullscreenchange(this); }
  static EventListener _get__Document_onwebkitfullscreenchange(var _this) native;

  void set onwebkitfullscreenchange(EventListener value) { _set__Document_onwebkitfullscreenchange(this, value); }
  static void _set__Document_onwebkitfullscreenchange(var _this, EventListener value) native;

  String get preferredStylesheetSet() { return _get__Document_preferredStylesheetSet(this); }
  static String _get__Document_preferredStylesheetSet(var _this) native;

  String get readyState() { return _get__Document_readyState(this); }
  static String _get__Document_readyState(var _this) native;

  String get referrer() { return _get__Document_referrer(this); }
  static String _get__Document_referrer(var _this) native;

  String get selectedStylesheetSet() { return _get__Document_selectedStylesheetSet(this); }
  static String _get__Document_selectedStylesheetSet(var _this) native;

  void set selectedStylesheetSet(String value) { _set__Document_selectedStylesheetSet(this, value); }
  static void _set__Document_selectedStylesheetSet(var _this, String value) native;

  StyleSheetList get styleSheets() { return _get__Document_styleSheets(this); }
  static StyleSheetList _get__Document_styleSheets(var _this) native;

  String get title() { return _get__Document_title(this); }
  static String _get__Document_title(var _this) native;

  void set title(String value) { _set__Document_title(this, value); }
  static void _set__Document_title(var _this, String value) native;

  bool get webkitHidden() { return _get__Document_webkitHidden(this); }
  static bool _get__Document_webkitHidden(var _this) native;

  String get webkitVisibilityState() { return _get__Document_webkitVisibilityState(this); }
  static String _get__Document_webkitVisibilityState(var _this) native;

  String get xmlEncoding() { return _get__Document_xmlEncoding(this); }
  static String _get__Document_xmlEncoding(var _this) native;

  bool get xmlStandalone() { return _get__Document_xmlStandalone(this); }
  static bool _get__Document_xmlStandalone(var _this) native;

  void set xmlStandalone(bool value) { _set__Document_xmlStandalone(this, value); }
  static void _set__Document_xmlStandalone(var _this, bool value) native;

  String get xmlVersion() { return _get__Document_xmlVersion(this); }
  static String _get__Document_xmlVersion(var _this) native;

  void set xmlVersion(String value) { _set__Document_xmlVersion(this, value); }
  static void _set__Document_xmlVersion(var _this, String value) native;

  Node adoptNode(Node source = null) {
    if (source === null) {
      return _adoptNode(this);
    } else {
      return _adoptNode_2(this, source);
    }
  }
  static Node _adoptNode(receiver) native;
  static Node _adoptNode_2(receiver, source) native;

  Range caretRangeFromPoint(int x = null, int y = null) {
    if (x === null) {
      if (y === null) {
        return _caretRangeFromPoint(this);
      }
    } else {
      if (y === null) {
        return _caretRangeFromPoint_2(this, x);
      } else {
        return _caretRangeFromPoint_3(this, x, y);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static Range _caretRangeFromPoint(receiver) native;
  static Range _caretRangeFromPoint_2(receiver, x) native;
  static Range _caretRangeFromPoint_3(receiver, x, y) native;

  Attr createAttribute(String name = null) {
    if (name === null) {
      return _createAttribute(this);
    } else {
      return _createAttribute_2(this, name);
    }
  }
  static Attr _createAttribute(receiver) native;
  static Attr _createAttribute_2(receiver, name) native;

  Attr createAttributeNS(String namespaceURI = null, String qualifiedName = null) {
    if (namespaceURI === null) {
      if (qualifiedName === null) {
        return _createAttributeNS(this);
      }
    } else {
      if (qualifiedName === null) {
        return _createAttributeNS_2(this, namespaceURI);
      } else {
        return _createAttributeNS_3(this, namespaceURI, qualifiedName);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static Attr _createAttributeNS(receiver) native;
  static Attr _createAttributeNS_2(receiver, namespaceURI) native;
  static Attr _createAttributeNS_3(receiver, namespaceURI, qualifiedName) native;

  CDATASection createCDATASection(String data = null) {
    if (data === null) {
      return _createCDATASection(this);
    } else {
      return _createCDATASection_2(this, data);
    }
  }
  static CDATASection _createCDATASection(receiver) native;
  static CDATASection _createCDATASection_2(receiver, data) native;

  CSSStyleDeclaration createCSSStyleDeclaration() {
    return _createCSSStyleDeclaration(this);
  }
  static CSSStyleDeclaration _createCSSStyleDeclaration(receiver) native;

  Comment createComment(String data = null) {
    if (data === null) {
      return _createComment(this);
    } else {
      return _createComment_2(this, data);
    }
  }
  static Comment _createComment(receiver) native;
  static Comment _createComment_2(receiver, data) native;

  DocumentFragment createDocumentFragment() {
    return _createDocumentFragment(this);
  }
  static DocumentFragment _createDocumentFragment(receiver) native;

  Element createElement(String tagName = null) {
    if (tagName === null) {
      return _createElement(this);
    } else {
      return _createElement_2(this, tagName);
    }
  }
  static Element _createElement(receiver) native;
  static Element _createElement_2(receiver, tagName) native;

  Element createElementNS(String namespaceURI = null, String qualifiedName = null) {
    if (namespaceURI === null) {
      if (qualifiedName === null) {
        return _createElementNS(this);
      }
    } else {
      if (qualifiedName === null) {
        return _createElementNS_2(this, namespaceURI);
      } else {
        return _createElementNS_3(this, namespaceURI, qualifiedName);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static Element _createElementNS(receiver) native;
  static Element _createElementNS_2(receiver, namespaceURI) native;
  static Element _createElementNS_3(receiver, namespaceURI, qualifiedName) native;

  EntityReference createEntityReference(String name = null) {
    if (name === null) {
      return _createEntityReference(this);
    } else {
      return _createEntityReference_2(this, name);
    }
  }
  static EntityReference _createEntityReference(receiver) native;
  static EntityReference _createEntityReference_2(receiver, name) native;

  Event createEvent(String eventType = null) {
    if (eventType === null) {
      return _createEvent(this);
    } else {
      return _createEvent_2(this, eventType);
    }
  }
  static Event _createEvent(receiver) native;
  static Event _createEvent_2(receiver, eventType) native;

  NodeIterator createNodeIterator(Node root = null, int whatToShow = null, NodeFilter filter = null, bool expandEntityReferences = null) {
    if (root === null) {
      if (whatToShow === null) {
        if (filter === null) {
          if (expandEntityReferences === null) {
            return _createNodeIterator(this);
          }
        }
      }
    } else {
      if (whatToShow === null) {
        if (filter === null) {
          if (expandEntityReferences === null) {
            return _createNodeIterator_2(this, root);
          }
        }
      } else {
        if (filter === null) {
          if (expandEntityReferences === null) {
            return _createNodeIterator_3(this, root, whatToShow);
          }
        } else {
          if (expandEntityReferences === null) {
            return _createNodeIterator_4(this, root, whatToShow, filter);
          } else {
            return _createNodeIterator_5(this, root, whatToShow, filter, expandEntityReferences);
          }
        }
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static NodeIterator _createNodeIterator(receiver) native;
  static NodeIterator _createNodeIterator_2(receiver, root) native;
  static NodeIterator _createNodeIterator_3(receiver, root, whatToShow) native;
  static NodeIterator _createNodeIterator_4(receiver, root, whatToShow, filter) native;
  static NodeIterator _createNodeIterator_5(receiver, root, whatToShow, filter, expandEntityReferences) native;

  ProcessingInstruction createProcessingInstruction(String target = null, String data = null) {
    if (target === null) {
      if (data === null) {
        return _createProcessingInstruction(this);
      }
    } else {
      if (data === null) {
        return _createProcessingInstruction_2(this, target);
      } else {
        return _createProcessingInstruction_3(this, target, data);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static ProcessingInstruction _createProcessingInstruction(receiver) native;
  static ProcessingInstruction _createProcessingInstruction_2(receiver, target) native;
  static ProcessingInstruction _createProcessingInstruction_3(receiver, target, data) native;

  Range createRange() {
    return _createRange(this);
  }
  static Range _createRange(receiver) native;

  Text createTextNode(String data = null) {
    if (data === null) {
      return _createTextNode(this);
    } else {
      return _createTextNode_2(this, data);
    }
  }
  static Text _createTextNode(receiver) native;
  static Text _createTextNode_2(receiver, data) native;

  TreeWalker createTreeWalker(Node root = null, int whatToShow = null, NodeFilter filter = null, bool expandEntityReferences = null) {
    if (root === null) {
      if (whatToShow === null) {
        if (filter === null) {
          if (expandEntityReferences === null) {
            return _createTreeWalker(this);
          }
        }
      }
    } else {
      if (whatToShow === null) {
        if (filter === null) {
          if (expandEntityReferences === null) {
            return _createTreeWalker_2(this, root);
          }
        }
      } else {
        if (filter === null) {
          if (expandEntityReferences === null) {
            return _createTreeWalker_3(this, root, whatToShow);
          }
        } else {
          if (expandEntityReferences === null) {
            return _createTreeWalker_4(this, root, whatToShow, filter);
          } else {
            return _createTreeWalker_5(this, root, whatToShow, filter, expandEntityReferences);
          }
        }
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static TreeWalker _createTreeWalker(receiver) native;
  static TreeWalker _createTreeWalker_2(receiver, root) native;
  static TreeWalker _createTreeWalker_3(receiver, root, whatToShow) native;
  static TreeWalker _createTreeWalker_4(receiver, root, whatToShow, filter) native;
  static TreeWalker _createTreeWalker_5(receiver, root, whatToShow, filter, expandEntityReferences) native;

  Element elementFromPoint(int x = null, int y = null) {
    if (x === null) {
      if (y === null) {
        return _elementFromPoint(this);
      }
    } else {
      if (y === null) {
        return _elementFromPoint_2(this, x);
      } else {
        return _elementFromPoint_3(this, x, y);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static Element _elementFromPoint(receiver) native;
  static Element _elementFromPoint_2(receiver, x) native;
  static Element _elementFromPoint_3(receiver, x, y) native;

  bool execCommand(String command = null, bool userInterface = null, String value = null) {
    if (command === null) {
      if (userInterface === null) {
        if (value === null) {
          return _execCommand(this);
        }
      }
    } else {
      if (userInterface === null) {
        if (value === null) {
          return _execCommand_2(this, command);
        }
      } else {
        if (value === null) {
          return _execCommand_3(this, command, userInterface);
        } else {
          return _execCommand_4(this, command, userInterface, value);
        }
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static bool _execCommand(receiver) native;
  static bool _execCommand_2(receiver, command) native;
  static bool _execCommand_3(receiver, command, userInterface) native;
  static bool _execCommand_4(receiver, command, userInterface, value) native;

  Object getCSSCanvasContext(String contextId, String name, int width, int height) {
    return _getCSSCanvasContext(this, contextId, name, width, height);
  }
  static Object _getCSSCanvasContext(receiver, contextId, name, width, height) native;

  Element getElementById(String elementId = null) {
    if (elementId === null) {
      return _getElementById(this);
    } else {
      return _getElementById_2(this, elementId);
    }
  }
  static Element _getElementById(receiver) native;
  static Element _getElementById_2(receiver, elementId) native;

  NodeList getElementsByClassName(String tagname = null) {
    if (tagname === null) {
      return _getElementsByClassName(this);
    } else {
      return _getElementsByClassName_2(this, tagname);
    }
  }
  static NodeList _getElementsByClassName(receiver) native;
  static NodeList _getElementsByClassName_2(receiver, tagname) native;

  NodeList getElementsByName(String elementName = null) {
    if (elementName === null) {
      return _getElementsByName(this);
    } else {
      return _getElementsByName_2(this, elementName);
    }
  }
  static NodeList _getElementsByName(receiver) native;
  static NodeList _getElementsByName_2(receiver, elementName) native;

  NodeList getElementsByTagName(String tagname = null) {
    if (tagname === null) {
      return _getElementsByTagName(this);
    } else {
      return _getElementsByTagName_2(this, tagname);
    }
  }
  static NodeList _getElementsByTagName(receiver) native;
  static NodeList _getElementsByTagName_2(receiver, tagname) native;

  NodeList getElementsByTagNameNS(String namespaceURI = null, String localName = null) {
    if (namespaceURI === null) {
      if (localName === null) {
        return _getElementsByTagNameNS(this);
      }
    } else {
      if (localName === null) {
        return _getElementsByTagNameNS_2(this, namespaceURI);
      } else {
        return _getElementsByTagNameNS_3(this, namespaceURI, localName);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static NodeList _getElementsByTagNameNS(receiver) native;
  static NodeList _getElementsByTagNameNS_2(receiver, namespaceURI) native;
  static NodeList _getElementsByTagNameNS_3(receiver, namespaceURI, localName) native;

  CSSStyleDeclaration getOverrideStyle(Element element = null, String pseudoElement = null) {
    if (element === null) {
      if (pseudoElement === null) {
        return _getOverrideStyle(this);
      }
    } else {
      if (pseudoElement === null) {
        return _getOverrideStyle_2(this, element);
      } else {
        return _getOverrideStyle_3(this, element, pseudoElement);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static CSSStyleDeclaration _getOverrideStyle(receiver) native;
  static CSSStyleDeclaration _getOverrideStyle_2(receiver, element) native;
  static CSSStyleDeclaration _getOverrideStyle_3(receiver, element, pseudoElement) native;

  Node importNode(Node importedNode = null, bool deep = null) {
    if (importedNode === null) {
      if (deep === null) {
        return _importNode(this);
      }
    } else {
      if (deep === null) {
        return _importNode_2(this, importedNode);
      } else {
        return _importNode_3(this, importedNode, deep);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static Node _importNode(receiver) native;
  static Node _importNode_2(receiver, importedNode) native;
  static Node _importNode_3(receiver, importedNode, deep) native;

  bool queryCommandEnabled(String command = null) {
    if (command === null) {
      return _queryCommandEnabled(this);
    } else {
      return _queryCommandEnabled_2(this, command);
    }
  }
  static bool _queryCommandEnabled(receiver) native;
  static bool _queryCommandEnabled_2(receiver, command) native;

  bool queryCommandIndeterm(String command = null) {
    if (command === null) {
      return _queryCommandIndeterm(this);
    } else {
      return _queryCommandIndeterm_2(this, command);
    }
  }
  static bool _queryCommandIndeterm(receiver) native;
  static bool _queryCommandIndeterm_2(receiver, command) native;

  bool queryCommandState(String command = null) {
    if (command === null) {
      return _queryCommandState(this);
    } else {
      return _queryCommandState_2(this, command);
    }
  }
  static bool _queryCommandState(receiver) native;
  static bool _queryCommandState_2(receiver, command) native;

  bool queryCommandSupported(String command = null) {
    if (command === null) {
      return _queryCommandSupported(this);
    } else {
      return _queryCommandSupported_2(this, command);
    }
  }
  static bool _queryCommandSupported(receiver) native;
  static bool _queryCommandSupported_2(receiver, command) native;

  String queryCommandValue(String command = null) {
    if (command === null) {
      return _queryCommandValue(this);
    } else {
      return _queryCommandValue_2(this, command);
    }
  }
  static String _queryCommandValue(receiver) native;
  static String _queryCommandValue_2(receiver, command) native;

  Element querySelector(String selectors) {
    return _querySelector(this, selectors);
  }
  static Element _querySelector(receiver, selectors) native;

  NodeList querySelectorAll(String selectors) {
    return _querySelectorAll(this, selectors);
  }
  static NodeList _querySelectorAll(receiver, selectors) native;

  String get typeName() { return "Document"; }
}
