| Index: sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate
|
| diff --git a/sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate b/sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate
|
| index f408f8b6d862c1db2add2e3e161a6eb7eda5084a..95fa720f30b1a238c334597d8518c82768da16b2 100644
|
| --- a/sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate
|
| +++ b/sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate
|
| @@ -4,118 +4,17 @@
|
|
|
| part of html;
|
|
|
| -class _FilteredElementList implements List {
|
| - final Node _node;
|
| - final List<Node> _childNodes;
|
| -
|
| - _FilteredElementList(Node node): _childNodes = node.nodes, _node = node;
|
| -
|
| - // We can't memoize this, since it's possible that children will be messed
|
| - // with externally to this class.
|
| - //
|
| - // TODO(nweiz): Do we really need to copy the list to make the types work out?
|
| - List<Element> get _filtered =>
|
| - new List.from(_childNodes.filter((n) => n is Element));
|
| -
|
| - void forEach(void f(Element element)) {
|
| - _filtered.forEach(f);
|
| - }
|
| -
|
| - void operator []=(int index, Element value) {
|
| - this[index].replaceWith(value);
|
| - }
|
| -
|
| - void set length(int newLength) {
|
| - final len = this.length;
|
| - if (newLength >= len) {
|
| - return;
|
| - } else if (newLength < 0) {
|
| - throw new ArgumentError("Invalid list length");
|
| - }
|
| -
|
| - removeRange(newLength - 1, len - newLength);
|
| - }
|
| -
|
| - void add(Element value) {
|
| - _childNodes.add(value);
|
| - }
|
| -
|
| - void addAll(Collection<Element> collection) {
|
| - collection.forEach(add);
|
| - }
|
| -
|
| - void addLast(Element value) {
|
| - add(value);
|
| - }
|
| -
|
| - bool contains(Element element) {
|
| - return element is Element && _childNodes.contains(element);
|
| - }
|
| -
|
| - void sort([Comparator<Element> compare = Comparable.compare]) {
|
| - throw new UnsupportedError('TODO(jacobr): should we impl?');
|
| - }
|
| -
|
| - void setRange(int start, int rangeLength, List from, [int startFrom = 0]) {
|
| - throw new UnimplementedError();
|
| - }
|
| -
|
| - void removeRange(int start, int rangeLength) {
|
| - _filtered.getRange(start, rangeLength).forEach((el) => el.remove());
|
| - }
|
| -
|
| - void insertRange(int start, int rangeLength, [initialValue = null]) {
|
| - throw new UnimplementedError();
|
| - }
|
| -
|
| - void clear() {
|
| - // Currently, ElementList#clear clears even non-element nodes, so we follow
|
| - // that behavior.
|
| - _childNodes.clear();
|
| - }
|
| -
|
| - Element removeLast() {
|
| - final result = this.last;
|
| - if (result != null) {
|
| - result.remove();
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - Collection map(f(Element element)) => _filtered.map(f);
|
| - Collection<Element> filter(bool f(Element element)) => _filtered.filter(f);
|
| - bool every(bool f(Element element)) => _filtered.every(f);
|
| - bool some(bool f(Element element)) => _filtered.some(f);
|
| - bool get isEmpty => _filtered.isEmpty;
|
| - int get length => _filtered.length;
|
| - Element operator [](int index) => _filtered[index];
|
| - Iterator<Element> iterator() => _filtered.iterator();
|
| - List<Element> getRange(int start, int rangeLength) =>
|
| - _filtered.getRange(start, rangeLength);
|
| - int indexOf(Element element, [int start = 0]) =>
|
| - _filtered.indexOf(element, start);
|
| -
|
| - int lastIndexOf(Element element, [int start = null]) {
|
| - if (start == null) start = length - 1;
|
| - return _filtered.lastIndexOf(element, start);
|
| - }
|
| -
|
| - Element get last => _filtered.last;
|
| -}
|
| -
|
| Future<CSSStyleDeclaration> _emptyStyleFuture() {
|
| return _createMeasurementFuture(() => new Element.tag('div').style,
|
| new Completer<CSSStyleDeclaration>());
|
| }
|
|
|
| -class _FrozenCssClassSet extends _CssClassSet {
|
| - _FrozenCssClassSet() : super(null);
|
| -
|
| - void _write(Set s) {
|
| +class _FrozenCssClassSet extends CssClassSet {
|
| + void writeClasses(Set s) {
|
| throw new UnsupportedError(
|
| 'frozen class set cannot be modified');
|
| }
|
| - Set<String> _read() => new Set<String>();
|
| + Set<String> readClasses() => new Set<String>();
|
|
|
| bool get frozen => true;
|
| }
|
| @@ -126,14 +25,14 @@ class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
|
| factory $CLASSNAME.html(String html) =>
|
| _$(CLASSNAME)FactoryProvider.createDocumentFragment_html(html);
|
|
|
| - factory $CLASSNAME.svg(String svg) =>
|
| - new _$(CLASSNAME)FactoryProvider.createDocumentFragment_svg(svg);
|
| + factory $CLASSNAME.svg(String svgContent) =>
|
| + new _$(CLASSNAME)FactoryProvider.createDocumentFragment_svg(svgContent);
|
|
|
| List<Element> _elements;
|
|
|
| List<Element> get elements {
|
| if (_elements == null) {
|
| - _elements = new _FilteredElementList(this);
|
| + _elements = new FilteredElementList(this);
|
| }
|
| return _elements;
|
| }
|
|
|