Chromium Code Reviews| Index: tools/dom/templates/html/impl/impl_Element.darttemplate |
| diff --git a/tools/dom/templates/html/impl/impl_Element.darttemplate b/tools/dom/templates/html/impl/impl_Element.darttemplate |
| index 04f51e1e03ab1f3c21c0857454de9de2621df23c..72ae123a3db26c93ddf2a6825d69ff531e18a816 100644 |
| --- a/tools/dom/templates/html/impl/impl_Element.darttemplate |
| +++ b/tools/dom/templates/html/impl/impl_Element.darttemplate |
| @@ -253,19 +253,12 @@ abstract class ElementList<T extends Element> extends ListBase<T> { |
| $!STREAM_GETTER_SIGNATURES |
| } |
| -// TODO(jacobr): this is an inefficient implementation but it is hard to see |
| -// a better option given that we cannot quite force NodeList to be an |
| -// ElementList as there are valid cases where a NodeList JavaScript object |
| -// contains Node objects that are not Elements. |
| -class _FrozenElementList<T extends Element> extends ListBase<T> |
| - implements ElementList<T>, NodeListWrapper { |
| +// Wrapper over an immutable NodeList to make it implement ElementList<Element>. |
|
Jacob
2014/12/12 01:11:22
Tweak this comment as this class is no longer an E
|
| +class _FrozenElementList extends ListBase |
| + implements ElementList, NodeListWrapper { |
| final List<Node> _nodeList; |
| - // The subset of _nodeList that are Elements. |
| - List<Element> _elementList; |
| - _FrozenElementList._wrap(this._nodeList) { |
| - _elementList = _nodeList.where((e) => e is Element).toList(); |
| - } |
| + _FrozenElementList._wrap(this._nodeList); |
| int get length => _nodeList.length; |
| @@ -293,22 +286,22 @@ class _FrozenElementList<T extends Element> extends ListBase<T> |
| Element get single => _nodeList.single; |
| - CssClassSet get classes => new _MultiElementCssClassSet(_elementList); |
| + CssClassSet get classes => new _MultiElementCssClassSet(this); |
| CssStyleDeclarationBase get style => |
| - new _CssStyleDeclarationSet(_elementList); |
| + new _CssStyleDeclarationSet(this); |
| void set classes(Iterable<String> value) { |
| - _elementList.forEach((e) => e.classes = value); |
| + _nodeList.forEach((e) => e.classes = value); |
| } |
| - CssRect get contentEdge => new _ContentCssListRect(_elementList); |
| + CssRect get contentEdge => new _ContentCssListRect(this); |
| - CssRect get paddingEdge => _elementList.first.paddingEdge; |
| + CssRect get paddingEdge => this.first.paddingEdge; |
| - CssRect get borderEdge => _elementList.first.borderEdge; |
| + CssRect get borderEdge => this.first.borderEdge; |
| - CssRect get marginEdge => _elementList.first.marginEdge; |
| + CssRect get marginEdge => this.first.marginEdge; |
| List<Node> get rawList => _nodeList; |