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

Side by Side Diff: tools/dom/templates/html/impl/impl_Element.darttemplate

Issue 11817059: Fixes for a number of dart analyzer issues in dart:html. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Syncing to latest. Created 7 years, 11 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:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/dom/src/CssClassSet.dart ('k') | tools/dom/templates/html/impl/impl_Node.darttemplate » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of html; 5 part of html;
6 6
7 // TODO(jacobr): use _Lists.dart to remove some of the duplicated 7 // TODO(jacobr): use _Lists.dart to remove some of the duplicated
8 // functionality. 8 // functionality.
9 class _ChildrenElementList implements List { 9 class _ChildrenElementList implements List {
10 // Raw Element. 10 // Raw Element.
11 final Element _element; 11 final Element _element;
12 final HtmlCollection _childElements; 12 final HtmlCollection _childElements;
13 13
14 _ChildrenElementList._wrap(Element element) 14 _ChildrenElementList._wrap(Element element)
15 : _childElements = element.$dom_children, 15 : _childElements = element.$dom_children,
16 _element = element; 16 _element = element;
17 17
18 List<Element> toList() { 18 List<Element> toList() {
19 final output = new List<Element>.fixedLength(_childElements.length); 19 final output = new List<Element>.fixedLength(_childElements.length);
20 for (int i = 0, len = _childElements.length; i < len; i++) { 20 for (int i = 0, len = _childElements.length; i < len; i++) {
21 output[i] = _childElements[i]; 21 output[i] = _childElements[i];
22 } 22 }
23 return output; 23 return output;
24 } 24 }
25 25
26 Set<Element> toSet() { 26 Set<Element> toSet() {
27 final output = new Set<Element>(_childElements.length); 27 final output = new Set<Element>();
28 for (int i = 0, len = _childElements.length; i < len; i++) { 28 for (int i = 0, len = _childElements.length; i < len; i++) {
29 output.add(_childElements[i]); 29 output.add(_childElements[i]);
30 } 30 }
31 return output; 31 return output;
32 } 32 }
33 33
34 bool contains(Element element) => _childElements.contains(element); 34 bool contains(Element element) => _childElements.contains(element);
35 35
36 void forEach(void f(Element element)) { 36 void forEach(void f(Element element)) {
37 for (Element element in _childElements) { 37 for (Element element in _childElements) {
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 if (result == null) throw new StateError("No elements"); 203 if (result == null) throw new StateError("No elements");
204 return result; 204 return result;
205 } 205 }
206 206
207 Element get single { 207 Element get single {
208 if (length > 1) throw new StateError("More than one element"); 208 if (length > 1) throw new StateError("More than one element");
209 return first; 209 return first;
210 } 210 }
211 211
212 Element min([int compare(Element a, Element b)]) { 212 Element min([int compare(Element a, Element b)]) {
213 return _Collections.minInList(this, compare); 213 return Collections.min(this, compare);
214 } 214 }
215 215
216 Element max([int compare(Element a, Element b)]) { 216 Element max([int compare(Element a, Element b)]) {
217 return _Collections.maxInList(this, compare); 217 return Collections.max(this, compare);
218 } 218 }
219 } 219 }
220 220
221 // TODO(jacobr): this is an inefficient implementation but it is hard to see 221 // TODO(jacobr): this is an inefficient implementation but it is hard to see
222 // a better option given that we cannot quite force NodeList to be an 222 // a better option given that we cannot quite force NodeList to be an
223 // ElementList as there are valid cases where a NodeList JavaScript object 223 // ElementList as there are valid cases where a NodeList JavaScript object
224 // contains Node objects that are not Elements. 224 // contains Node objects that are not Elements.
225 class _FrozenElementList implements List { 225 class _FrozenElementList implements List {
226 final List<Node> _nodeList; 226 final List<Node> _nodeList;
227 227
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 262
263 bool any(bool f(Element element)) { 263 bool any(bool f(Element element)) {
264 for(Element element in this) { 264 for(Element element in this) {
265 if (f(element)) { 265 if (f(element)) {
266 return true; 266 return true;
267 } 267 }
268 }; 268 };
269 return false; 269 return false;
270 } 270 }
271 271
272 List<Element> toList() => new List<Element>.from(this);
273 Set<Element> toSet() => new Set<Element>.from(this);
274
272 List<Element> take(int n) { 275 List<Element> take(int n) {
273 return new ListView<Element>(this, 0, n); 276 return new ListView<Element>(this, 0, n);
274 } 277 }
275 278
276 Iterable<Element> takeWhile(bool test(T value)) { 279 Iterable<Element> takeWhile(bool test(Element value)) {
277 return new TakeWhileIterable<Element>(this, test); 280 return new TakeWhileIterable<Element>(this, test);
278 } 281 }
279 282
280 List<Element> skip(int n) { 283 List<Element> skip(int n) {
281 return new ListView<Element>(this, n, null); 284 return new ListView<Element>(this, n, null);
282 } 285 }
283 286
284 Iterable<Element> skipWhile(bool test(T value)) { 287 Iterable<Element> skipWhile(bool test(Element value)) {
285 return new SkipWhileIterable<Element>(this, test); 288 return new SkipWhileIterable<Element>(this, test);
286 } 289 }
287 290
288 Element firstMatching(bool test(Element value), {Element orElse()}) { 291 Element firstMatching(bool test(Element value), {Element orElse()}) {
289 return Collections.firstMatching(this, test, orElse); 292 return Collections.firstMatching(this, test, orElse);
290 } 293 }
291 294
292 Element lastMatching(bool test(Element value), {Element orElse()}) { 295 Element lastMatching(bool test(Element value), {Element orElse()}) {
293 return Collections.lastMatchingInList(this, test, orElse); 296 return Collections.lastMatchingInList(this, test, orElse);
294 } 297 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 throw new UnsupportedError(''); 374 throw new UnsupportedError('');
372 } 375 }
373 376
374 Element get first => _nodeList.first; 377 Element get first => _nodeList.first;
375 378
376 Element get last => _nodeList.last; 379 Element get last => _nodeList.last;
377 380
378 Element get single => _nodeList.single; 381 Element get single => _nodeList.single;
379 382
380 Element min([int compare(Element a, Element b)]) { 383 Element min([int compare(Element a, Element b)]) {
381 return _Collections.minInList(this, compare); 384 return Collections.min(this, compare);
382 } 385 }
383 386
384 Element max([int compare(Element a, Element b)]) { 387 Element max([int compare(Element a, Element b)]) {
385 return _Collections.maxInList(this, compare); 388 return Collections.max(this, compare);
386 } 389 }
387 } 390 }
388 391
389 class _FrozenElementListIterator implements Iterator<Element> { 392 class _FrozenElementListIterator implements Iterator<Element> {
390 final _FrozenElementList _list; 393 final _FrozenElementList _list;
391 int _index = -1; 394 int _index = -1;
392 Element _current; 395 Element _current;
393 396
394 _FrozenElementListIterator(this._list); 397 _FrozenElementListIterator(this._list);
395 398
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 $if DART2JS 900 $if DART2JS
898 // Optimization to improve performance until the dart2js compiler inlines this 901 // Optimization to improve performance until the dart2js compiler inlines this
899 // method. 902 // method.
900 static dynamic createElement_tag(String tag) => 903 static dynamic createElement_tag(String tag) =>
901 JS('Element', 'document.createElement(#)', tag); 904 JS('Element', 'document.createElement(#)', tag);
902 $else 905 $else
903 static Element createElement_tag(String tag) => 906 static Element createElement_tag(String tag) =>
904 document.$dom_createElement(tag); 907 document.$dom_createElement(tag);
905 $endif 908 $endif
906 } 909 }
OLDNEW
« no previous file with comments | « tools/dom/src/CssClassSet.dart ('k') | tools/dom/templates/html/impl/impl_Node.darttemplate » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698