| Index: tool/input_sdk/lib/html/dart2js/html_dart2js.dart
|
| diff --git a/tool/input_sdk/lib/html/dart2js/html_dart2js.dart b/tool/input_sdk/lib/html/dart2js/html_dart2js.dart
|
| index fe1c960fbf322a45b60d7147e5cab52a28bdc376..32f6d2bd1e52c8326678d8e3b64b38195d7d1398 100644
|
| --- a/tool/input_sdk/lib/html/dart2js/html_dart2js.dart
|
| +++ b/tool/input_sdk/lib/html/dart2js/html_dart2js.dart
|
| @@ -10606,9 +10606,8 @@ class Document extends Node
|
| * For details about CSS selector syntax, see the
|
| * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
|
| */
|
| - ElementList<Element> querySelectorAll(String selectors) {
|
| - return new _FrozenElementList._wrap(_querySelectorAll(selectors));
|
| - }
|
| + ElementList<Element /*=T*/> querySelectorAll/*<T extends Element>*/(String selectors) =>
|
| + new _FrozenElementList/*<T>*/._wrap(_querySelectorAll(selectors));
|
|
|
| /**
|
| * Alias for [querySelector]. Note this function is deprecated because its
|
| @@ -10626,7 +10625,7 @@ class Document extends Node
|
| @deprecated
|
| @Experimental()
|
| @DomName('Document.querySelectorAll')
|
| - ElementList<Element> queryAll(String relativeSelectors) =>
|
| + ElementList<Element /*=T*/> queryAll/*<T extends Element>*/(String relativeSelectors) =>
|
| querySelectorAll(relativeSelectors);
|
|
|
| /// Checks if [registerElement] is supported on the current platform.
|
| @@ -10744,8 +10743,9 @@ class DocumentFragment extends Node implements NonElementParentNode, ParentNode
|
| * For details about CSS selector syntax, see the
|
| * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
|
| */
|
| - ElementList<Element> querySelectorAll(String selectors) =>
|
| - new _FrozenElementList._wrap(_querySelectorAll(selectors));
|
| + ElementList<Element /*=T*/> querySelectorAll/*<T extends Element>*/(String selectors) =>
|
| + new _FrozenElementList/*<T>*/._wrap(_querySelectorAll(selectors));
|
| +
|
|
|
| String get innerHtml {
|
| final e = new Element.tag("div");
|
| @@ -10802,9 +10802,8 @@ class DocumentFragment extends Node implements NonElementParentNode, ParentNode
|
| @deprecated
|
| @Experimental()
|
| @DomName('DocumentFragment.querySelectorAll')
|
| - ElementList<Element> queryAll(String relativeSelectors) {
|
| - return querySelectorAll(relativeSelectors);
|
| - }
|
| + ElementList<Element /*=T*/> queryAll/*<T extends Element>*/(String relativeSelectors) =>
|
| + querySelectorAll(relativeSelectors);
|
| // To suppress missing implicit constructor warnings.
|
| factory DocumentFragment._() { throw new UnsupportedError("Not supported"); }
|
|
|
| @@ -12429,17 +12428,17 @@ abstract class ElementList<T extends Element> extends ListBase<T> {
|
| // declared to return `ElementList`. This provides all the static analysis
|
| // benefit so there is no need for this class have a constrained type parameter.
|
| //
|
| -class _FrozenElementList extends ListBase<Element>
|
| - implements ElementList<Element>, NodeListWrapper {
|
| +class _FrozenElementList<E extends Element> extends ListBase<E>
|
| + implements ElementList<E>, NodeListWrapper {
|
| final List<Node> _nodeList;
|
|
|
| _FrozenElementList._wrap(this._nodeList);
|
|
|
| int get length => _nodeList.length;
|
|
|
| - Element operator [](int index) => _nodeList[index];
|
| + E operator [](int index) => _nodeList[index] as E;
|
|
|
| - void operator []=(int index, Element value) {
|
| + void operator []=(int index, E value) {
|
| throw new UnsupportedError('Cannot modify list');
|
| }
|
|
|
| @@ -12447,7 +12446,7 @@ class _FrozenElementList extends ListBase<Element>
|
| throw new UnsupportedError('Cannot modify list');
|
| }
|
|
|
| - void sort([Comparator<Element> compare]) {
|
| + void sort([Comparator<E> compare]) {
|
| throw new UnsupportedError('Cannot sort list');
|
| }
|
|
|
| @@ -12455,11 +12454,11 @@ class _FrozenElementList extends ListBase<Element>
|
| throw new UnsupportedError('Cannot shuffle list');
|
| }
|
|
|
| - Element get first => _nodeList.first;
|
| + E get first => _nodeList.first as E;
|
|
|
| - Element get last => _nodeList.last;
|
| + E get last => _nodeList.last as E;
|
|
|
| - Element get single => _nodeList.single;
|
| + E get single => _nodeList.single as E;
|
|
|
| CssClassSet get classes => new _MultiElementCssClassSet(this);
|
|
|
| @@ -13231,8 +13230,8 @@ class Element extends Node implements NonDocumentTypeChildNode, GlobalEventHandl
|
| * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
|
| */
|
| @DomName('Element.querySelectorAll')
|
| - ElementList<Element> querySelectorAll(String selectors) =>
|
| - new _FrozenElementList._wrap(_querySelectorAll(selectors));
|
| + ElementList<Element /*=T*/> querySelectorAll/*<T extends Element>*/(String selectors) =>
|
| + new _FrozenElementList/*<T>*/._wrap(_querySelectorAll(selectors));
|
|
|
| /**
|
| * Alias for [querySelector]. Note this function is deprecated because its
|
| @@ -13250,7 +13249,7 @@ class Element extends Node implements NonDocumentTypeChildNode, GlobalEventHandl
|
| @deprecated
|
| @DomName('Element.querySelectorAll')
|
| @Experimental()
|
| - ElementList<Element> queryAll(String relativeSelectors) =>
|
| + ElementList<Element /*=T*/> queryAll/*<T extends Element>*/(String relativeSelectors) =>
|
| querySelectorAll(relativeSelectors);
|
|
|
| /**
|
| @@ -14837,9 +14836,8 @@ class Element extends Node implements NonDocumentTypeChildNode, GlobalEventHandl
|
| @DocsEditable()
|
| bool hidden;
|
|
|
| - @DomName('Element.isContentEditable')
|
| - @DocsEditable()
|
| - final bool isContentEditable;
|
| + // Using properties as subclasses overload.
|
| + bool get isContentEditable => JS("bool", "#.isContentEditable", this);
|
|
|
| @DomName('Element.lang')
|
| @DocsEditable()
|
| @@ -14964,10 +14962,8 @@ class Element extends Node implements NonDocumentTypeChildNode, GlobalEventHandl
|
| // Use implementation from Node.
|
| // final String _namespaceUri;
|
|
|
| - @JSName('outerHTML')
|
| - @DomName('Element.outerHTML')
|
| - @DocsEditable()
|
| - final String outerHtml;
|
| + // Using properties as subclasses overload.
|
| + String get outerHtml => JS("String", "#.outerHTML", this);
|
|
|
| @JSName('scrollHeight')
|
| @DomName('Element.scrollHeight')
|
|
|