| Index: sdk/lib/html/dartium/html_dartium.dart
|
| diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
|
| index dd0de2703be0f393892c19a89c9701644549ac19..2b1f3260a2f1e0a914d8576e6558bef2e75b66c1 100644
|
| --- a/sdk/lib/html/dartium/html_dartium.dart
|
| +++ b/sdk/lib/html/dartium/html_dartium.dart
|
| @@ -8635,8 +8635,6 @@ class DomTokenList extends NativeFieldWrapperClass1 {
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
|
|
| -// TODO(jacobr): use _Lists.dart to remove some of the duplicated
|
| -// functionality.
|
| class _ChildrenElementList extends ListBase<Element> {
|
| // Raw Element.
|
| final Element _element;
|
| @@ -8646,106 +8644,13 @@ class _ChildrenElementList extends ListBase<Element> {
|
| : _childElements = element.$dom_children,
|
| _element = element;
|
|
|
| - List<Element> toList({ bool growable: true }) {
|
| - List<Element> output;
|
| - if (growable) {
|
| - output = <Element>[];
|
| - output.length = _childElements.length;
|
| - } else {
|
| - output = new List<Element>(_childElements.length);
|
| - }
|
| - for (int i = 0, len = _childElements.length; i < len; i++) {
|
| - output[i] = _childElements[i];
|
| - }
|
| - return output;
|
| - }
|
| -
|
| - Set<Element> toSet() {
|
| - final output = new Set<Element>();
|
| - for (int i = 0, len = _childElements.length; i < len; i++) {
|
| - output.add(_childElements[i]);
|
| - }
|
| - return output;
|
| - }
|
| -
|
| bool contains(Element element) => _childElements.contains(element);
|
|
|
| - void forEach(void f(Element element)) {
|
| - for (Element element in _childElements) {
|
| - f(element);
|
| - }
|
| - }
|
| -
|
| - bool every(bool f(Element element)) {
|
| - for (Element element in this) {
|
| - if (!f(element)) {
|
| - return false;
|
| - }
|
| - }
|
| - return true;
|
| - }
|
| -
|
| - bool any(bool f(Element element)) {
|
| - for (Element element in this) {
|
| - if (f(element)) {
|
| - return true;
|
| - }
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - String join([String separator = ""]) {
|
| - return _childElements.join(separator);
|
| - }
|
| -
|
| - Iterable map(f(Element element)) {
|
| - return _childElements.map(f);
|
| - }
|
| -
|
| - Iterable<Element> where(bool f(Element element)) {
|
| - return _childElements.where(f);
|
| - }
|
| -
|
| - Iterable expand(Iterable f(Element element)) {
|
| - return _childElements.expand(f);
|
| - }
|
|
|
| bool get isEmpty {
|
| return _element.$dom_firstElementChild == null;
|
| }
|
|
|
| - Iterable<Element> take(int n) {
|
| - return _childElements.take(n);
|
| - }
|
| -
|
| - Iterable<Element> takeWhile(bool test(Element value)) {
|
| - return _childElements.takeWhile(test);
|
| - }
|
| -
|
| - Iterable<Element> skip(int n) {
|
| - return _childElements.skip(n);
|
| - }
|
| -
|
| - Iterable<Element> skipWhile(bool test(Element value)) {
|
| - return _childElements.skipWhile(test);
|
| - }
|
| -
|
| - Element firstWhere(bool test(Element value), {Element orElse()}) {
|
| - return _childElements.firstWhere(test, orElse: orElse);
|
| - }
|
| -
|
| - Element lastWhere(bool test(Element value), {Element orElse()}) {
|
| - return _childElements.lastWhere(test, orElse: orElse);
|
| - }
|
| -
|
| - Element singleWhere(bool test(Element value)) {
|
| - return _childElements.singleWhere(test);
|
| - }
|
| -
|
| - Element elementAt(int index) {
|
| - return this[index];
|
| - }
|
| -
|
| int get length {
|
| return _childElements.length;
|
| }
|
| @@ -8760,7 +8665,7 @@ class _ChildrenElementList extends ListBase<Element> {
|
|
|
| void set length(int newLength) {
|
| // TODO(jacobr): remove children when length is reduced.
|
| - throw new UnsupportedError('');
|
| + throw new UnsupportedError('Cannot resize element lists');
|
| }
|
|
|
| Element add(Element value) {
|
| @@ -8780,21 +8685,8 @@ class _ChildrenElementList extends ListBase<Element> {
|
| }
|
| }
|
|
|
| - Iterable<Element> get reversed {
|
| - return _childElements.reversed;
|
| - }
|
| -
|
| void sort([int compare(Element a, Element b)]) {
|
| - throw new UnsupportedError('TODO(jacobr): should we impl?');
|
| - }
|
| -
|
| - Element reduce(Element combine(Element value, Element element)) {
|
| - return _childElements.reduce(combine);
|
| - }
|
| -
|
| - dynamic fold(dynamic initialValue,
|
| - dynamic combine(dynamic previousValue, Element element)) {
|
| - return _childElements.fold(initialValue, combine);
|
| + throw new UnsupportedError('Cannot sort element lists');
|
| }
|
|
|
| void setRange(int start, int end, Iterable<Element> iterable,
|
| @@ -8819,36 +8711,6 @@ class _ChildrenElementList extends ListBase<Element> {
|
| }
|
| }
|
|
|
| - void removeWhere(bool test(Element element)) {
|
| - _childElements.removeWhere(test);
|
| - }
|
| -
|
| - void retainWhere(bool test(Element element)) {
|
| - _childElements.retainWhere(test);
|
| - }
|
| -
|
| - void removeRange(int start, int end) {
|
| - throw new UnimplementedError();
|
| - }
|
| -
|
| - Iterable getRange(int start, int end) {
|
| - throw new UnimplementedError();
|
| - }
|
| -
|
| - List sublist(int start, [int end]) {
|
| - if (end == null) end = length;
|
| - return new _FrozenElementList._wrap(Lists.getRange(this, start, end, []));
|
| - }
|
| -
|
| - int indexOf(Element element, [int start = 0]) {
|
| - return Lists.indexOf(this, element, start, this.length);
|
| - }
|
| -
|
| - int lastIndexOf(Element element, [int start = null]) {
|
| - if (start == null) start = length - 1;
|
| - return Lists.lastIndexOf(this, element, start);
|
| - }
|
| -
|
| void insert(int index, Element element) {
|
| if (index < 0 || index > length) {
|
| throw new RangeError.range(index, 0, length);
|
| @@ -8860,10 +8722,6 @@ class _ChildrenElementList extends ListBase<Element> {
|
| }
|
| }
|
|
|
| - void insertAll(int index, Iterable<Element> iterable) {
|
| - throw new UnimplementedError();
|
| - }
|
| -
|
| void setAll(int index, Iterable<Element> iterable) {
|
| throw new UnimplementedError();
|
| }
|
| @@ -8906,24 +8764,13 @@ class _ChildrenElementList extends ListBase<Element> {
|
| if (length > 1) throw new StateError("More than one element");
|
| return first;
|
| }
|
| -
|
| - Map<int, Element> asMap() {
|
| - return _childElements.asMap();
|
| - }
|
| -
|
| - String toString() {
|
| - StringBuffer buffer = new StringBuffer('[');
|
| - buffer.writeAll(this, ', ');
|
| - buffer.write(']');
|
| - return buffer.toString();
|
| - }
|
| }
|
|
|
| // 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 extends ListBase {
|
| +class _FrozenElementList extends ListBase<Element> {
|
| final List<Node> _nodeList;
|
|
|
| _FrozenElementList._wrap(this._nodeList);
|
| @@ -8933,60 +8780,15 @@ class _FrozenElementList extends ListBase {
|
| Element operator [](int index) => _nodeList[index];
|
|
|
| void operator []=(int index, Element value) {
|
| - throw new UnsupportedError('');
|
| + throw new UnsupportedError('Cannot modify list');
|
| }
|
|
|
| void set length(int newLength) {
|
| - _nodeList.length = newLength;
|
| - }
|
| -
|
| - void add(Element value) {
|
| - throw new UnsupportedError('');
|
| - }
|
| -
|
| - void addAll(Iterable<Element> iterable) {
|
| - throw new UnsupportedError('');
|
| - }
|
| -
|
| - void sort([int compare(Element a, Element b)]) {
|
| - throw new UnsupportedError('');
|
| - }
|
| -
|
| - void setRange(int start, int end, Iterable<Element> iterable,
|
| - [int skipCount = 0]) {
|
| - throw new UnsupportedError('');
|
| + throw new UnsupportedError('Cannot modify list');
|
| }
|
|
|
| - void removeRange(int start, int end) {
|
| - throw new UnsupportedError('');
|
| - }
|
| -
|
| - List<Element> sublist(int start, [int end]) {
|
| - return new _FrozenElementList._wrap(_nodeList.sublist(start, end));
|
| - }
|
| -
|
| - void clear() {
|
| - throw new UnsupportedError('');
|
| - }
|
| -
|
| - Element removeAt(int index) {
|
| - throw new UnsupportedError('');
|
| - }
|
| -
|
| - Element removeLast() {
|
| - throw new UnsupportedError('');
|
| - }
|
| -
|
| - void remove(Object element) {
|
| - throw new UnsupportedError('');
|
| - }
|
| -
|
| - void removeWhere(bool test(Element element)) {
|
| - throw new UnsupportedError('');
|
| - }
|
| -
|
| - void retainWhere(bool test(Element element)) {
|
| - throw new UnsupportedError('');
|
| + void sort([Comparator<Element> compare]) {
|
| + throw new UnsupportedError('Cannot sort list');
|
| }
|
|
|
| Element get first => _nodeList.first;
|
| @@ -8994,13 +8796,6 @@ class _FrozenElementList extends ListBase {
|
| Element get last => _nodeList.last;
|
|
|
| Element get single => _nodeList.single;
|
| -
|
| - String toString() {
|
| - StringBuffer buffer = new StringBuffer('[');
|
| - buffer.writeAll(this, ', ');
|
| - buffer.write(']');
|
| - return buffer.toString();
|
| - }
|
| }
|
|
|
| class _ElementCssClassSet extends CssClassSet {
|
| @@ -18537,11 +18332,12 @@ class _ChildNodeListLazy extends ListBase<Node> {
|
| }
|
|
|
| void insertAll(int index, Iterable<Node> iterable) {
|
| - throw new UnimplementedError();
|
| + var item = this[index];
|
| + _this.insertAllBefore(iterable, item);
|
| }
|
|
|
| void setAll(int index, Iterable<Node> iterable) {
|
| - throw new UnimplementedError();
|
| + throw new UnsupportedError("Cannot setAll on Node list");
|
| }
|
|
|
| Node removeLast() {
|
| @@ -18599,53 +18395,22 @@ class _ChildNodeListLazy extends ListBase<Node> {
|
|
|
| Iterator<Node> get iterator => _this.$dom_childNodes.iterator;
|
|
|
| - List<Node> toList({ bool growable: true }) =>
|
| - new List<Node>.from(this, growable: growable);
|
| - Set<Node> toSet() => new Set<Node>.from(this);
|
| -
|
| - bool get isEmpty => this.length == 0;
|
| -
|
| // From List<Node>:
|
|
|
| // TODO(jacobr): this could be implemented for child node lists.
|
| // The exception we throw here is misleading.
|
| - void sort([int compare(Node a, Node b)]) {
|
| - throw new UnsupportedError("Cannot sort immutable List.");
|
| + void sort([Comparator<Node> compare]) {
|
| + throw new UnsupportedError("Cannot sort Node list");
|
| }
|
|
|
| // FIXME: implement these.
|
| void setRange(int start, int end, Iterable<Node> iterable,
|
| [int skipCount = 0]) {
|
| - throw new UnsupportedError(
|
| - "Cannot setRange on immutable List.");
|
| - }
|
| - void removeRange(int start, int end) {
|
| - throw new UnsupportedError(
|
| - "Cannot removeRange on immutable List.");
|
| - }
|
| -
|
| - Iterable<Node> getRange(int start, int end) {
|
| - throw new UnimplementedError("NodeList.getRange");
|
| - }
|
| -
|
| - void replaceRange(int start, int end, Iterable<Node> iterable) {
|
| - throw new UnimplementedError("NodeList.replaceRange");
|
| - }
|
| -
|
| - void fillRange(int start, int end, [Node fillValue]) {
|
| - throw new UnimplementedError("NodeList.fillRange");
|
| + throw new UnsupportedError("Cannot setRange on Node list");
|
| }
|
|
|
| - List<Node> sublist(int start, [int end]) {
|
| - if (end == null) end == length;
|
| - return Lists.getRange(this, start, end, <Node>[]);
|
| - }
|
| -
|
| - String toString() {
|
| - StringBuffer buffer = new StringBuffer('[');
|
| - buffer.writeAll(this, ', ');
|
| - buffer.write(']');
|
| - return buffer.toString();
|
| + void fillRange(int start, int end, [Node fill]) {
|
| + throw new UnsupportedError("Cannot fillRange on Node list");
|
| }
|
| // -- end List<Node> mixins.
|
|
|
| @@ -33066,7 +32831,7 @@ class _WrappedEvent implements Event {
|
| * A list which just wraps another list, for either intercepting list calls or
|
| * retyping the list (for example, from List<A> to List<B> where B extends A).
|
| */
|
| -class _WrappedList<E> implements List<E> {
|
| +class _WrappedList<E> extends ListBase<E> {
|
| final List _list;
|
|
|
| _WrappedList(this._list);
|
| @@ -33075,73 +32840,14 @@ class _WrappedList<E> implements List<E> {
|
|
|
| Iterator<E> get iterator => new _WrappedIterator(_list.iterator);
|
|
|
| - Iterable map(f(E element)) => _list.map(f);
|
| -
|
| - Iterable<E> where(bool f(E element)) => _list.where(f);
|
| -
|
| - Iterable expand(Iterable f(E element)) => _list.expand(f);
|
| -
|
| - bool contains(E element) => _list.contains(element);
|
| -
|
| - void forEach(void f(E element)) { _list.forEach(f); }
|
| -
|
| - E reduce(E combine(E value, E element)) =>
|
| - _list.reduce(combine);
|
| -
|
| - dynamic fold(initialValue, combine(previousValue, E element)) =>
|
| - _list.fold(initialValue, combine);
|
| -
|
| - bool every(bool f(E element)) => _list.every(f);
|
| -
|
| - String join([String separator = ""]) => _list.join(separator);
|
| -
|
| - bool any(bool f(E element)) => _list.any(f);
|
| -
|
| - List<E> toList({ bool growable: true }) =>
|
| - new List.from(_list, growable: growable);
|
| -
|
| - Set<E> toSet() => _list.toSet();
|
| -
|
| int get length => _list.length;
|
|
|
| - bool get isEmpty => _list.isEmpty;
|
| -
|
| - Iterable<E> take(int n) => _list.take(n);
|
| -
|
| - Iterable<E> takeWhile(bool test(E value)) => _list.takeWhile(test);
|
| -
|
| - Iterable<E> skip(int n) => _list.skip(n);
|
| -
|
| - Iterable<E> skipWhile(bool test(E value)) => _list.skipWhile(test);
|
| -
|
| - E get first => _list.first;
|
| -
|
| - E get last => _list.last;
|
| -
|
| - E get single => _list.single;
|
| -
|
| - E firstWhere(bool test(E value), { E orElse() }) =>
|
| - _list.firstWhere(test, orElse: orElse);
|
| -
|
| - E lastWhere(bool test(E value), {E orElse()}) =>
|
| - _list.lastWhere(test, orElse: orElse);
|
| -
|
| - E singleWhere(bool test(E value)) => _list.singleWhere(test);
|
| -
|
| - E elementAt(int index) => _list.elementAt(index);
|
| -
|
| // Collection APIs
|
|
|
| void add(E element) { _list.add(element); }
|
|
|
| - void addAll(Iterable<E> elements) { _list.addAll(elements); }
|
| -
|
| void remove(Object element) { _list.remove(element); }
|
|
|
| - void removeWhere(bool test(E element)) { _list.removeWhere(test); }
|
| -
|
| - void retainWhere(bool test(E element)) { _list.retainWhere(test); }
|
| -
|
| void clear() { _list.clear(); }
|
|
|
| // List APIs
|
| @@ -33152,8 +32858,6 @@ class _WrappedList<E> implements List<E> {
|
|
|
| void set length(int newLength) { _list.length = newLength; }
|
|
|
| - Iterable<E> get reversed => _list.reversed;
|
| -
|
| void sort([int compare(E a, E b)]) { _list.sort(compare); }
|
|
|
| int indexOf(E element, [int start = 0]) => _list.indexOf(element, start);
|
| @@ -33162,20 +32866,8 @@ class _WrappedList<E> implements List<E> {
|
|
|
| void insert(int index, E element) => _list.insert(index, element);
|
|
|
| - void insertAll(int index, Iterable<E> iterable) =>
|
| - _list.insertAll(index, iterable);
|
| -
|
| - void setAll(int index, Iterable<E> iterable) =>
|
| - _list.setAll(index, iterable);
|
| -
|
| E removeAt(int index) => _list.removeAt(index);
|
|
|
| - E removeLast() => _list.removeLast();
|
| -
|
| - List<E> sublist(int start, [int end]) => _list.sublist(start, end);
|
| -
|
| - Iterable<E> getRange(int start, int end) => _list.getRange(start, end);
|
| -
|
| void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
|
| _list.setRange(start, end, iterable, skipCount);
|
| }
|
| @@ -33189,15 +32881,6 @@ class _WrappedList<E> implements List<E> {
|
| void fillRange(int start, int end, [E fillValue]) {
|
| _list.fillRange(start, end, fillValue);
|
| }
|
| -
|
| - Map<int, E> asMap() => _list.asMap();
|
| -
|
| - String toString() {
|
| - StringBuffer buffer = new StringBuffer('[');
|
| - buffer.writeAll(this, ', ');
|
| - buffer.write(']');
|
| - return buffer.toString();
|
| - }
|
| }
|
|
|
| /**
|
|
|