2 * Copyright 2008 The Closure Compiler Authors
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * @fileoverview Definitions for all the extensions over
19 * W3C's DOM specification by Gecko. This file depends on
22 * When a non-standard extension appears in both Gecko and IE, we put
28 // TODO: Almost all of it has not been annotated with types.
35 * @extends {HTMLElement}
37 function HTMLSpanElement() {}
40 * @see https://developer.mozilla.org/en/Components_object
42 Window.prototype.Components;
46 * @see https://developer.mozilla.org/en/DOM/window.content
48 Window.prototype.content;
52 * @see https://developer.mozilla.org/en/DOM/window.closed
54 Window.prototype.closed;
56 /** @see https://developer.mozilla.org/en/DOM/window.controllers */
57 Window.prototype.controllers;
59 /** @see https://developer.mozilla.org/en/DOM/window.crypto */
60 Window.prototype.crypto;
63 * Gets/sets the status bar text for the given window.
65 * @see https://developer.mozilla.org/en/DOM/window.defaultStatus
67 Window.prototype.defaultStatus;
69 /** @see https://developer.mozilla.org/en/DOM/window.dialogArguments */
70 Window.prototype.dialogArguments;
72 /** @see https://developer.mozilla.org/en/DOM/window.directories */
73 Window.prototype.directories;
76 * @type {HTMLObjectElement|HTMLIFrameElement|null}
77 * @see https://developer.mozilla.org/en/DOM/window.frameElement
79 Window.prototype.frameElement;
82 * Allows lookup of frames by index or by name.
84 * @see https://developer.mozilla.org/en/DOM/window.frames
86 Window.prototype.frames;
90 * @see https://developer.mozilla.org/en/DOM/window.fullScreen
92 Window.prototype.fullScreen;
95 * @see https://developer.mozilla.org/en/DOM/Storage#globalStorage
97 Window.prototype.globalStorage;
101 * @see https://developer.mozilla.org/en/DOM/window.history
103 Window.prototype.history;
106 * Returns the number of frames (either frame or iframe elements) in the
110 * @see https://developer.mozilla.org/en/DOM/window.length
112 Window.prototype.length;
117 * @see https://developer.mozilla.org/en/DOM/window.location
119 Window.prototype.location;
122 * @see https://developer.mozilla.org/en/DOM/window.locationbar
124 Window.prototype.locationbar;
127 * @see https://developer.mozilla.org/en/DOM/window.menubar
129 Window.prototype.menubar;
133 * @see https://developer.mozilla.org/en/DOM/window.name
135 Window.prototype.name;
139 * @see https://developer.mozilla.org/en/DOM/window.navigator
141 Window.prototype.navigator;
145 * @see https://developer.mozilla.org/en/DOM/window.opener
147 Window.prototype.opener;
151 * @see https://developer.mozilla.org/en/DOM/window.parent
153 Window.prototype.parent;
155 /** @see https://developer.mozilla.org/en/DOM/window.personalbar */
156 Window.prototype.personalbar;
158 /** @see https://developer.mozilla.org/en/DOM/window.pkcs11 */
159 Window.prototype.pkcs11;
161 /** @see https://developer.mozilla.org/en/DOM/window */
162 Window.prototype.returnValue;
164 /** @see https://developer.mozilla.org/en/DOM/window.scrollbars */
165 Window.prototype.scrollbars;
169 * @see https://developer.mozilla.org/En/DOM/window.scrollMaxX
171 Window.prototype.scrollMaxX;
175 * @see https://developer.mozilla.org/En/DOM/window.scrollMaxY
177 Window.prototype.scrollMaxY;
181 * @see https://developer.mozilla.org/en/DOM/window.self
183 Window.prototype.self;
185 /** @see https://developer.mozilla.org/en/DOM/Storage#sessionStorage */
186 Window.prototype.sessionStorage;
188 /** @see https://developer.mozilla.org/en/DOM/window.sidebar */
189 Window.prototype.sidebar;
193 * @see https://developer.mozilla.org/en/DOM/window.status
195 Window.prototype.status;
197 /** @see https://developer.mozilla.org/en/DOM/window.statusbar */
198 Window.prototype.statusbar;
200 /** @see https://developer.mozilla.org/en/DOM/window.toolbar */
201 Window.prototype.toolbar;
205 * @see https://developer.mozilla.org/en/DOM/window.self
207 Window.prototype.top;
211 * @see https://developer.mozilla.org/en/DOM/window.self
213 Window.prototype.window;
217 * @see https://developer.mozilla.org/en/DOM/window.alert
219 Window.prototype.alert = function(message) {};
222 * Decodes a string of data which has been encoded using base-64 encoding.
224 * @param {string} encodedData
226 * @see https://developer.mozilla.org/en/DOM/window.atob
229 function atob(encodedData) {}
231 /** @see https://developer.mozilla.org/en/DOM/window.back */
232 Window.prototype.back = function() {};
234 /** @see https://developer.mozilla.org/en/DOM/window.blur */
235 Window.prototype.blur = function() {};
238 * @param {string} stringToEncode
240 * @see https://developer.mozilla.org/en/DOM/window.btoa
243 function btoa(stringToEncode) {}
246 Window.prototype.captureEvents;
248 /** @see https://developer.mozilla.org/en/DOM/window.close */
249 Window.prototype.close = function() {};
251 /** @see https://developer.mozilla.org/en/DOM/window.find */
252 Window.prototype.find;
254 /** @see https://developer.mozilla.org/en/DOM/window.focus */
255 Window.prototype.focus = function() {};
257 /** @see https://developer.mozilla.org/en/DOM/window.forward */
258 Window.prototype.forward = function() {};
260 /** @see https://developer.mozilla.org/en/DOM/window.getAttention */
261 Window.prototype.getAttention = function() {};
264 * @return {Selection}
265 * @see https://developer.mozilla.org/en/DOM/window.getSelection
268 Window.prototype.getSelection = function() {};
270 /** @see https://developer.mozilla.org/en/DOM/window.home */
271 Window.prototype.home = function() {};
273 Window.prototype.openDialog;
274 Window.prototype.releaseEvents;
275 Window.prototype.scrollByLines;
276 Window.prototype.scrollByPages;
279 * @param {string} uri
280 * @param {?=} opt_arguments
281 * @param {string=} opt_options
282 * @see https://developer.mozilla.org/en/DOM/window.showModalDialog
284 Window.prototype.showModalDialog;
286 Window.prototype.sizeToContent;
289 * @see http://msdn.microsoft.com/en-us/library/ms536769(VS.85).aspx
291 Window.prototype.stop = function() {};
293 Window.prototype.updateCommands;
295 // properties of Document
298 * @see https://developer.mozilla.org/en/DOM/document.alinkColor
301 Document.prototype.alinkColor;
304 * @see https://developer.mozilla.org/en/DOM/document.anchors
305 * @type {HTMLCollection}
307 Document.prototype.anchors;
310 * @see https://developer.mozilla.org/en/DOM/document.applets
311 * @type {HTMLCollection}
313 Document.prototype.applets;
314 /** @type {boolean} */ Document.prototype.async;
315 /** @type {string?} */ Document.prototype.baseURI;
316 Document.prototype.baseURIObject;
319 * @see https://developer.mozilla.org/en/DOM/document.bgColor
322 Document.prototype.bgColor;
324 /** @type {HTMLBodyElement} */ Document.prototype.body;
325 Document.prototype.characterSet;
328 * @see https://developer.mozilla.org/en/DOM/document.compatMode
331 Document.prototype.compatMode;
333 Document.prototype.contentType;
334 /** @type {string} */ Document.prototype.cookie;
335 Document.prototype.defaultView;
338 * @see https://developer.mozilla.org/en/DOM/document.designMode
341 Document.prototype.designMode;
343 Document.prototype.documentURIObject;
346 * @see https://developer.mozilla.org/en/DOM/document.domain
349 Document.prototype.domain;
352 * @see https://developer.mozilla.org/en/DOM/document.embeds
353 * @type {HTMLCollection}
355 Document.prototype.embeds;
358 * @see https://developer.mozilla.org/en/DOM/document.fgColor
361 Document.prototype.fgColor;
363 /** @type {Element} */ Document.prototype.firstChild;
366 * @see https://developer.mozilla.org/en/DOM/document.forms
367 * @type {HTMLCollection}
369 Document.prototype.forms;
371 /** @type {number} */ Document.prototype.height;
372 /** @type {HTMLCollection} */ Document.prototype.images;
376 * @see https://developer.mozilla.org/en/DOM/document.lastModified
378 Document.prototype.lastModified;
382 * @see https://developer.mozilla.org/en/DOM/document.linkColor
384 Document.prototype.linkColor;
387 * @see https://developer.mozilla.org/en/DOM/document.links
388 * @type {HTMLCollection}
390 Document.prototype.links;
396 Document.prototype.location;
398 Document.prototype.namespaceURI;
399 Document.prototype.nodePrincipal;
400 Document.prototype.plugins;
401 Document.prototype.popupNode;
405 * @see https://developer.mozilla.org/en/DOM/document.referrer
407 Document.prototype.referrer;
410 * @type {StyleSheetList}
411 * @see https://developer.mozilla.org/en/DOM/document.styleSheets
413 Document.prototype.styleSheets;
415 /** @type {?string} */ Document.prototype.title;
416 Document.prototype.tooltipNode;
417 /** @type {string} */ Document.prototype.URL;
421 * @see https://developer.mozilla.org/en/DOM/document.vlinkColor
423 Document.prototype.vlinkColor;
425 /** @type {number} */ Document.prototype.width;
427 // Methods of Document
429 * @see https://developer.mozilla.org/en/DOM/document.clear
431 Document.prototype.clear = function() {};
434 * @see https://developer.mozilla.org/en/DOM/document.close
436 Document.prototype.close;
439 * @see https://developer.mozilla.org/en-US/docs/Web/API/document.createElementNS
440 * @see http://w3c.github.io/webcomponents/spec/custom/#extensions-to-document-interface-to-instantiate
441 * @param {?string} namespaceURI
442 * @param {string} qualifiedName
443 * @param {string=} opt_typeExtension
446 Document.prototype.createElementNS =
447 function(namespaceURI, qualifiedName, opt_typeExtension) {};
450 * @param {string} type
453 Document.prototype.createEvent = function(type) {};
454 Document.prototype.createNSResolver;
455 /** @return {Range} */ Document.prototype.createRange = function() {};
456 Document.prototype.createTreeWalker;
458 Document.prototype.evaluate;
461 * @param {string} commandName
462 * @param {?boolean=} opt_showUi
463 * @param {*=} opt_value
464 * @see https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla#Executing_Commands
466 Document.prototype.execCommand;
469 * @param {string} s id.
470 * @return {HTMLElement}
472 * @see https://developer.mozilla.org/en/DOM/document.getElementById
474 Document.prototype.getElementById = function(s) {};
477 * @param {string} name
478 * @return {!NodeList}
480 * @see https://developer.mozilla.org/en/DOM/document.getElementsByClassName
482 Document.prototype.getElementsByClassName = function(name) {};
485 * @param {string} name
486 * @return {!NodeList}
488 * @see https://developer.mozilla.org/en/DOM/document.getElementsByName
490 Document.prototype.getElementsByName = function(name) {};
493 * @param {string} namespace
494 * @param {string} name
495 * @return {!NodeList}
497 * @see https://developer.mozilla.org/en/DOM/document.getElementsByTagNameNS
499 Document.prototype.getElementsByTagNameNS = function(namespace, name) {};
502 * @param {Node} externalNode
503 * @param {boolean} deep
506 Document.prototype.importNode = function(externalNode, deep) {};
508 /** @param {string} uri */
509 Document.prototype.load = function(uri) {};
510 Document.prototype.loadOverlay;
513 * @see https://developer.mozilla.org/en/DOM/document.open
515 Document.prototype.open;
518 * @see https://developer.mozilla.org/en/Midas
519 * @see http://msdn.microsoft.com/en-us/library/ms536676(VS.85).aspx
521 Document.prototype.queryCommandEnabled;
524 * @see https://developer.mozilla.org/en/Midas
525 * @see http://msdn.microsoft.com/en-us/library/ms536678(VS.85).aspx
527 Document.prototype.queryCommandIndeterm;
530 * @see https://developer.mozilla.org/en/Midas
531 * @see http://msdn.microsoft.com/en-us/library/ms536679(VS.85).aspx
533 Document.prototype.queryCommandState;
536 * @see https://developer.mozilla.org/en/DOM/document.queryCommandSupported
537 * @see http://msdn.microsoft.com/en-us/library/ms536681(VS.85).aspx
538 * @param {string} command
539 * @return {?} Implementation-specific.
541 Document.prototype.queryCommandSupported;
544 * @see https://developer.mozilla.org/en/Midas
545 * @see http://msdn.microsoft.com/en-us/library/ms536683(VS.85).aspx
547 Document.prototype.queryCommandValue;
550 * @see https://developer.mozilla.org/en/DOM/document.write
551 * @param {string} text
553 Document.prototype.write = function(text) {};
556 * @see https://developer.mozilla.org/en/DOM/document.writeln
557 * @param {string} text
559 Document.prototype.writeln = function(text) {};
561 Document.prototype.ononline;
562 Document.prototype.onoffline;
566 * @see http://developer.mozilla.org/en/DOM/document.getBoxObjectFor
567 * @return {BoxObject}
570 Document.prototype.getBoxObjectFor = function(element) {};
573 // http://lxr.mozilla.org/mozilla1.8/source/dom/public/idl/range/nsIDOMNSRange.idl
576 * @param {string} tag
577 * @return {DocumentFragment}
579 Range.prototype.createContextualFragment;
582 * @param {Node} parent
583 * @param {number} offset
587 Range.prototype.isPointInRange;
590 * @param {Node} parent
591 * @param {number} offset
595 Range.prototype.comparePoint;
602 Range.prototype.intersectsNode;
609 Range.prototype.compareNode;
613 function Selection() {}
617 * @see https://developer.mozilla.org/en/DOM/Selection/anchorNode
619 Selection.prototype.anchorNode;
623 * @see https://developer.mozilla.org/en/DOM/Selection/anchorOffset
625 Selection.prototype.anchorOffset;
629 * @see https://developer.mozilla.org/en/DOM/Selection/focusNode
631 Selection.prototype.focusNode;
635 * @see https://developer.mozilla.org/en/DOM/Selection/focusOffset
637 Selection.prototype.focusOffset;
641 * @see https://developer.mozilla.org/en/DOM/Selection/isCollapsed
643 Selection.prototype.isCollapsed;
647 * @see https://developer.mozilla.org/en/DOM/Selection/rangeCount
649 Selection.prototype.rangeCount;
652 * @param {Range} range
653 * @return {undefined}
654 * @see https://developer.mozilla.org/en/DOM/Selection/addRange
656 Selection.prototype.addRange = function(range) {};
659 * @param {number} index
661 * @see https://developer.mozilla.org/en/DOM/Selection/getRangeAt
664 Selection.prototype.getRangeAt = function(index) {};
668 * @param {number} index
669 * @return {undefined}
670 * @see https://developer.mozilla.org/en/DOM/Selection/collapse
672 Selection.prototype.collapse = function(node, index) {};
675 * @return {undefined}
676 * @see https://developer.mozilla.org/en/DOM/Selection/collapseToEnd
678 Selection.prototype.collapseToEnd = function() {};
681 * @return {undefined}
682 * @see https://developer.mozilla.org/en/DOM/Selection/collapseToStart
684 Selection.prototype.collapseToStart = function() {};
688 * @param {boolean} partlyContained
690 * @see https://developer.mozilla.org/en/DOM/Selection/containsNode
693 Selection.prototype.containsNode = function(node, partlyContained) {};
696 * @see https://developer.mozilla.org/en/DOM/Selection/deleteFromDocument
698 Selection.prototype.deleteFromDocument = function() {};
701 * @param {Node} parentNode
702 * @param {number} offset
703 * @see https://developer.mozilla.org/en/DOM/Selection/extend
705 Selection.prototype.extend = function(parentNode, offset) {};
708 * @see https://developer.mozilla.org/en/DOM/Selection/removeAllRanges
710 Selection.prototype.removeAllRanges = function() {};
713 * @param {Range} range
714 * @see https://developer.mozilla.org/en/DOM/Selection/removeRange
716 Selection.prototype.removeRange = function(range) {};
719 * @param {Node} parentNode
720 * @see https://developer.mozilla.org/en/DOM/Selection/selectAllChildren
722 Selection.prototype.selectAllChildren;
725 * @see https://developer.mozilla.org/en/DOM/Selection/selectionLanguageChange
727 Selection.prototype.selectionLanguageChange;
729 /** @type {NamedNodeMap} */ Element.prototype.attributes;
730 Element.prototype.baseURIObject;
731 /** @type {!NodeList} */ Element.prototype.childNodes;
735 * @see https://developer.mozilla.org/en/DOM/element.children
737 Element.prototype.children;
743 Element.prototype.className;
744 /** @type {string} */ Element.prototype.dir;
747 * Firebug sets this property on elements it is inserting into the DOM.
750 Element.prototype.firebugIgnore;
752 /** @type {Node} */ Element.prototype.firstChild;
757 Element.prototype.id;
762 Element.prototype.innerHTML;
763 /** @type {string} */ Element.prototype.lang;
764 /** @type {Node} */ Element.prototype.lastChild;
765 Element.prototype.localName;
766 Element.prototype.name;
767 Element.prototype.namespaceURI;
768 /** @type {Node} */ Element.prototype.nextSibling;
769 Element.prototype.nodeName;
770 Element.prototype.nodePrincipal;
771 /** @type {number} */ Element.prototype.nodeType;
772 Element.prototype.nodeValue;
773 /** @type {Document} */ Element.prototype.ownerDocument;
774 /** @type {Node} */ Element.prototype.parentNode;
775 Element.prototype.prefix;
776 /** @type {Node} */ Element.prototype.previousSibling;
777 /** @type {!CSSStyleDeclaration} */ Element.prototype.style;
782 Element.prototype.tabIndex;
788 Element.prototype.textContent;
789 /** @type {string} */ Element.prototype.title;
792 * @param {Node} child
793 * @return {Node} appendedElement.
796 Element.prototype.appendChild = function(child) {};
802 Element.prototype.cloneNode = function(deep) {};
805 Element.prototype.dispatchEvent = function(event) {};
807 /** @return {undefined} */
808 Element.prototype.blur = function() {};
810 /** @return {undefined} */
811 Element.prototype.click = function() {};
813 /** @return {undefined} */
814 Element.prototype.focus = function() {};
821 Element.prototype.hasAttributes = function() {};
828 Element.prototype.hasChildNodes = function() {};
831 Element.prototype.insertBefore = function(insertedNode, adjacentNode) {};
834 * @return {undefined}
837 Element.prototype.normalize = function() {};
840 * @param {Node} removedNode
844 Element.prototype.removeChild = function(removedNode) {};
847 * @param {boolean=} opt_useCapture
850 Element.prototype.removeEventListener = function(type, handler, opt_useCapture)
854 Element.prototype.replaceChild = function(insertedNode, replacedNode) {};
856 /** @type {number} */
857 HTMLInputElement.prototype.selectionStart;
859 /** @type {number} */
860 HTMLInputElement.prototype.selectionEnd;
863 * @param {number} selectionStart
864 * @param {number} selectionEnd
865 * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#dom-textarea/input-setselectionrange
867 HTMLInputElement.prototype.setSelectionRange =
868 function(selectionStart, selectionEnd) {};
870 /** @type {number} */
871 HTMLTextAreaElement.prototype.selectionStart;
873 /** @type {number} */
874 HTMLTextAreaElement.prototype.selectionEnd;
877 * @param {number} selectionStart
878 * @param {number} selectionEnd
879 * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#dom-textarea/input-setselectionrange
881 HTMLTextAreaElement.prototype.setSelectionRange =
882 function(selectionStart, selectionEnd) {};
885 function Navigator() {}
889 * @see https://developer.mozilla.org/en/Navigator.appCodeName
891 Navigator.prototype.appCodeName;
895 * @see https://developer.mozilla.org/en/Navigator.appVersion
897 Navigator.prototype.appName;
901 * @see https://developer.mozilla.org/en/Navigator.appVersion
903 Navigator.prototype.appVersion;
907 * @see https://developer.mozilla.org/en/Navigator.buildID
909 Navigator.prototype.buildID;
913 * @see https://developer.mozilla.org/en/Navigator.cookieEnabled
915 Navigator.prototype.cookieEnabled;
919 * @see https://developer.mozilla.org/en/Navigator.language
921 Navigator.prototype.language;
924 * @type {MimeTypeArray}
925 * @see https://developer.mozilla.org/en/Navigator.mimeTypes
927 Navigator.prototype.mimeTypes;
931 * @see https://developer.mozilla.org/en/Navigator.onLine
933 Navigator.prototype.onLine;
937 * @see https://developer.mozilla.org/en/Navigator.oscpu
939 Navigator.prototype.oscpu;
943 * @see https://developer.mozilla.org/en/Navigator.platform
945 Navigator.prototype.platform;
948 * @type {PluginArray}
949 * @see https://developer.mozilla.org/en/Navigator.plugins
951 Navigator.prototype.plugins;
955 * @see https://developer.mozilla.org/en/Navigator.product
957 Navigator.prototype.product;
961 * @see https://developer.mozilla.org/en/Navigator.productSub
963 Navigator.prototype.productSub;
967 * @see https://developer.mozilla.org/en/Navigator.securityPolicy
969 Navigator.prototype.securityPolicy;
972 * @param {string} url
973 * @param {ArrayBufferView|Blob|string|FormData=} opt_data
975 * @see https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon
977 Navigator.prototype.sendBeacon = function(url, opt_data) {};
981 * @see https://developer.mozilla.org/en/Navigator.userAgent
983 Navigator.prototype.userAgent;
987 * @see https://developer.mozilla.org/en/Navigator.vendor
989 Navigator.prototype.vendor;
993 * @see https://developer.mozilla.org/en/Navigator.vendorSub
995 Navigator.prototype.vendorSub;
998 * @type {function(): boolean}
999 * @see https://developer.mozilla.org/en/Navigator.javaEnabled
1002 Navigator.prototype.javaEnabled = function() {};
1006 * @see https://developer.mozilla.org/en/DOM/PluginArray
1008 function PluginArray() {}
1010 /** @type {number} */
1011 PluginArray.prototype.length;
1014 * @param {number} index
1017 PluginArray.prototype.item = function(index) {};
1020 * @param {string} name
1023 PluginArray.prototype.namedItem = function(name) {};
1025 /** @param {boolean=} reloadDocuments */
1026 PluginArray.prototype.refresh = function(reloadDocuments) {};
1029 function MimeTypeArray() {}
1032 * @param {number} index
1033 * @return {MimeType}
1035 MimeTypeArray.prototype.item = function(index) {};
1039 * @see https://developer.mozilla.org/en/DOM/window.navigator.mimeTypes
1041 MimeTypeArray.prototype.length;
1044 * @param {string} name
1045 * @return {MimeType}
1047 MimeTypeArray.prototype.namedItem = function(name) {};
1050 function MimeType() {}
1052 /** @type {string} */
1053 MimeType.prototype.description;
1055 /** @type {Plugin} */
1056 MimeType.prototype.enabledPlugin;
1058 /** @type {string} */
1059 MimeType.prototype.suffixes;
1061 /** @type {string} */
1062 MimeType.prototype.type;
1065 function Plugin() {}
1067 /** @type {string} */
1068 Plugin.prototype.description;
1070 /** @type {string} */
1071 Plugin.prototype.filename;
1073 /** @type {number} */
1074 Plugin.prototype.length;
1076 /** @type {string} */
1077 Plugin.prototype.name;
1080 function BoxObject() {}
1082 /** @type {Element} */
1083 BoxObject.prototype.element;
1085 /** @type {number} */
1086 BoxObject.prototype.screenX;
1088 /** @type {number} */
1089 BoxObject.prototype.screenY;
1091 /** @type {number} */
1092 BoxObject.prototype.x;
1094 /** @type {number} */
1095 BoxObject.prototype.y;
1097 /** @type {number} */
1098 BoxObject.prototype.width;
1103 * @see http://www.google.com/codesearch/p?hl=en#eksvcKKj5Ng/mozilla/dom/public/idl/html/nsIDOMNSHTMLImageElement.idl&q=naturalWidth
1105 HTMLImageElement.prototype.naturalWidth;
1109 * @see http://www.google.com/codesearch/p?hl=en#eksvcKKj5Ng/mozilla/dom/public/idl/html/nsIDOMNSHTMLImageElement.idl&q=naturalHeight
1111 HTMLImageElement.prototype.naturalHeight;
1115 * @param {Element} element
1116 * @param {?string=} pseudoElt
1117 * @return {CSSStyleDeclaration}
1120 function getComputedStyle(element, pseudoElt) {}