Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(431)

Unified Diff: sdk/lib/html/dartium/html_dartium.dart

Issue 13963020: Resubmit: "With the collections deriving from ListBase, we no longer need to implement a numbe… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
« no previous file with comments | « sdk/lib/html/dart2js/html_dart2js.dart ('k') | sdk/lib/html/html_common/filtered_element_list.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 78cd7cb284c69c510e78917d536385f649fd2dd7..ae1f7f194219e711074c6b5455633ce32c4ddf84 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -8342,8 +8342,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;
@@ -8353,106 +8351,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;
}
@@ -8467,7 +8372,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) {
@@ -8487,21 +8392,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,
@@ -8528,36 +8420,6 @@ class _ChildrenElementList extends ListBase<Element> {
return false;
}
- 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);
@@ -8569,10 +8431,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();
}
@@ -8615,24 +8473,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);
@@ -8642,60 +8489,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('');
- }
-
- bool 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;
@@ -8703,13 +8505,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 {
@@ -16972,11 +16767,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() {
@@ -17035,53 +16831,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.
@@ -30573,7 +30338,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);
@@ -30582,73 +30347,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
@@ -30659,8 +30365,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);
@@ -30669,20 +30373,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);
}
@@ -30696,15 +30388,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();
- }
}
/**
« no previous file with comments | « sdk/lib/html/dart2js/html_dart2js.dart ('k') | sdk/lib/html/html_common/filtered_element_list.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698