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

Side by Side Diff: sdk/lib/html/dart2js/html_dart2js.dart

Issue 11413071: Deprecating Element.elements for Element.children. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Incorporating review feedback. Created 8 years, 1 month 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
OLDNEW
1 library html; 1 library html;
2 2
3 import 'dart:isolate'; 3 import 'dart:isolate';
4 import 'dart:json'; 4 import 'dart:json';
5 import 'dart:svg' as svg; 5 import 'dart:svg' as svg;
6 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 6 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
7 // for details. All rights reserved. Use of this source code is governed by a 7 // for details. All rights reserved. Use of this source code is governed by a
8 // BSD-style license that can be found in the LICENSE file. 8 // BSD-style license that can be found in the LICENSE file.
9 9
10 // DO NOT EDIT 10 // DO NOT EDIT
(...skipping 6767 matching lines...) Expand 10 before | Expand all | Expand 10 after
6778 6778
6779 class DocumentFragment extends Node native "*DocumentFragment" { 6779 class DocumentFragment extends Node native "*DocumentFragment" {
6780 factory DocumentFragment() => _DocumentFragmentFactoryProvider.createDocumentF ragment(); 6780 factory DocumentFragment() => _DocumentFragmentFactoryProvider.createDocumentF ragment();
6781 6781
6782 factory DocumentFragment.html(String html) => 6782 factory DocumentFragment.html(String html) =>
6783 _DocumentFragmentFactoryProvider.createDocumentFragment_html(html); 6783 _DocumentFragmentFactoryProvider.createDocumentFragment_html(html);
6784 6784
6785 factory DocumentFragment.svg(String svgContent) => 6785 factory DocumentFragment.svg(String svgContent) =>
6786 _DocumentFragmentFactoryProvider.createDocumentFragment_svg(svgContent); 6786 _DocumentFragmentFactoryProvider.createDocumentFragment_svg(svgContent);
6787 6787
6788 List<Element> _elements; 6788 List<Element> get elements => this.children;
6789
6790 List<Element> get elements {
6791 if (_elements == null) {
6792 _elements = new FilteredElementList(this);
6793 }
6794 return _elements;
6795 }
6796 6789
6797 // TODO: The type of value should be Collection<Element>. See http://b/5392897 6790 // TODO: The type of value should be Collection<Element>. See http://b/5392897
6798 void set elements(value) { 6791 void set elements(value) {
6792 this.children = value;
6793 }
6794
6795 List<Element> _children;
6796
6797 @Creates('Null')
sra1 2012/11/19 22:16:34 This goes on the field '_children'. Please include
blois 2012/11/19 22:58:53 Done.
6798 List<Element> get children {
6799 if (_children == null) {
6800 _children = new FilteredElementList(this);
6801 }
6802 return _children;
6803 }
6804
6805 void set children(Collection<Element> value) {
6799 // Copy list first since we don't want liveness during iteration. 6806 // Copy list first since we don't want liveness during iteration.
6800 List copy = new List.from(value); 6807 List copy = new List.from(value);
6801 final elements = this.elements; 6808 var children = this.children;
6802 elements.clear(); 6809 children.clear();
6803 elements.addAll(copy); 6810 children.addAll(copy);
6804 } 6811 }
6805 6812
6806 Element query(String selectors) => $dom_querySelector(selectors); 6813 Element query(String selectors) => $dom_querySelector(selectors);
6807 6814
6808 List<Element> queryAll(String selectors) => 6815 List<Element> queryAll(String selectors) =>
6809 new _FrozenElementList._wrap($dom_querySelectorAll(selectors)); 6816 new _FrozenElementList._wrap($dom_querySelectorAll(selectors));
6810 6817
6811 String get innerHTML { 6818 String get innerHTML {
6812 final e = new Element.tag("div"); 6819 final e = new Element.tag("div");
6813 e.nodes.add(this.clone(true)); 6820 e.nodes.add(this.clone(true));
(...skipping 800 matching lines...) Expand 10 before | Expand all | Expand 10 after
7614 7621
7615 void set attributes(Map<String, String> value) { 7622 void set attributes(Map<String, String> value) {
7616 Map<String, String> attributes = this.attributes; 7623 Map<String, String> attributes = this.attributes;
7617 attributes.clear(); 7624 attributes.clear();
7618 for (String key in value.keys) { 7625 for (String key in value.keys) {
7619 attributes[key] = value[key]; 7626 attributes[key] = value[key];
7620 } 7627 }
7621 } 7628 }
7622 7629
7623 void set elements(Collection<Element> value) { 7630 void set elements(Collection<Element> value) {
7624 final elements = this.elements; 7631 this.children = value;
7625 elements.clear();
7626 elements.addAll(value);
7627 } 7632 }
7628 7633
7629 /** 7634 /**
7635 * Deprecated, use [children] instead.
7636 */
7637 List<Element> get elements => this.children;
7638
7639 /**
7630 * @domName childElementCount, firstElementChild, lastElementChild, 7640 * @domName childElementCount, firstElementChild, lastElementChild,
7631 * children, Node.nodes.add 7641 * children, Node.nodes.add
7632 */ 7642 */
7633 List<Element> get elements => new _ChildrenElementList._wrap(this); 7643 @Creates('Null')
sra1 2012/11/19 22:16:34 Remove. Not needed on Dart code, only fields and m
blois 2012/11/19 22:58:53 Done.
7644 List<Element> get children => new _ChildrenElementList._wrap(this);
7645
7646 void set children(Collection<Element> value) {
7647 // Copy list first since we don't want liveness during iteration.
7648 List copy = new List.from(value);
7649 var children = this.children;
7650 children.clear();
7651 children.addAll(copy);
7652 }
7634 7653
7635 Element query(String selectors) => $dom_querySelector(selectors); 7654 Element query(String selectors) => $dom_querySelector(selectors);
7636 7655
7637 List<Element> queryAll(String selectors) => 7656 List<Element> queryAll(String selectors) =>
7638 new _FrozenElementList._wrap($dom_querySelectorAll(selectors)); 7657 new _FrozenElementList._wrap($dom_querySelectorAll(selectors));
7639 7658
7640 /** @domName className, classList */ 7659 /** @domName className, classList */
7641 CssClassSet get classes => new _ElementCssClassSet(this); 7660 CssClassSet get classes => new _ElementCssClassSet(this);
7642 7661
7643 void set classes(Collection<String> value) { 7662 void set classes(Collection<String> value) {
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
7977 if (match != null) { 7996 if (match != null) {
7978 tag = match.group(1).toLowerCase(); 7997 tag = match.group(1).toLowerCase();
7979 if (_CUSTOM_PARENT_TAG_MAP.containsKey(tag)) { 7998 if (_CUSTOM_PARENT_TAG_MAP.containsKey(tag)) {
7980 parentTag = _CUSTOM_PARENT_TAG_MAP[tag]; 7999 parentTag = _CUSTOM_PARENT_TAG_MAP[tag];
7981 } 8000 }
7982 } 8001 }
7983 final Element temp = new Element.tag(parentTag); 8002 final Element temp = new Element.tag(parentTag);
7984 temp.innerHTML = html; 8003 temp.innerHTML = html;
7985 8004
7986 Element element; 8005 Element element;
7987 if (temp.elements.length == 1) { 8006 if (temp.children.length == 1) {
7988 element = temp.elements[0]; 8007 element = temp.children[0];
7989 } else if (parentTag == 'html' && temp.elements.length == 2) { 8008 } else if (parentTag == 'html' && temp.children.length == 2) {
7990 // Work around for edge case in WebKit and possibly other browsers where 8009 // Work around for edge case in WebKit and possibly other browsers where
7991 // both body and head elements are created even though the inner html 8010 // both body and head elements are created even though the inner html
7992 // only contains a head or body element. 8011 // only contains a head or body element.
7993 element = temp.elements[tag == 'head' ? 0 : 1]; 8012 element = temp.children[tag == 'head' ? 0 : 1];
7994 } else { 8013 } else {
7995 throw new ArgumentError('HTML had ${temp.elements.length} ' 8014 throw new ArgumentError('HTML had ${temp.children.length} '
7996 'top level elements but 1 expected'); 8015 'top level elements but 1 expected');
7997 } 8016 }
7998 element.remove(); 8017 element.remove();
7999 return element; 8018 return element;
8000 } 8019 }
8001 8020
8002 /** @domName Document.createElement */ 8021 /** @domName Document.createElement */
8003 // Optimization to improve performance until the dart2js compiler inlines this 8022 // Optimization to improve performance until the dart2js compiler inlines this
8004 // method. 8023 // method.
8005 static Element createElement_tag(String tag) => 8024 static Element createElement_tag(String tag) =>
(...skipping 949 matching lines...) Expand 10 before | Expand all | Expand 10 after
8955 factory Float32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int lengt h]) => 8974 factory Float32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int lengt h]) =>
8956 _TypedArrayFactoryProvider.createFloat32Array_fromBuffer(buffer, byteOffset, length); 8975 _TypedArrayFactoryProvider.createFloat32Array_fromBuffer(buffer, byteOffset, length);
8957 8976
8958 static const int BYTES_PER_ELEMENT = 4; 8977 static const int BYTES_PER_ELEMENT = 4;
8959 8978
8960 /** @domName Float32Array.length */ 8979 /** @domName Float32Array.length */
8961 final int length; 8980 final int length;
8962 8981
8963 num operator[](int index) => JS("num", "#[#]", this, index); 8982 num operator[](int index) => JS("num", "#[#]", this, index);
8964 8983
8965 void operator[]=(int index, num value) { JS("void", "#[#] = #", this, index, v alue); } 8984 void operator[]=(int index, num value) { JS("void", "#[#] = #", this, index, v alue); } // -- start List<num> mixins.
sra1 2012/11/19 22:16:34 What happened here?
blois 2012/11/19 22:58:53 Looks like the file was out of date. Sync'd and it
8966 // -- start List<num> mixins.
8967 // num is the element type. 8985 // num is the element type.
8968 8986
8969 // From Iterable<num>: 8987 // From Iterable<num>:
8970 8988
8971 Iterator<num> iterator() { 8989 Iterator<num> iterator() {
8972 // Note: NodeLists are not fixed size. And most probably length shouldn't 8990 // Note: NodeLists are not fixed size. And most probably length shouldn't
8973 // be cached in both iterator _and_ forEach method. For now caching it 8991 // be cached in both iterator _and_ forEach method. For now caching it
8974 // for consistency. 8992 // for consistency.
8975 return new FixedSizeListIterator<num>(this); 8993 return new FixedSizeListIterator<num>(this);
8976 } 8994 }
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
9066 factory Float64Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int lengt h]) => 9084 factory Float64Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int lengt h]) =>
9067 _TypedArrayFactoryProvider.createFloat64Array_fromBuffer(buffer, byteOffset, length); 9085 _TypedArrayFactoryProvider.createFloat64Array_fromBuffer(buffer, byteOffset, length);
9068 9086
9069 static const int BYTES_PER_ELEMENT = 8; 9087 static const int BYTES_PER_ELEMENT = 8;
9070 9088
9071 /** @domName Float64Array.length */ 9089 /** @domName Float64Array.length */
9072 final int length; 9090 final int length;
9073 9091
9074 num operator[](int index) => JS("num", "#[#]", this, index); 9092 num operator[](int index) => JS("num", "#[#]", this, index);
9075 9093
9076 void operator[]=(int index, num value) { JS("void", "#[#] = #", this, index, v alue); } 9094 void operator[]=(int index, num value) { JS("void", "#[#] = #", this, index, v alue); } // -- start List<num> mixins.
9077 // -- start List<num> mixins.
9078 // num is the element type. 9095 // num is the element type.
9079 9096
9080 // From Iterable<num>: 9097 // From Iterable<num>:
9081 9098
9082 Iterator<num> iterator() { 9099 Iterator<num> iterator() {
9083 // Note: NodeLists are not fixed size. And most probably length shouldn't 9100 // Note: NodeLists are not fixed size. And most probably length shouldn't
9084 // be cached in both iterator _and_ forEach method. For now caching it 9101 // be cached in both iterator _and_ forEach method. For now caching it
9085 // for consistency. 9102 // for consistency.
9086 return new FixedSizeListIterator<num>(this); 9103 return new FixedSizeListIterator<num>(this);
9087 } 9104 }
(...skipping 2099 matching lines...) Expand 10 before | Expand all | Expand 10 after
11187 factory Int16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length] ) => 11204 factory Int16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length] ) =>
11188 _TypedArrayFactoryProvider.createInt16Array_fromBuffer(buffer, byteOffset, l ength); 11205 _TypedArrayFactoryProvider.createInt16Array_fromBuffer(buffer, byteOffset, l ength);
11189 11206
11190 static const int BYTES_PER_ELEMENT = 2; 11207 static const int BYTES_PER_ELEMENT = 2;
11191 11208
11192 /** @domName Int16Array.length */ 11209 /** @domName Int16Array.length */
11193 final int length; 11210 final int length;
11194 11211
11195 int operator[](int index) => JS("int", "#[#]", this, index); 11212 int operator[](int index) => JS("int", "#[#]", this, index);
11196 11213
11197 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } 11214 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } // -- start List<int> mixins.
11198 // -- start List<int> mixins.
11199 // int is the element type. 11215 // int is the element type.
11200 11216
11201 // From Iterable<int>: 11217 // From Iterable<int>:
11202 11218
11203 Iterator<int> iterator() { 11219 Iterator<int> iterator() {
11204 // Note: NodeLists are not fixed size. And most probably length shouldn't 11220 // Note: NodeLists are not fixed size. And most probably length shouldn't
11205 // be cached in both iterator _and_ forEach method. For now caching it 11221 // be cached in both iterator _and_ forEach method. For now caching it
11206 // for consistency. 11222 // for consistency.
11207 return new FixedSizeListIterator<int>(this); 11223 return new FixedSizeListIterator<int>(this);
11208 } 11224 }
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
11298 factory Int32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length] ) => 11314 factory Int32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length] ) =>
11299 _TypedArrayFactoryProvider.createInt32Array_fromBuffer(buffer, byteOffset, l ength); 11315 _TypedArrayFactoryProvider.createInt32Array_fromBuffer(buffer, byteOffset, l ength);
11300 11316
11301 static const int BYTES_PER_ELEMENT = 4; 11317 static const int BYTES_PER_ELEMENT = 4;
11302 11318
11303 /** @domName Int32Array.length */ 11319 /** @domName Int32Array.length */
11304 final int length; 11320 final int length;
11305 11321
11306 int operator[](int index) => JS("int", "#[#]", this, index); 11322 int operator[](int index) => JS("int", "#[#]", this, index);
11307 11323
11308 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } 11324 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } // -- start List<int> mixins.
11309 // -- start List<int> mixins.
11310 // int is the element type. 11325 // int is the element type.
11311 11326
11312 // From Iterable<int>: 11327 // From Iterable<int>:
11313 11328
11314 Iterator<int> iterator() { 11329 Iterator<int> iterator() {
11315 // Note: NodeLists are not fixed size. And most probably length shouldn't 11330 // Note: NodeLists are not fixed size. And most probably length shouldn't
11316 // be cached in both iterator _and_ forEach method. For now caching it 11331 // be cached in both iterator _and_ forEach method. For now caching it
11317 // for consistency. 11332 // for consistency.
11318 return new FixedSizeListIterator<int>(this); 11333 return new FixedSizeListIterator<int>(this);
11319 } 11334 }
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
11409 factory Int8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) => 11424 factory Int8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
11410 _TypedArrayFactoryProvider.createInt8Array_fromBuffer(buffer, byteOffset, le ngth); 11425 _TypedArrayFactoryProvider.createInt8Array_fromBuffer(buffer, byteOffset, le ngth);
11411 11426
11412 static const int BYTES_PER_ELEMENT = 1; 11427 static const int BYTES_PER_ELEMENT = 1;
11413 11428
11414 /** @domName Int8Array.length */ 11429 /** @domName Int8Array.length */
11415 final int length; 11430 final int length;
11416 11431
11417 int operator[](int index) => JS("int", "#[#]", this, index); 11432 int operator[](int index) => JS("int", "#[#]", this, index);
11418 11433
11419 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } 11434 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } // -- start List<int> mixins.
11420 // -- start List<int> mixins.
11421 // int is the element type. 11435 // int is the element type.
11422 11436
11423 // From Iterable<int>: 11437 // From Iterable<int>:
11424 11438
11425 Iterator<int> iterator() { 11439 Iterator<int> iterator() {
11426 // Note: NodeLists are not fixed size. And most probably length shouldn't 11440 // Note: NodeLists are not fixed size. And most probably length shouldn't
11427 // be cached in both iterator _and_ forEach method. For now caching it 11441 // be cached in both iterator _and_ forEach method. For now caching it
11428 // for consistency. 11442 // for consistency.
11429 return new FixedSizeListIterator<int>(this); 11443 return new FixedSizeListIterator<int>(this);
11430 } 11444 }
(...skipping 6558 matching lines...) Expand 10 before | Expand all | Expand 10 after
17989 factory Uint16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length ]) => 18003 factory Uint16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length ]) =>
17990 _TypedArrayFactoryProvider.createUint16Array_fromBuffer(buffer, byteOffset, length); 18004 _TypedArrayFactoryProvider.createUint16Array_fromBuffer(buffer, byteOffset, length);
17991 18005
17992 static const int BYTES_PER_ELEMENT = 2; 18006 static const int BYTES_PER_ELEMENT = 2;
17993 18007
17994 /** @domName Uint16Array.length */ 18008 /** @domName Uint16Array.length */
17995 final int length; 18009 final int length;
17996 18010
17997 int operator[](int index) => JS("int", "#[#]", this, index); 18011 int operator[](int index) => JS("int", "#[#]", this, index);
17998 18012
17999 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } 18013 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } // -- start List<int> mixins.
18000 // -- start List<int> mixins.
18001 // int is the element type. 18014 // int is the element type.
18002 18015
18003 // From Iterable<int>: 18016 // From Iterable<int>:
18004 18017
18005 Iterator<int> iterator() { 18018 Iterator<int> iterator() {
18006 // Note: NodeLists are not fixed size. And most probably length shouldn't 18019 // Note: NodeLists are not fixed size. And most probably length shouldn't
18007 // be cached in both iterator _and_ forEach method. For now caching it 18020 // be cached in both iterator _and_ forEach method. For now caching it
18008 // for consistency. 18021 // for consistency.
18009 return new FixedSizeListIterator<int>(this); 18022 return new FixedSizeListIterator<int>(this);
18010 } 18023 }
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
18100 factory Uint32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length ]) => 18113 factory Uint32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length ]) =>
18101 _TypedArrayFactoryProvider.createUint32Array_fromBuffer(buffer, byteOffset, length); 18114 _TypedArrayFactoryProvider.createUint32Array_fromBuffer(buffer, byteOffset, length);
18102 18115
18103 static const int BYTES_PER_ELEMENT = 4; 18116 static const int BYTES_PER_ELEMENT = 4;
18104 18117
18105 /** @domName Uint32Array.length */ 18118 /** @domName Uint32Array.length */
18106 final int length; 18119 final int length;
18107 18120
18108 int operator[](int index) => JS("int", "#[#]", this, index); 18121 int operator[](int index) => JS("int", "#[#]", this, index);
18109 18122
18110 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } 18123 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } // -- start List<int> mixins.
18111 // -- start List<int> mixins.
18112 // int is the element type. 18124 // int is the element type.
18113 18125
18114 // From Iterable<int>: 18126 // From Iterable<int>:
18115 18127
18116 Iterator<int> iterator() { 18128 Iterator<int> iterator() {
18117 // Note: NodeLists are not fixed size. And most probably length shouldn't 18129 // Note: NodeLists are not fixed size. And most probably length shouldn't
18118 // be cached in both iterator _and_ forEach method. For now caching it 18130 // be cached in both iterator _and_ forEach method. For now caching it
18119 // for consistency. 18131 // for consistency.
18120 return new FixedSizeListIterator<int>(this); 18132 return new FixedSizeListIterator<int>(this);
18121 } 18133 }
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
18211 factory Uint8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length] ) => 18223 factory Uint8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length] ) =>
18212 _TypedArrayFactoryProvider.createUint8Array_fromBuffer(buffer, byteOffset, l ength); 18224 _TypedArrayFactoryProvider.createUint8Array_fromBuffer(buffer, byteOffset, l ength);
18213 18225
18214 static const int BYTES_PER_ELEMENT = 1; 18226 static const int BYTES_PER_ELEMENT = 1;
18215 18227
18216 /** @domName Uint8Array.length */ 18228 /** @domName Uint8Array.length */
18217 final int length; 18229 final int length;
18218 18230
18219 int operator[](int index) => JS("int", "#[#]", this, index); 18231 int operator[](int index) => JS("int", "#[#]", this, index);
18220 18232
18221 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } 18233 void operator[]=(int index, int value) { JS("void", "#[#] = #", this, index, v alue); } // -- start List<int> mixins.
18222 // -- start List<int> mixins.
18223 // int is the element type. 18234 // int is the element type.
18224 18235
18225 // From Iterable<int>: 18236 // From Iterable<int>:
18226 18237
18227 Iterator<int> iterator() { 18238 Iterator<int> iterator() {
18228 // Note: NodeLists are not fixed size. And most probably length shouldn't 18239 // Note: NodeLists are not fixed size. And most probably length shouldn't
18229 // be cached in both iterator _and_ forEach method. For now caching it 18240 // be cached in both iterator _and_ forEach method. For now caching it
18230 // for consistency. 18241 // for consistency.
18231 return new FixedSizeListIterator<int>(this); 18242 return new FixedSizeListIterator<int>(this);
18232 } 18243 }
(...skipping 6766 matching lines...) Expand 10 before | Expand all | Expand 10 after
24999 if (length < 0) throw new ArgumentError('length'); 25010 if (length < 0) throw new ArgumentError('length');
25000 if (start < 0) throw new RangeError.value(start); 25011 if (start < 0) throw new RangeError.value(start);
25001 int end = start + length; 25012 int end = start + length;
25002 if (end > a.length) throw new RangeError.value(end); 25013 if (end > a.length) throw new RangeError.value(end);
25003 for (int i = start; i < end; i++) { 25014 for (int i = start; i < end; i++) {
25004 accumulator.add(a[i]); 25015 accumulator.add(a[i]);
25005 } 25016 }
25006 return accumulator; 25017 return accumulator;
25007 } 25018 }
25008 } 25019 }
OLDNEW
« no previous file with comments | « samples/tests/samples/lib/layout/grid_layout_demo.dart ('k') | sdk/lib/html/dartium/html_dartium.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698