Index: sdk/lib/html/dart2js/html_dart2js.dart |
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart |
index 027cd6785c516c37ea2c73e42908fac87ae1ecfe..51868365cecc8bc6f54497320693c3f97571e4a6 100644 |
--- a/sdk/lib/html/dart2js/html_dart2js.dart |
+++ b/sdk/lib/html/dart2js/html_dart2js.dart |
@@ -1031,6 +1031,7 @@ class ButtonElement extends Element implements Element native "*HTMLButtonElemen |
String formTarget; |
/** @domName HTMLButtonElement.labels; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> labels; |
/** @domName HTMLButtonElement.name; @docsEditable true */ |
@@ -1127,6 +1128,7 @@ class CSSKeyframeRule extends CSSRule native "*WebKitCSSKeyframeRule" { |
class CSSKeyframesRule extends CSSRule native "*WebKitCSSKeyframesRule" { |
/** @domName WebKitCSSKeyframesRule.cssRules; @docsEditable true */ |
+ @Returns('_CSSRuleList') @Creates('_CSSRuleList') |
final List<CSSRule> cssRules; |
/** @domName WebKitCSSKeyframesRule.name; @docsEditable true */ |
@@ -1261,6 +1263,7 @@ class CSSMatrix native "*WebKitCSSMatrix" { |
class CSSMediaRule extends CSSRule native "*CSSMediaRule" { |
/** @domName CSSMediaRule.cssRules; @docsEditable true */ |
+ @Returns('_CSSRuleList') @Creates('_CSSRuleList') |
final List<CSSRule> cssRules; |
/** @domName CSSMediaRule.media; @docsEditable true */ |
@@ -4660,12 +4663,14 @@ class CSSStyleRule extends CSSRule native "*CSSStyleRule" { |
class CSSStyleSheet extends StyleSheet native "*CSSStyleSheet" { |
/** @domName CSSStyleSheet.cssRules; @docsEditable true */ |
+ @Returns('_CSSRuleList') @Creates('_CSSRuleList') |
final List<CSSRule> cssRules; |
/** @domName CSSStyleSheet.ownerRule; @docsEditable true */ |
final CSSRule ownerRule; |
/** @domName CSSStyleSheet.rules; @docsEditable true */ |
+ @Returns('_CSSRuleList') @Creates('_CSSRuleList') |
final List<CSSRule> rules; |
/** @domName CSSStyleSheet.addRule; @docsEditable true */ |
@@ -5203,6 +5208,7 @@ class Clipboard native "*Clipboard" { |
String effectAllowed; |
/** @domName Clipboard.files; @docsEditable true */ |
+ @Returns('_FileList') @Creates('_FileList') |
final List<File> files; |
/** @domName Clipboard.items; @docsEditable true */ |
@@ -5352,6 +5358,7 @@ class ContentElement extends Element implements Element native "*HTMLContentElem |
String select; |
/** @domName HTMLContentElement.getDistributedNodes; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> getDistributedNodes() native; |
} |
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
@@ -6438,6 +6445,7 @@ class DirectoryReader native "*DirectoryReader" { |
class DirectoryReaderSync native "*DirectoryReaderSync" { |
/** @domName DirectoryReaderSync.readEntries; @docsEditable true */ |
+ @Returns('_EntryArraySync') @Creates('_EntryArraySync') |
List<EntrySync> readEntries() native; |
} |
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
@@ -6511,7 +6519,7 @@ class Document extends Node native "*Document" |
String selectedStylesheetSet; |
/** @domName Document.styleSheets; @docsEditable true */ |
- List<StyleSheet> get $dom_styleSheets => JS("List<StyleSheet>", "#.styleSheets", this); |
+ List<StyleSheet> get $dom_styleSheets => JS("_StyleSheetList", "#.styleSheets", this); |
/** @domName Document.title; @docsEditable true */ |
String get $dom_title => JS("String", "#.title", this); |
@@ -6586,12 +6594,15 @@ class Document extends Node native "*Document" |
Element $dom_getElementById(String elementId) native "getElementById"; |
/** @domName Document.getElementsByClassName; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_getElementsByClassName(String tagname) native "getElementsByClassName"; |
/** @domName Document.getElementsByName; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_getElementsByName(String elementName) native "getElementsByName"; |
/** @domName Document.getElementsByTagName; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_getElementsByTagName(String tagname) native "getElementsByTagName"; |
/** @domName Document.queryCommandEnabled; @docsEditable true */ |
@@ -6613,6 +6624,7 @@ class Document extends Node native "*Document" |
Element $dom_querySelector(String selectors) native "querySelector"; |
/** @domName Document.querySelectorAll; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_querySelectorAll(String selectors) native "querySelectorAll"; |
/** @domName Document.webkitCancelFullScreen; @docsEditable true */ |
@@ -7032,6 +7044,7 @@ class DocumentFragment extends Node native "*DocumentFragment" { |
Element $dom_querySelector(String selectors) native "querySelector"; |
/** @domName DocumentFragment.querySelectorAll; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_querySelectorAll(String selectors) native "querySelectorAll"; |
} |
@@ -7720,6 +7733,7 @@ abstract class Element extends Node implements ElementTraversal native "*Element |
* [wc]: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html |
* [x-tags]: http://x-tags.org/ |
*/ |
+ @Creates('Null') // Set from Dart code; does not instantiate a native type. |
var xtag; |
// TODO(vsm): Implement noSuchMethod or similar for dart2js. |
@@ -7922,12 +7936,15 @@ abstract class Element extends Node implements ElementTraversal native "*Element |
ClientRect getBoundingClientRect() native; |
/** @domName Element.getClientRects; @docsEditable true */ |
+ @Returns('_ClientRectList') @Creates('_ClientRectList') |
List<ClientRect> getClientRects() native; |
/** @domName Element.getElementsByClassName; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_getElementsByClassName(String name) native "getElementsByClassName"; |
/** @domName Element.getElementsByTagName; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_getElementsByTagName(String name) native "getElementsByTagName"; |
/** @domName Element.hasAttribute; @docsEditable true */ |
@@ -7937,6 +7954,7 @@ abstract class Element extends Node implements ElementTraversal native "*Element |
Element $dom_querySelector(String selectors) native "querySelector"; |
/** @domName Element.querySelectorAll; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_querySelectorAll(String selectors) native "querySelectorAll"; |
/** @domName Element.removeAttribute; @docsEditable true */ |
@@ -9552,6 +9570,7 @@ class HTMLAllCollection implements JavaScriptIndexingBehavior, List<Node> native |
Node namedItem(String name) native; |
/** @domName HTMLAllCollection.tags; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> tags(String name) native; |
} |
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
@@ -10147,6 +10166,7 @@ class IDBDatabase extends EventTarget native "*IDBDatabase" { |
final String name; |
/** @domName IDBDatabase.objectStoreNames; @docsEditable true */ |
+ @Returns('_DOMStringList') @Creates('_DOMStringList') |
final List<String> objectStoreNames; |
/** @domName IDBDatabase.version; @docsEditable true */ |
@@ -10529,6 +10549,7 @@ class IDBObjectStore native "*IDBObjectStore" { |
final bool autoIncrement; |
/** @domName IDBObjectStore.indexNames; @docsEditable true */ |
+ @Returns('_DOMStringList') @Creates('_DOMStringList') |
final List<String> indexNames; |
/** @domName IDBObjectStore.keyPath; @docsEditable true */ |
@@ -11079,6 +11100,7 @@ class InputElement extends Element implements Element native "*HTMLInputElement" |
bool disabled; |
/** @domName HTMLInputElement.files; @docsEditable true */ |
+ @Returns('_FileList') @Creates('_FileList') |
List<File> files; |
/** @domName HTMLInputElement.form; @docsEditable true */ |
@@ -11109,6 +11131,7 @@ class InputElement extends Element implements Element native "*HTMLInputElement" |
bool indeterminate; |
/** @domName HTMLInputElement.labels; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> labels; |
/** @domName HTMLInputElement.list; @docsEditable true */ |
@@ -11181,6 +11204,7 @@ class InputElement extends Element implements Element native "*HTMLInputElement" |
num valueAsNumber; |
/** @domName HTMLInputElement.webkitEntries; @docsEditable true */ |
+ @Returns('_EntryArray') @Creates('_EntryArray') |
final List<Entry> webkitEntries; |
/** @domName HTMLInputElement.webkitGrammar; @docsEditable true */ |
@@ -11664,6 +11688,7 @@ class KeygenElement extends Element implements Element native "*HTMLKeygenElemen |
String keytype; |
/** @domName HTMLKeygenElement.labels; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> labels; |
/** @domName HTMLKeygenElement.name; @docsEditable true */ |
@@ -11819,6 +11844,7 @@ class LocalHistory implements History native "*History" { |
class LocalLocation implements Location native "*Location" { |
/** @domName Location.ancestorOrigins; @docsEditable true */ |
+ @Returns('_DOMStringList') @Creates('_DOMStringList') |
final List<String> ancestorOrigins; |
/** @domName Location.hash; @docsEditable true */ |
@@ -12205,6 +12231,7 @@ class LocalWindow extends EventTarget implements Window native "@*DOMWindow" { |
CSSStyleDeclaration $dom_getComputedStyle(Element element, String pseudoElement) native "getComputedStyle"; |
/** @domName Window.getMatchedCSSRules; @docsEditable true */ |
+ @Returns('_CSSRuleList') @Creates('_CSSRuleList') |
List<CSSRule> getMatchedCSSRules(Element element, String pseudoElement) native; |
/** @domName Window.getSelection; @docsEditable true */ |
@@ -12220,6 +12247,7 @@ class LocalWindow extends EventTarget implements Window native "@*DOMWindow" { |
void moveTo(num x, num y) native; |
/** @domName DOMWindow.openDatabase; @docsEditable true */ |
+ @Creates('Database') @Creates('DatabaseSync') |
Database openDatabase(String name, String version, String displayName, int estimatedSize, [DatabaseCallback creationCallback]) native; |
/** @domName Window.postMessage; @docsEditable true */ |
@@ -13180,6 +13208,7 @@ class MessageEvent extends Event native "*MessageEvent" { |
final String origin; |
/** @domName MessageEvent.ports; @docsEditable true */ |
+ @Creates('=List') |
final List ports; |
/** @domName MessageEvent.source; @docsEditable true */ |
@@ -13297,6 +13326,7 @@ class MeterElement extends Element implements Element native "*HTMLMeterElement" |
num high; |
/** @domName HTMLMeterElement.labels; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> labels; |
/** @domName HTMLMeterElement.low; @docsEditable true */ |
@@ -13567,6 +13597,7 @@ class MutationObserver native "*MutationObserver" { |
class MutationRecord native "*MutationRecord" { |
/** @domName MutationRecord.addedNodes; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> addedNodes; |
/** @domName MutationRecord.attributeName; @docsEditable true */ |
@@ -13585,6 +13616,7 @@ class MutationRecord native "*MutationRecord" { |
final Node previousSibling; |
/** @domName MutationRecord.removedNodes; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> removedNodes; |
/** @domName MutationRecord.target; @docsEditable true */ |
@@ -13773,6 +13805,7 @@ class Navigator native "*Navigator" { |
bool javaEnabled() native; |
/** @domName Navigator.webkitGetGamepads; @docsEditable true */ |
+ @Returns('_GamepadList') @Creates('_GamepadList') |
List<Gamepad> webkitGetGamepads() native; |
/** @domName Navigator.webkitGetUserMedia; @docsEditable true */ |
@@ -14009,7 +14042,7 @@ class Node extends EventTarget native "*Node" { |
NamedNodeMap get $dom_attributes => JS("NamedNodeMap", "#.attributes", this); |
/** @domName Node.childNodes; @docsEditable true */ |
- List<Node> get $dom_childNodes => JS("List<Node>", "#.childNodes", this); |
+ List<Node> get $dom_childNodes => JS("_NodeList", "#.childNodes", this); |
/** @domName Node.firstChild; @docsEditable true */ |
Node get $dom_firstChild => JS("Node", "#.firstChild", this); |
@@ -14544,6 +14577,7 @@ class OutputElement extends Element implements Element native "*HTMLOutputElemen |
DOMSettableTokenList htmlFor; |
/** @domName HTMLOutputElement.labels; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> labels; |
/** @domName HTMLOutputElement.name; @docsEditable true */ |
@@ -14763,6 +14797,7 @@ class PeerConnection00 extends EventTarget native "*PeerConnection00" { |
final SessionDescription localDescription; |
/** @domName PeerConnection00.localStreams; @docsEditable true */ |
+ @Returns('_MediaStreamList') @Creates('_MediaStreamList') |
final List<MediaStream> localStreams; |
/** @domName PeerConnection00.readyState; @docsEditable true */ |
@@ -14772,6 +14807,7 @@ class PeerConnection00 extends EventTarget native "*PeerConnection00" { |
final SessionDescription remoteDescription; |
/** @domName PeerConnection00.remoteStreams; @docsEditable true */ |
+ @Returns('_MediaStreamList') @Creates('_MediaStreamList') |
final List<MediaStream> remoteStreams; |
/** @domName PeerConnection00.addEventListener; @docsEditable true */ |
@@ -15082,6 +15118,7 @@ class ProgressElement extends Element implements Element native "*HTMLProgressEl |
factory ProgressElement() => document.$dom_createElement("progress"); |
/** @domName HTMLProgressElement.labels; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> labels; |
/** @domName HTMLProgressElement.max; @docsEditable true */ |
@@ -15271,6 +15308,7 @@ class RTCPeerConnection extends EventTarget native "*RTCPeerConnection" { |
final RTCSessionDescription localDescription; |
/** @domName RTCPeerConnection.localStreams; @docsEditable true */ |
+ @Returns('_MediaStreamList') @Creates('_MediaStreamList') |
final List<MediaStream> localStreams; |
/** @domName RTCPeerConnection.readyState; @docsEditable true */ |
@@ -15280,6 +15318,7 @@ class RTCPeerConnection extends EventTarget native "*RTCPeerConnection" { |
final RTCSessionDescription remoteDescription; |
/** @domName RTCPeerConnection.remoteStreams; @docsEditable true */ |
+ @Returns('_MediaStreamList') @Creates('_MediaStreamList') |
final List<MediaStream> remoteStreams; |
/** @domName RTCPeerConnection.addEventListener; @docsEditable true */ |
@@ -15555,6 +15594,7 @@ class Range native "*Range" { |
ClientRect getBoundingClientRect() native; |
/** @domName Range.getClientRects; @docsEditable true */ |
+ @Returns('_ClientRectList') @Creates('_ClientRectList') |
List<ClientRect> getClientRects() native; |
/** @domName Range.insertNode; @docsEditable true */ |
@@ -16050,6 +16090,7 @@ class SelectElement extends Element implements Element native "*HTMLSelectElemen |
final FormElement form; |
/** @domName HTMLSelectElement.labels; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> labels; |
/** @domName HTMLSelectElement.length; @docsEditable true */ |
@@ -16170,9 +16211,11 @@ class ShadowRoot extends DocumentFragment native "*ShadowRoot" { |
Element $dom_getElementById(String elementId) native "getElementById"; |
/** @domName ShadowRoot.getElementsByClassName; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_getElementsByClassName(String className) native "getElementsByClassName"; |
/** @domName ShadowRoot.getElementsByTagName; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> $dom_getElementsByTagName(String tagName) native "getElementsByTagName"; |
/** @domName ShadowRoot.getSelection; @docsEditable true */ |
@@ -16511,6 +16554,7 @@ class SpeechGrammarList implements JavaScriptIndexingBehavior, List<SpeechGramma |
class SpeechInputEvent extends Event native "*SpeechInputEvent" { |
/** @domName SpeechInputEvent.results; @docsEditable true */ |
+ @Returns('_SpeechInputResultList') @Creates('_SpeechInputResultList') |
final List<SpeechInputResult> results; |
} |
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
@@ -16660,6 +16704,7 @@ class SpeechRecognitionEvent extends Event native "*SpeechRecognitionEvent" { |
final SpeechRecognitionResult result; |
/** @domName SpeechRecognitionEvent.resultHistory; @docsEditable true */ |
+ @Returns('_SpeechRecognitionResultList') @Creates('_SpeechRecognitionResultList') |
final List<SpeechRecognitionResult> resultHistory; |
/** @domName SpeechRecognitionEvent.resultIndex; @docsEditable true */ |
@@ -17203,6 +17248,7 @@ class TextAreaElement extends Element implements Element native "*HTMLTextAreaEl |
final FormElement form; |
/** @domName HTMLTextAreaElement.labels; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
final List<Node> labels; |
/** @domName HTMLTextAreaElement.maxLength; @docsEditable true */ |
@@ -19859,12 +19905,15 @@ class WebKitNamedFlow extends EventTarget native "*WebKitNamedFlow" { |
bool $dom_dispatchEvent(Event event) native "dispatchEvent"; |
/** @domName WebKitNamedFlow.getContent; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> getContent() native; |
/** @domName WebKitNamedFlow.getRegions; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> getRegions() native; |
/** @domName WebKitNamedFlow.getRegionsByContent; @docsEditable true */ |
+ @Returns('_NodeList') @Creates('_NodeList') |
List<Node> getRegionsByContent(Node contentNode) native; |
/** @domName WebKitNamedFlow.removeEventListener; @docsEditable true */ |
@@ -21461,20 +21510,10 @@ class _MessageChannelFactoryProvider { |
class _MutationObserverFactoryProvider { |
- static MutationObserver createMutationObserver(MutationCallback callback) { |
- // This is a hack to cause MutationRecord to appear to be instantiated. |
- // |
- // MutationCallback has a parameter type List<MutationRecord>. From this we |
- // infer a list is created in the browser, but not the element type, because |
- // other native fields and methods return plain List which is too general |
- // and would imply creating anything. This statement is a work-around. |
- JS('MutationRecord','0'); |
- |
- return _createMutationObserver(callback); |
- } |
- |
- static MutationObserver _createMutationObserver(MutationCallback callback) native ''' |
+ @Creates('MutationObserver') |
+ @Creates('MutationRecord') |
+ static MutationObserver createMutationObserver(MutationCallback callback) native ''' |
var constructor = |
window.MutationObserver || window.WebKitMutationObserver || |
window.MozMutationObserver; |