OLD | NEW |
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 patch class Int8List { | 5 patch class Int8List { |
6 /* patch */ factory Int8List(int length) { | 6 /* patch */ factory Int8List(int length) { |
7 return new _Int8Array(length); | 7 return new _Int8Array(length); |
8 } | 8 } |
9 | 9 |
10 /* patch */ factory Int8List.transferable(int length) { | 10 /* patch */ factory Int8List.transferable(int length) { |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 | 189 |
190 bool contains(element) => Collections.contains(this, element); | 190 bool contains(element) => Collections.contains(this, element); |
191 | 191 |
192 void forEach(void f(element)) { | 192 void forEach(void f(element)) { |
193 var len = this.length; | 193 var len = this.length; |
194 for (var i = 0; i < len; i++) { | 194 for (var i = 0; i < len; i++) { |
195 f(this[i]); | 195 f(this[i]); |
196 } | 196 } |
197 } | 197 } |
198 | 198 |
199 Collection map(f(element)) { | 199 List mappedBy(f(int element)) { |
200 return Collections.map(this, new List(), f); | 200 return new MappedList<int, dynamic>(this, f); |
| 201 } |
| 202 |
| 203 String join([String separator]) { |
| 204 return Collections.join(this, separator); |
201 } | 205 } |
202 | 206 |
203 dynamic reduce(dynamic initialValue, | 207 dynamic reduce(dynamic initialValue, |
204 dynamic combine(dynamic initialValue, element)) { | 208 dynamic combine(dynamic initialValue, element)) { |
205 return Collections.reduce(this, initialValue, combine); | 209 return Collections.reduce(this, initialValue, combine); |
206 } | 210 } |
207 | 211 |
208 Collection filter(bool f(element)) { | 212 Collection where(bool f(element)) { |
209 return Collections.filter(this, new List(), f); | 213 return new WhereIterable<int>(this, f); |
| 214 } |
| 215 |
| 216 List<int> take(int n) { |
| 217 return new ListView<int>(this, 0, n); |
| 218 } |
| 219 |
| 220 Iterable<int> takeWhile(bool test(int value)) { |
| 221 return new TakeWhileIterable<int>(this, test); |
| 222 } |
| 223 |
| 224 List<int> skip(int n) { |
| 225 return new ListView<int>(this, n, null); |
| 226 } |
| 227 |
| 228 Iterable<int> skipWhile(bool test(int value)) { |
| 229 return new SkipWhileIterable<int>(this, test); |
210 } | 230 } |
211 | 231 |
212 bool every(bool f(element)) { | 232 bool every(bool f(element)) { |
213 return Collections.every(this, f); | 233 return Collections.every(this, f); |
214 } | 234 } |
215 | 235 |
216 bool some(bool f(element)) { | 236 bool any(bool f(element)) { |
217 return Collections.some(this, f); | 237 return Collections.any(this, f); |
| 238 } |
| 239 |
| 240 int firstMatching(bool test(int value), {int orElse()}) { |
| 241 return Collections.firstMatching(this, test, orElse); |
| 242 } |
| 243 |
| 244 int lastMatching(bool test(int value), {int orElse()}) { |
| 245 return Collections.lastMatchingInList(this, test, orElse); |
| 246 } |
| 247 |
| 248 int singleMatching(bool test(int value)) { |
| 249 return Collections.singleMatching(this, test); |
| 250 } |
| 251 |
| 252 int elementAt(int index) { |
| 253 return this[index]; |
218 } | 254 } |
219 | 255 |
220 bool get isEmpty { | 256 bool get isEmpty { |
221 return this.length == 0; | 257 return this.length == 0; |
222 } | 258 } |
223 | 259 |
224 int get length { | 260 int get length { |
225 return _length(); | 261 return _length(); |
226 } | 262 } |
227 | 263 |
228 // Methods implementing the List interface. | 264 // Methods implementing the List interface. |
229 | 265 |
230 set length(newLength) { | 266 set length(newLength) { |
231 throw new UnsupportedError( | 267 throw new UnsupportedError( |
232 "Cannot resize a non-extendable array"); | 268 "Cannot resize a non-extendable array"); |
233 } | 269 } |
234 | 270 |
235 void add(value) { | 271 void add(value) { |
236 throw new UnsupportedError( | 272 throw new UnsupportedError( |
237 "Cannot add to a non-extendable array"); | 273 "Cannot add to a non-extendable array"); |
238 } | 274 } |
239 | 275 |
240 void addLast(value) { | 276 void addLast(value) { |
241 throw new UnsupportedError( | 277 throw new UnsupportedError( |
242 "Cannot add to a non-extendable array"); | 278 "Cannot add to a non-extendable array"); |
243 } | 279 } |
244 | 280 |
245 void addAll(Collection value) { | 281 void addAll(Iterable value) { |
246 throw new UnsupportedError( | 282 throw new UnsupportedError( |
247 "Cannot add to a non-extendable array"); | 283 "Cannot add to a non-extendable array"); |
248 } | 284 } |
249 | 285 |
250 void sort([int compare(var a, var b)]) { | 286 void sort([int compare(var a, var b)]) { |
251 if (compare == null) compare = Comparable.compare; | 287 if (compare == null) compare = Comparable.compare; |
252 coreSort(this, compare); | 288 coreSort(this, compare); |
253 } | 289 } |
254 | 290 |
255 int indexOf(element, [int start = 0]) { | 291 int indexOf(element, [int start = 0]) { |
256 return Arrays.indexOf(this, element, start, this.length); | 292 return Arrays.indexOf(this, element, start, this.length); |
257 } | 293 } |
258 | 294 |
259 int lastIndexOf(element, [int start = null]) { | 295 int lastIndexOf(element, [int start = null]) { |
260 if (start == null) start = length - 1; | 296 if (start == null) start = length - 1; |
261 return Arrays.lastIndexOf(this, element, start); | 297 return Arrays.lastIndexOf(this, element, start); |
262 } | 298 } |
263 | 299 |
264 void clear() { | 300 void clear() { |
265 throw new UnsupportedError( | 301 throw new UnsupportedError( |
266 "Cannot remove from a non-extendable array"); | 302 "Cannot remove from a non-extendable array"); |
267 } | 303 } |
268 | 304 |
269 int removeLast() { | 305 int removeLast() { |
270 throw new UnsupportedError( | 306 throw new UnsupportedError( |
271 "Cannot remove from a non-extendable array"); | 307 "Cannot remove from a non-extendable array"); |
272 } | 308 } |
273 | 309 |
274 get first { | 310 int get first { |
275 return this[0]; | 311 if (length > 0) return this[0]; |
| 312 throw new StateError("No elements"); |
276 } | 313 } |
277 | 314 |
278 get last { | 315 int get last { |
279 return this[length - 1]; | 316 if (length > 0) return this[length - 1]; |
| 317 throw new StateError("No elements"); |
280 } | 318 } |
281 | 319 |
| 320 int get single { |
| 321 if (length == 1) return this[0]; |
| 322 if (length == 0) throw new StateError("No elements"); |
| 323 throw new StateError("More than one element"); |
| 324 } |
| 325 |
| 326 int min([int compare(int a, int b)]) => Collections.min(this, compare); |
| 327 |
| 328 int max([int compare(int a, int b)]) => Collections.max(this, compare); |
| 329 |
282 void removeRange(int start, int length) { | 330 void removeRange(int start, int length) { |
283 throw new UnsupportedError( | 331 throw new UnsupportedError( |
284 "Cannot remove from a non-extendable array"); | 332 "Cannot remove from a non-extendable array"); |
285 } | 333 } |
286 | 334 |
287 void insertRange(int start, int length, [initialValue]) { | 335 void insertRange(int start, int length, [initialValue]) { |
288 throw new UnsupportedError( | 336 throw new UnsupportedError( |
289 "Cannot add to a non-extendable array"); | 337 "Cannot add to a non-extendable array"); |
290 } | 338 } |
291 | 339 |
292 ByteArray asByteArray([int start = 0, int length]) { | 340 ByteArray asByteArray([int start = 0, int length]) { |
293 if (length == null) { | 341 if (length == null) { |
294 length = this.length; | 342 length = this.length; |
295 } | 343 } |
296 _rangeCheck(this.length, start, length); | 344 _rangeCheck(this.length, start, length); |
297 return new _ByteArrayView(this, | 345 return new _ByteArrayView(this, |
298 start * this.bytesPerElement(), | 346 start * this.bytesPerElement(), |
299 length * this.bytesPerElement()); | 347 length * this.bytesPerElement()); |
300 } | 348 } |
301 | 349 |
| 350 List<int> toList() { |
| 351 return new List<int>.from(this); |
| 352 } |
| 353 |
| 354 Set<int> toSet() { |
| 355 return new Set<int>.from(this); |
| 356 } |
| 357 |
302 int _length() native "ByteArray_getLength"; | 358 int _length() native "ByteArray_getLength"; |
303 | 359 |
304 void _setRange(int startInBytes, int lengthInBytes, | 360 void _setRange(int startInBytes, int lengthInBytes, |
305 _ByteArrayBase from, int startFromInBytes) | 361 _ByteArrayBase from, int startFromInBytes) |
306 native "ByteArray_setRange"; | 362 native "ByteArray_setRange"; |
307 | 363 |
308 int _getInt8(int byteOffset) native "ByteArray_getInt8"; | 364 int _getInt8(int byteOffset) native "ByteArray_getInt8"; |
309 int _setInt8(int byteOffset, int value) native "ByteArray_setInt8"; | 365 int _setInt8(int byteOffset, int value) native "ByteArray_setInt8"; |
310 | 366 |
311 int _getUint8(int byteOffset) native "ByteArray_getUint8"; | 367 int _getUint8(int byteOffset) native "ByteArray_getUint8"; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 } | 485 } |
430 | 486 |
431 int operator[](int index) { | 487 int operator[](int index) { |
432 return _getIndexed(index); | 488 return _getIndexed(index); |
433 } | 489 } |
434 | 490 |
435 int operator[]=(int index, int value) { | 491 int operator[]=(int index, int value) { |
436 _setIndexed(index, _toInt8(value)); | 492 _setIndexed(index, _toInt8(value)); |
437 } | 493 } |
438 | 494 |
439 Iterator<int> iterator() { | 495 Iterator<int> get iterator { |
440 return new _ByteArrayIterator<int>(this); | 496 return new _ByteArrayIterator<int>(this); |
441 } | 497 } |
442 | 498 |
443 List<int> getRange(int start, int length) { | 499 List<int> getRange(int start, int length) { |
444 _rangeCheck(this.length, start, length); | 500 _rangeCheck(this.length, start, length); |
445 List<int> result = _new(length); | 501 List<int> result = _new(length); |
446 result.setRange(0, length, this, start); | 502 result.setRange(0, length, this, start); |
447 return result; | 503 return result; |
448 } | 504 } |
449 | 505 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 } | 554 } |
499 | 555 |
500 int operator[](int index) { | 556 int operator[](int index) { |
501 return _getIndexed(index); | 557 return _getIndexed(index); |
502 } | 558 } |
503 | 559 |
504 int operator[]=(int index, int value) { | 560 int operator[]=(int index, int value) { |
505 _setIndexed(index, _toUint8(value)); | 561 _setIndexed(index, _toUint8(value)); |
506 } | 562 } |
507 | 563 |
508 Iterator<int> iterator() { | 564 Iterator<int> get iterator { |
509 return new _ByteArrayIterator<int>(this); | 565 return new _ByteArrayIterator<int>(this); |
510 } | 566 } |
511 | 567 |
512 List<int> getRange(int start, int length) { | 568 List<int> getRange(int start, int length) { |
513 _rangeCheck(this.length, start, length); | 569 _rangeCheck(this.length, start, length); |
514 List<int> result = _new(length); | 570 List<int> result = _new(length); |
515 result.setRange(0, length, this, start); | 571 result.setRange(0, length, this, start); |
516 return result; | 572 return result; |
517 } | 573 } |
518 | 574 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
569 } | 625 } |
570 | 626 |
571 int operator[](int index) { | 627 int operator[](int index) { |
572 return _getIndexed(index); | 628 return _getIndexed(index); |
573 } | 629 } |
574 | 630 |
575 int operator[]=(int index, int value) { | 631 int operator[]=(int index, int value) { |
576 _setIndexed(index, _toClampedUint8(value)); | 632 _setIndexed(index, _toClampedUint8(value)); |
577 } | 633 } |
578 | 634 |
579 Iterator<int> iterator() { | 635 Iterator<int> get iterator { |
580 return new _ByteArrayIterator<int>(this); | 636 return new _ByteArrayIterator<int>(this); |
581 } | 637 } |
582 | 638 |
583 List<int> getRange(int start, int length) { | 639 List<int> getRange(int start, int length) { |
584 _rangeCheck(this.length, start, length); | 640 _rangeCheck(this.length, start, length); |
585 List<int> result = _new(length); | 641 List<int> result = _new(length); |
586 result.setRange(0, length, this, start); | 642 result.setRange(0, length, this, start); |
587 return result; | 643 return result; |
588 } | 644 } |
589 | 645 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
639 } | 695 } |
640 | 696 |
641 int operator[](int index) { | 697 int operator[](int index) { |
642 return _getIndexed(index); | 698 return _getIndexed(index); |
643 } | 699 } |
644 | 700 |
645 int operator[]=(int index, int value) { | 701 int operator[]=(int index, int value) { |
646 _setIndexed(index, _toInt16(value)); | 702 _setIndexed(index, _toInt16(value)); |
647 } | 703 } |
648 | 704 |
649 Iterator<int> iterator() { | 705 Iterator<int> get iterator { |
650 return new _ByteArrayIterator<int>(this); | 706 return new _ByteArrayIterator<int>(this); |
651 } | 707 } |
652 | 708 |
653 List<int> getRange(int start, int length) { | 709 List<int> getRange(int start, int length) { |
654 _rangeCheck(this.length, start, length); | 710 _rangeCheck(this.length, start, length); |
655 List<int> result = _new(length); | 711 List<int> result = _new(length); |
656 result.setRange(0, length, this, start); | 712 result.setRange(0, length, this, start); |
657 return result; | 713 return result; |
658 } | 714 } |
659 | 715 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
708 } | 764 } |
709 | 765 |
710 int operator[](int index) { | 766 int operator[](int index) { |
711 return _getIndexed(index); | 767 return _getIndexed(index); |
712 } | 768 } |
713 | 769 |
714 int operator[]=(int index, int value) { | 770 int operator[]=(int index, int value) { |
715 _setIndexed(index, _toUint16(value)); | 771 _setIndexed(index, _toUint16(value)); |
716 } | 772 } |
717 | 773 |
718 Iterator<int> iterator() { | 774 Iterator<int> get iterator { |
719 return new _ByteArrayIterator<int>(this); | 775 return new _ByteArrayIterator<int>(this); |
720 } | 776 } |
721 | 777 |
722 List<int> getRange(int start, int length) { | 778 List<int> getRange(int start, int length) { |
723 _rangeCheck(this.length, start, length); | 779 _rangeCheck(this.length, start, length); |
724 List<int> result = _new(length); | 780 List<int> result = _new(length); |
725 result.setRange(0, length, this, start); | 781 result.setRange(0, length, this, start); |
726 return result; | 782 return result; |
727 } | 783 } |
728 | 784 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
777 } | 833 } |
778 | 834 |
779 int operator[](int index) { | 835 int operator[](int index) { |
780 return _getIndexed(index); | 836 return _getIndexed(index); |
781 } | 837 } |
782 | 838 |
783 int operator[]=(int index, int value) { | 839 int operator[]=(int index, int value) { |
784 _setIndexed(index, _toInt32(value)); | 840 _setIndexed(index, _toInt32(value)); |
785 } | 841 } |
786 | 842 |
787 Iterator<int> iterator() { | 843 Iterator<int> get iterator { |
788 return new _ByteArrayIterator<int>(this); | 844 return new _ByteArrayIterator<int>(this); |
789 } | 845 } |
790 | 846 |
791 List<int> getRange(int start, int length) { | 847 List<int> getRange(int start, int length) { |
792 _rangeCheck(this.length, start, length); | 848 _rangeCheck(this.length, start, length); |
793 List<int> result = _new(length); | 849 List<int> result = _new(length); |
794 result.setRange(0, length, this, start); | 850 result.setRange(0, length, this, start); |
795 return result; | 851 return result; |
796 } | 852 } |
797 | 853 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
847 } | 903 } |
848 | 904 |
849 int operator[](int index) { | 905 int operator[](int index) { |
850 return _getIndexed(index); | 906 return _getIndexed(index); |
851 } | 907 } |
852 | 908 |
853 int operator[]=(int index, int value) { | 909 int operator[]=(int index, int value) { |
854 _setIndexed(index, _toUint32(value)); | 910 _setIndexed(index, _toUint32(value)); |
855 } | 911 } |
856 | 912 |
857 Iterator<int> iterator() { | 913 Iterator<int> get iterator { |
858 return new _ByteArrayIterator<int>(this); | 914 return new _ByteArrayIterator<int>(this); |
859 } | 915 } |
860 | 916 |
861 List<int> getRange(int start, int length) { | 917 List<int> getRange(int start, int length) { |
862 _rangeCheck(this.length, start, length); | 918 _rangeCheck(this.length, start, length); |
863 List<int> result = _new(length); | 919 List<int> result = _new(length); |
864 result.setRange(0, length, this, start); | 920 result.setRange(0, length, this, start); |
865 return result; | 921 return result; |
866 } | 922 } |
867 | 923 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
916 } | 972 } |
917 | 973 |
918 int operator[](int index) { | 974 int operator[](int index) { |
919 return _getIndexed(index); | 975 return _getIndexed(index); |
920 } | 976 } |
921 | 977 |
922 int operator[]=(int index, int value) { | 978 int operator[]=(int index, int value) { |
923 _setIndexed(index, _toInt64(value)); | 979 _setIndexed(index, _toInt64(value)); |
924 } | 980 } |
925 | 981 |
926 Iterator<int> iterator() { | 982 Iterator<int> get iterator { |
927 return new _ByteArrayIterator<int>(this); | 983 return new _ByteArrayIterator<int>(this); |
928 } | 984 } |
929 | 985 |
930 List<int> getRange(int start, int length) { | 986 List<int> getRange(int start, int length) { |
931 _rangeCheck(this.length, start, length); | 987 _rangeCheck(this.length, start, length); |
932 List<int> result = _new(length); | 988 List<int> result = _new(length); |
933 result.setRange(0, length, this, start); | 989 result.setRange(0, length, this, start); |
934 return result; | 990 return result; |
935 } | 991 } |
936 | 992 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 } | 1041 } |
986 | 1042 |
987 int operator[](int index) { | 1043 int operator[](int index) { |
988 return _getIndexed(index); | 1044 return _getIndexed(index); |
989 } | 1045 } |
990 | 1046 |
991 int operator[]=(int index, int value) { | 1047 int operator[]=(int index, int value) { |
992 _setIndexed(index, _toUint64(value)); | 1048 _setIndexed(index, _toUint64(value)); |
993 } | 1049 } |
994 | 1050 |
995 Iterator<int> iterator() { | 1051 Iterator<int> get iterator { |
996 return new _ByteArrayIterator<int>(this); | 1052 return new _ByteArrayIterator<int>(this); |
997 } | 1053 } |
998 | 1054 |
999 List<int> getRange(int start, int length) { | 1055 List<int> getRange(int start, int length) { |
1000 _rangeCheck(this.length, start, length); | 1056 _rangeCheck(this.length, start, length); |
1001 List<int> result = _new(length); | 1057 List<int> result = _new(length); |
1002 result.setRange(0, length, this, start); | 1058 result.setRange(0, length, this, start); |
1003 return result; | 1059 return result; |
1004 } | 1060 } |
1005 | 1061 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1054 } | 1110 } |
1055 | 1111 |
1056 double operator[](int index) { | 1112 double operator[](int index) { |
1057 return _getIndexed(index); | 1113 return _getIndexed(index); |
1058 } | 1114 } |
1059 | 1115 |
1060 int operator[]=(int index, double value) { | 1116 int operator[]=(int index, double value) { |
1061 _setIndexed(index, value); | 1117 _setIndexed(index, value); |
1062 } | 1118 } |
1063 | 1119 |
1064 Iterator<double> iterator() { | 1120 Iterator<double> get iterator { |
1065 return new _ByteArrayIterator<double>(this); | 1121 return new _ByteArrayIterator<double>(this); |
1066 } | 1122 } |
1067 | 1123 |
1068 List<double> getRange(int start, int length) { | 1124 List<double> getRange(int start, int length) { |
1069 _rangeCheck(this.length, start, length); | 1125 _rangeCheck(this.length, start, length); |
1070 List<double> result = _new(length); | 1126 List<double> result = _new(length); |
1071 result.setRange(0, length, this, start); | 1127 result.setRange(0, length, this, start); |
1072 return result; | 1128 return result; |
1073 } | 1129 } |
1074 | 1130 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1123 } | 1179 } |
1124 | 1180 |
1125 double operator[](int index) { | 1181 double operator[](int index) { |
1126 return _getIndexed(index); | 1182 return _getIndexed(index); |
1127 } | 1183 } |
1128 | 1184 |
1129 int operator[]=(int index, double value) { | 1185 int operator[]=(int index, double value) { |
1130 _setIndexed(index, value); | 1186 _setIndexed(index, value); |
1131 } | 1187 } |
1132 | 1188 |
1133 Iterator<double> iterator() { | 1189 Iterator<double> get iterator { |
1134 return new _ByteArrayIterator<double>(this); | 1190 return new _ByteArrayIterator<double>(this); |
1135 } | 1191 } |
1136 | 1192 |
1137 List<double> getRange(int start, int length) { | 1193 List<double> getRange(int start, int length) { |
1138 _rangeCheck(this.length, start, length); | 1194 _rangeCheck(this.length, start, length); |
1139 List<double> result = _new(length); | 1195 List<double> result = _new(length); |
1140 result.setRange(0, length, this, start); | 1196 result.setRange(0, length, this, start); |
1141 return result; | 1197 return result; |
1142 } | 1198 } |
1143 | 1199 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1177 | 1233 |
1178 class _ExternalInt8Array extends _ByteArrayBase implements Int8List { | 1234 class _ExternalInt8Array extends _ByteArrayBase implements Int8List { |
1179 int operator[](int index) { | 1235 int operator[](int index) { |
1180 return _getIndexed(index); | 1236 return _getIndexed(index); |
1181 } | 1237 } |
1182 | 1238 |
1183 int operator[]=(int index, int value) { | 1239 int operator[]=(int index, int value) { |
1184 _setIndexed(index, _toInt8(value)); | 1240 _setIndexed(index, _toInt8(value)); |
1185 } | 1241 } |
1186 | 1242 |
1187 Iterator<int> iterator() { | 1243 Iterator<int> get iterator { |
1188 return new _ByteArrayIterator<int>(this); | 1244 return new _ByteArrayIterator<int>(this); |
1189 } | 1245 } |
1190 | 1246 |
1191 List<int> getRange(int start, int length) { | 1247 List<int> getRange(int start, int length) { |
1192 _rangeCheck(this.length, start, length); | 1248 _rangeCheck(this.length, start, length); |
1193 List<int> result = new Int8List(length); | 1249 List<int> result = new Int8List(length); |
1194 result.setRange(0, length, this, start); | 1250 result.setRange(0, length, this, start); |
1195 return result; | 1251 return result; |
1196 } | 1252 } |
1197 | 1253 |
(...skipping 29 matching lines...) Expand all Loading... |
1227 | 1283 |
1228 class _ExternalUint8Array extends _ByteArrayBase implements Uint8List { | 1284 class _ExternalUint8Array extends _ByteArrayBase implements Uint8List { |
1229 int operator[](int index) { | 1285 int operator[](int index) { |
1230 return _getIndexed(index); | 1286 return _getIndexed(index); |
1231 } | 1287 } |
1232 | 1288 |
1233 int operator[]=(int index, int value) { | 1289 int operator[]=(int index, int value) { |
1234 _setIndexed(index, _toUint8(value)); | 1290 _setIndexed(index, _toUint8(value)); |
1235 } | 1291 } |
1236 | 1292 |
1237 Iterator<int> iterator() { | 1293 Iterator<int> get iterator { |
1238 return new _ByteArrayIterator<int>(this); | 1294 return new _ByteArrayIterator<int>(this); |
1239 } | 1295 } |
1240 | 1296 |
1241 List<int> getRange(int start, int length) { | 1297 List<int> getRange(int start, int length) { |
1242 _rangeCheck(this.length, start, length); | 1298 _rangeCheck(this.length, start, length); |
1243 List<int> result = new Uint8List(length); | 1299 List<int> result = new Uint8List(length); |
1244 result.setRange(0, length, this, start); | 1300 result.setRange(0, length, this, start); |
1245 return result; | 1301 return result; |
1246 } | 1302 } |
1247 | 1303 |
(...skipping 29 matching lines...) Expand all Loading... |
1277 | 1333 |
1278 class _ExternalInt16Array extends _ByteArrayBase implements Int16List { | 1334 class _ExternalInt16Array extends _ByteArrayBase implements Int16List { |
1279 int operator[](int index) { | 1335 int operator[](int index) { |
1280 return _getIndexed(index); | 1336 return _getIndexed(index); |
1281 } | 1337 } |
1282 | 1338 |
1283 int operator[]=(int index, int value) { | 1339 int operator[]=(int index, int value) { |
1284 _setIndexed(index, _toInt16(value)); | 1340 _setIndexed(index, _toInt16(value)); |
1285 } | 1341 } |
1286 | 1342 |
1287 Iterator<int> iterator() { | 1343 Iterator<int> get iterator { |
1288 return new _ByteArrayIterator<int>(this); | 1344 return new _ByteArrayIterator<int>(this); |
1289 } | 1345 } |
1290 | 1346 |
1291 List<int> getRange(int start, int length) { | 1347 List<int> getRange(int start, int length) { |
1292 _rangeCheck(this.length, start, length); | 1348 _rangeCheck(this.length, start, length); |
1293 List<int> result = new Int16List(length); | 1349 List<int> result = new Int16List(length); |
1294 result.setRange(0, length, this, start); | 1350 result.setRange(0, length, this, start); |
1295 return result; | 1351 return result; |
1296 } | 1352 } |
1297 | 1353 |
(...skipping 29 matching lines...) Expand all Loading... |
1327 | 1383 |
1328 class _ExternalUint16Array extends _ByteArrayBase implements Uint16List { | 1384 class _ExternalUint16Array extends _ByteArrayBase implements Uint16List { |
1329 int operator[](int index) { | 1385 int operator[](int index) { |
1330 return _getIndexed(index); | 1386 return _getIndexed(index); |
1331 } | 1387 } |
1332 | 1388 |
1333 int operator[]=(int index, int value) { | 1389 int operator[]=(int index, int value) { |
1334 _setIndexed(index, _toUint16(value)); | 1390 _setIndexed(index, _toUint16(value)); |
1335 } | 1391 } |
1336 | 1392 |
1337 Iterator<int> iterator() { | 1393 Iterator<int> get iterator { |
1338 return new _ByteArrayIterator<int>(this); | 1394 return new _ByteArrayIterator<int>(this); |
1339 } | 1395 } |
1340 | 1396 |
1341 List<int> getRange(int start, int length) { | 1397 List<int> getRange(int start, int length) { |
1342 _rangeCheck(this.length, start, length); | 1398 _rangeCheck(this.length, start, length); |
1343 List<int> result = new Uint16List(length); | 1399 List<int> result = new Uint16List(length); |
1344 result.setRange(0, length, this, start); | 1400 result.setRange(0, length, this, start); |
1345 return result; | 1401 return result; |
1346 } | 1402 } |
1347 | 1403 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1379 | 1435 |
1380 class _ExternalInt32Array extends _ByteArrayBase implements Int32List { | 1436 class _ExternalInt32Array extends _ByteArrayBase implements Int32List { |
1381 int operator[](int index) { | 1437 int operator[](int index) { |
1382 return _getIndexed(index); | 1438 return _getIndexed(index); |
1383 } | 1439 } |
1384 | 1440 |
1385 int operator[]=(int index, int value) { | 1441 int operator[]=(int index, int value) { |
1386 _setIndexed(index, _toInt32(value)); | 1442 _setIndexed(index, _toInt32(value)); |
1387 } | 1443 } |
1388 | 1444 |
1389 Iterator<int> iterator() { | 1445 Iterator<int> get iterator { |
1390 return new _ByteArrayIterator<int>(this); | 1446 return new _ByteArrayIterator<int>(this); |
1391 } | 1447 } |
1392 | 1448 |
1393 List<int> getRange(int start, int length) { | 1449 List<int> getRange(int start, int length) { |
1394 _rangeCheck(this.length, start, length); | 1450 _rangeCheck(this.length, start, length); |
1395 List<int> result = new Int32List(length); | 1451 List<int> result = new Int32List(length); |
1396 result.setRange(0, length, this, start); | 1452 result.setRange(0, length, this, start); |
1397 return result; | 1453 return result; |
1398 } | 1454 } |
1399 | 1455 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1431 | 1487 |
1432 class _ExternalUint32Array extends _ByteArrayBase implements Uint32List { | 1488 class _ExternalUint32Array extends _ByteArrayBase implements Uint32List { |
1433 int operator[](int index) { | 1489 int operator[](int index) { |
1434 return _getIndexed(index); | 1490 return _getIndexed(index); |
1435 } | 1491 } |
1436 | 1492 |
1437 int operator[]=(int index, int value) { | 1493 int operator[]=(int index, int value) { |
1438 _setIndexed(index, _toUint32(value)); | 1494 _setIndexed(index, _toUint32(value)); |
1439 } | 1495 } |
1440 | 1496 |
1441 Iterator<int> iterator() { | 1497 Iterator<int> get iterator { |
1442 return new _ByteArrayIterator<int>(this); | 1498 return new _ByteArrayIterator<int>(this); |
1443 } | 1499 } |
1444 | 1500 |
1445 List<int> getRange(int start, int length) { | 1501 List<int> getRange(int start, int length) { |
1446 _rangeCheck(this.length, start, length); | 1502 _rangeCheck(this.length, start, length); |
1447 List<int> result = new Uint32List(length); | 1503 List<int> result = new Uint32List(length); |
1448 result.setRange(0, length, this, start); | 1504 result.setRange(0, length, this, start); |
1449 return result; | 1505 return result; |
1450 } | 1506 } |
1451 | 1507 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1483 | 1539 |
1484 class _ExternalInt64Array extends _ByteArrayBase implements Int64List { | 1540 class _ExternalInt64Array extends _ByteArrayBase implements Int64List { |
1485 int operator[](int index) { | 1541 int operator[](int index) { |
1486 return _getIndexed(index); | 1542 return _getIndexed(index); |
1487 } | 1543 } |
1488 | 1544 |
1489 int operator[]=(int index, int value) { | 1545 int operator[]=(int index, int value) { |
1490 _setIndexed(index, _toInt64(value)); | 1546 _setIndexed(index, _toInt64(value)); |
1491 } | 1547 } |
1492 | 1548 |
1493 Iterator<int> iterator() { | 1549 Iterator<int> get iterator { |
1494 return new _ByteArrayIterator<int>(this); | 1550 return new _ByteArrayIterator<int>(this); |
1495 } | 1551 } |
1496 | 1552 |
1497 List<int> getRange(int start, int length) { | 1553 List<int> getRange(int start, int length) { |
1498 _rangeCheck(this.length, start, length); | 1554 _rangeCheck(this.length, start, length); |
1499 List<int> result = new Int64List(length); | 1555 List<int> result = new Int64List(length); |
1500 result.setRange(0, length, this, start); | 1556 result.setRange(0, length, this, start); |
1501 return result; | 1557 return result; |
1502 } | 1558 } |
1503 | 1559 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1535 | 1591 |
1536 class _ExternalUint64Array extends _ByteArrayBase implements Uint64List { | 1592 class _ExternalUint64Array extends _ByteArrayBase implements Uint64List { |
1537 int operator[](int index) { | 1593 int operator[](int index) { |
1538 return _getIndexed(index); | 1594 return _getIndexed(index); |
1539 } | 1595 } |
1540 | 1596 |
1541 int operator[]=(int index, int value) { | 1597 int operator[]=(int index, int value) { |
1542 _setIndexed(index, _toUint64(value)); | 1598 _setIndexed(index, _toUint64(value)); |
1543 } | 1599 } |
1544 | 1600 |
1545 Iterator<int> iterator() { | 1601 Iterator<int> get iterator { |
1546 return new _ByteArrayIterator<int>(this); | 1602 return new _ByteArrayIterator<int>(this); |
1547 } | 1603 } |
1548 | 1604 |
1549 List<int> getRange(int start, int length) { | 1605 List<int> getRange(int start, int length) { |
1550 _rangeCheck(this.length, start, length); | 1606 _rangeCheck(this.length, start, length); |
1551 List<int> result = new Uint64List(length); | 1607 List<int> result = new Uint64List(length); |
1552 result.setRange(0, length, this, start); | 1608 result.setRange(0, length, this, start); |
1553 return result; | 1609 return result; |
1554 } | 1610 } |
1555 | 1611 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1587 | 1643 |
1588 class _ExternalFloat32Array extends _ByteArrayBase implements Float32List { | 1644 class _ExternalFloat32Array extends _ByteArrayBase implements Float32List { |
1589 double operator[](int index) { | 1645 double operator[](int index) { |
1590 return _getIndexed(index); | 1646 return _getIndexed(index); |
1591 } | 1647 } |
1592 | 1648 |
1593 int operator[]=(int index, double value) { | 1649 int operator[]=(int index, double value) { |
1594 _setIndexed(index, value); | 1650 _setIndexed(index, value); |
1595 } | 1651 } |
1596 | 1652 |
1597 Iterator<double> iterator() { | 1653 Iterator<double> get iterator { |
1598 return new _ByteArrayIterator<double>(this); | 1654 return new _ByteArrayIterator<double>(this); |
1599 } | 1655 } |
1600 | 1656 |
1601 List<double> getRange(int start, int length) { | 1657 List<double> getRange(int start, int length) { |
1602 _rangeCheck(this.length, start, length); | 1658 _rangeCheck(this.length, start, length); |
1603 List<double> result = new Float32List(length); | 1659 List<double> result = new Float32List(length); |
1604 result.setRange(0, length, this, start); | 1660 result.setRange(0, length, this, start); |
1605 return result; | 1661 return result; |
1606 } | 1662 } |
1607 | 1663 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1639 | 1695 |
1640 class _ExternalFloat64Array extends _ByteArrayBase implements Float64List { | 1696 class _ExternalFloat64Array extends _ByteArrayBase implements Float64List { |
1641 double operator[](int index) { | 1697 double operator[](int index) { |
1642 return _getIndexed(index); | 1698 return _getIndexed(index); |
1643 } | 1699 } |
1644 | 1700 |
1645 int operator[]=(int index, double value) { | 1701 int operator[]=(int index, double value) { |
1646 _setIndexed(index, value); | 1702 _setIndexed(index, value); |
1647 } | 1703 } |
1648 | 1704 |
1649 Iterator<double> iterator() { | 1705 Iterator<double> get iterator { |
1650 return new _ByteArrayIterator<double>(this); | 1706 return new _ByteArrayIterator<double>(this); |
1651 } | 1707 } |
1652 | 1708 |
1653 List<double> getRange(int start, int length) { | 1709 List<double> getRange(int start, int length) { |
1654 _rangeCheck(this.length, start, length); | 1710 _rangeCheck(this.length, start, length); |
1655 List<double> result = new Float64List(length); | 1711 List<double> result = new Float64List(length); |
1656 result.setRange(0, length, this, start); | 1712 result.setRange(0, length, this, start); |
1657 return result; | 1713 return result; |
1658 } | 1714 } |
1659 | 1715 |
(...skipping 23 matching lines...) Expand all Loading... |
1683 static const int _BYTES_PER_ELEMENT = 8; | 1739 static const int _BYTES_PER_ELEMENT = 8; |
1684 | 1740 |
1685 double _getIndexed(int index) | 1741 double _getIndexed(int index) |
1686 native "ExternalFloat64Array_getIndexed"; | 1742 native "ExternalFloat64Array_getIndexed"; |
1687 int _setIndexed(int index, double value) | 1743 int _setIndexed(int index, double value) |
1688 native "ExternalFloat64Array_setIndexed"; | 1744 native "ExternalFloat64Array_setIndexed"; |
1689 } | 1745 } |
1690 | 1746 |
1691 | 1747 |
1692 class _ByteArrayIterator<E> implements Iterator<E> { | 1748 class _ByteArrayIterator<E> implements Iterator<E> { |
| 1749 final List<E> _array; |
| 1750 final int _length; |
| 1751 int _position; |
| 1752 E _current; |
| 1753 |
1693 _ByteArrayIterator(List array) | 1754 _ByteArrayIterator(List array) |
1694 : _array = array, _length = array.length, _pos = 0 { | 1755 : _array = array, _length = array.length, _position = -1 { |
1695 assert(array is _ByteArrayBase || array is _ByteArrayViewBase); | 1756 assert(array is _ByteArrayBase || array is _ByteArrayViewBase); |
1696 } | 1757 } |
1697 | 1758 |
1698 bool get hasNext { | 1759 bool moveNext() { |
1699 return _length > _pos; | 1760 int nextPosition = _position + 1; |
| 1761 if (nextPosition < _length) { |
| 1762 _current = _array[nextPosition]; |
| 1763 _position = nextPosition; |
| 1764 return true; |
| 1765 } |
| 1766 _position = _length; |
| 1767 _current = null; |
| 1768 return false; |
1700 } | 1769 } |
1701 | 1770 |
1702 E next() { | 1771 E get current => _current; |
1703 if (!hasNext) { | |
1704 throw new StateError("No more elements"); | |
1705 } | |
1706 return _array[_pos++]; | |
1707 } | |
1708 | |
1709 final List<E> _array; | |
1710 final int _length; | |
1711 int _pos; | |
1712 } | 1772 } |
1713 | 1773 |
1714 | 1774 |
1715 class _ByteArrayView implements ByteArray { | 1775 class _ByteArrayView implements ByteArray { |
1716 _ByteArrayView(this._array, this._offset, this._length) { | 1776 _ByteArrayView(this._array, this._offset, this._length) { |
1717 _rangeCheck(_array.lengthInBytes(), _offset, _length); | 1777 _rangeCheck(_array.lengthInBytes(), _offset, _length); |
1718 } | 1778 } |
1719 | 1779 |
1720 int lengthInBytes() { | 1780 int lengthInBytes() { |
1721 return _length; | 1781 return _length; |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1800 int setFloat64(int byteOffset, double value) { | 1860 int setFloat64(int byteOffset, double value) { |
1801 return _array._setFloat64(_offset + byteOffset, value); | 1861 return _array._setFloat64(_offset + byteOffset, value); |
1802 } | 1862 } |
1803 | 1863 |
1804 final _ByteArrayBase _array; | 1864 final _ByteArrayBase _array; |
1805 final int _offset; | 1865 final int _offset; |
1806 final int _length; | 1866 final int _length; |
1807 } | 1867 } |
1808 | 1868 |
1809 | 1869 |
1810 class _ByteArrayViewBase { | 1870 // TODO(floitsch): extending the collection adds extra cost (because of type |
| 1871 // parameters). Consider copying the functions from Collection into this class |
| 1872 // and just implementing Collection<int>. |
| 1873 class _ByteArrayViewBase extends Collection<int> { |
1811 num operator[](int index); | 1874 num operator[](int index); |
1812 | 1875 |
1813 // Methods implementing the Collection interface. | 1876 // Methods implementing the Collection interface. |
1814 | 1877 |
1815 void forEach(void f(element)) { | 1878 void forEach(void f(element)) { |
1816 var len = this.length; | 1879 var len = this.length; |
1817 for (var i = 0; i < len; i++) { | 1880 for (var i = 0; i < len; i++) { |
1818 f(this[i]); | 1881 f(this[i]); |
1819 } | 1882 } |
1820 } | 1883 } |
1821 | 1884 |
1822 Collection map(f(element)) { | |
1823 return Collections.map(this, new List(), f); | |
1824 } | |
1825 | |
1826 dynamic reduce(dynamic initialValue, | |
1827 dynamic combine(dynamic initialValue, element)) { | |
1828 return Collections.reduce(this, initialValue, combine); | |
1829 } | |
1830 | |
1831 Collection filter(bool f(element)) { | |
1832 return Collections.filter(this, new List(), f); | |
1833 } | |
1834 | |
1835 bool every(bool f(element)) { | |
1836 return Collections.every(this, f); | |
1837 } | |
1838 | |
1839 bool some(bool f(element)) { | |
1840 return Collections.some(this, f);; | |
1841 } | |
1842 | |
1843 bool get isEmpty { | 1885 bool get isEmpty { |
1844 return this.length == 0; | 1886 return this.length == 0; |
1845 } | 1887 } |
1846 | 1888 |
1847 int get length; | 1889 int get length; |
1848 | 1890 |
1849 // Methods implementing the List interface. | 1891 // Methods implementing the List interface. |
1850 | 1892 |
1851 set length(newLength) { | 1893 set length(newLength) { |
1852 throw new UnsupportedError( | 1894 throw new UnsupportedError( |
1853 "Cannot resize a non-extendable array"); | 1895 "Cannot resize a non-extendable array"); |
1854 } | 1896 } |
1855 | 1897 |
1856 void add(value) { | 1898 void add(value) { |
1857 throw new UnsupportedError( | 1899 throw new UnsupportedError( |
1858 "Cannot add to a non-extendable array"); | 1900 "Cannot add to a non-extendable array"); |
1859 } | 1901 } |
1860 | 1902 |
1861 void addLast(value) { | 1903 void addLast(value) { |
1862 throw new UnsupportedError( | 1904 throw new UnsupportedError( |
1863 "Cannot add to a non-extendable array"); | 1905 "Cannot add to a non-extendable array"); |
1864 } | 1906 } |
1865 | 1907 |
1866 void addAll(Collection value) { | 1908 void addAll(Iterable value) { |
1867 throw new UnsupportedError( | 1909 throw new UnsupportedError( |
1868 "Cannot add to a non-extendable array"); | 1910 "Cannot add to a non-extendable array"); |
1869 } | 1911 } |
1870 | 1912 |
1871 void sort([int compare(var a, var b)]) { | 1913 void sort([int compare(var a, var b)]) { |
1872 if (compare == null) compare = Comparable.compare; | 1914 if (compare == null) compare = Comparable.compare; |
1873 coreSort(this, compare); | 1915 coreSort(this, compare); |
1874 } | 1916 } |
1875 | 1917 |
1876 int indexOf(element, [int start = 0]) { | 1918 int indexOf(element, [int start = 0]) { |
1877 return Arrays.indexOf(this, element, start, this.length); | 1919 return Arrays.indexOf(this, element, start, this.length); |
1878 } | 1920 } |
1879 | 1921 |
1880 int lastIndexOf(element, [int start = null]) { | 1922 int lastIndexOf(element, [int start = null]) { |
1881 if (start == null) start = length - 1; | 1923 if (start == null) start = length - 1; |
1882 return Arrays.lastIndexOf(this, element, start); | 1924 return Arrays.lastIndexOf(this, element, start); |
1883 } | 1925 } |
1884 | 1926 |
1885 void clear() { | 1927 void clear() { |
1886 throw new UnsupportedError( | 1928 throw new UnsupportedError( |
1887 "Cannot remove from a non-extendable array"); | 1929 "Cannot remove from a non-extendable array"); |
1888 } | 1930 } |
1889 | 1931 |
1890 int removeLast() { | 1932 int removeLast() { |
1891 throw new UnsupportedError( | 1933 throw new UnsupportedError( |
1892 "Cannot remove from a non-extendable array"); | 1934 "Cannot remove from a non-extendable array"); |
1893 } | 1935 } |
1894 | 1936 |
1895 get first { | 1937 int get first { |
1896 return this[0]; | 1938 if (length > 0) return this[0]; |
| 1939 throw new StateError("No elements"); |
1897 } | 1940 } |
1898 | 1941 |
1899 get last { | 1942 int get last { |
1900 return this[length - 1]; | 1943 if (length > 0) return this[length - 1]; |
| 1944 throw new StateError("No elements"); |
| 1945 } |
| 1946 |
| 1947 int get single { |
| 1948 if (length == 1) return this[0]; |
| 1949 if (length == 0) throw new StateError("No elements"); |
| 1950 throw new StateError("More than one element"); |
1901 } | 1951 } |
1902 | 1952 |
1903 void removeRange(int start, int length) { | 1953 void removeRange(int start, int length) { |
1904 throw new UnsupportedError( | 1954 throw new UnsupportedError( |
1905 "Cannot remove from a non-extendable array"); | 1955 "Cannot remove from a non-extendable array"); |
1906 } | 1956 } |
1907 | 1957 |
1908 void insertRange(int start, int length, [initialValue]) { | 1958 void insertRange(int start, int length, [initialValue]) { |
1909 throw new UnsupportedError( | 1959 throw new UnsupportedError( |
1910 "Cannot add to a non-extendable array"); | 1960 "Cannot add to a non-extendable array"); |
(...skipping 24 matching lines...) Expand all Loading... |
1935 } | 1985 } |
1936 | 1986 |
1937 void operator[]=(int index, int value) { | 1987 void operator[]=(int index, int value) { |
1938 if (index < 0 || index >= _length) { | 1988 if (index < 0 || index >= _length) { |
1939 String message = "$index must be in the range [0..$_length)"; | 1989 String message = "$index must be in the range [0..$_length)"; |
1940 throw new RangeError(message); | 1990 throw new RangeError(message); |
1941 } | 1991 } |
1942 _array.setInt8(_offset + (index * _BYTES_PER_ELEMENT), _toInt8(value)); | 1992 _array.setInt8(_offset + (index * _BYTES_PER_ELEMENT), _toInt8(value)); |
1943 } | 1993 } |
1944 | 1994 |
1945 Iterator<int> iterator() { | 1995 Iterator<int> get iterator { |
1946 return new _ByteArrayIterator<int>(this); | 1996 return new _ByteArrayIterator<int>(this); |
1947 } | 1997 } |
1948 | 1998 |
1949 List<int> getRange(int start, int length) { | 1999 List<int> getRange(int start, int length) { |
1950 _rangeCheck(this.length, start, length); | 2000 _rangeCheck(this.length, start, length); |
1951 List<int> result = new Int8List(length); | 2001 List<int> result = new Int8List(length); |
1952 result.setRange(0, length, this, start); | 2002 result.setRange(0, length, this, start); |
1953 return result; | 2003 return result; |
1954 } | 2004 } |
1955 | 2005 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2007 } | 2057 } |
2008 | 2058 |
2009 void operator[]=(int index, int value) { | 2059 void operator[]=(int index, int value) { |
2010 if (index < 0 || index >= _length) { | 2060 if (index < 0 || index >= _length) { |
2011 String message = "$index must be in the range [0..$_length)"; | 2061 String message = "$index must be in the range [0..$_length)"; |
2012 throw new RangeError(message); | 2062 throw new RangeError(message); |
2013 } | 2063 } |
2014 _array.setUint8(_offset + (index * _BYTES_PER_ELEMENT), _toUint8(value)); | 2064 _array.setUint8(_offset + (index * _BYTES_PER_ELEMENT), _toUint8(value)); |
2015 } | 2065 } |
2016 | 2066 |
2017 Iterator<int> iterator() { | 2067 Iterator<int> get iterator { |
2018 return new _ByteArrayIterator<int>(this); | 2068 return new _ByteArrayIterator<int>(this); |
2019 } | 2069 } |
2020 | 2070 |
2021 List<int> getRange(int start, int length) { | 2071 List<int> getRange(int start, int length) { |
2022 _rangeCheck(this.length, start, length); | 2072 _rangeCheck(this.length, start, length); |
2023 List<int> result = new Uint8List(length); | 2073 List<int> result = new Uint8List(length); |
2024 result.setRange(0, length, this, start); | 2074 result.setRange(0, length, this, start); |
2025 return result; | 2075 return result; |
2026 } | 2076 } |
2027 | 2077 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2079 } | 2129 } |
2080 | 2130 |
2081 void operator[]=(int index, int value) { | 2131 void operator[]=(int index, int value) { |
2082 if (index < 0 || index >= _length) { | 2132 if (index < 0 || index >= _length) { |
2083 String message = "$index must be in the range [0..$_length)"; | 2133 String message = "$index must be in the range [0..$_length)"; |
2084 throw new RangeError(message); | 2134 throw new RangeError(message); |
2085 } | 2135 } |
2086 _array.setInt16(_offset + (index * _BYTES_PER_ELEMENT), _toInt16(value)); | 2136 _array.setInt16(_offset + (index * _BYTES_PER_ELEMENT), _toInt16(value)); |
2087 } | 2137 } |
2088 | 2138 |
2089 Iterator<int> iterator() { | 2139 Iterator<int> get iterator { |
2090 return new _ByteArrayIterator<int>(this); | 2140 return new _ByteArrayIterator<int>(this); |
2091 } | 2141 } |
2092 | 2142 |
2093 List<int> getRange(int start, int length) { | 2143 List<int> getRange(int start, int length) { |
2094 _rangeCheck(this.length, start, length); | 2144 _rangeCheck(this.length, start, length); |
2095 List<int> result = new Int16List(length); | 2145 List<int> result = new Int16List(length); |
2096 result.setRange(0, length, this, start); | 2146 result.setRange(0, length, this, start); |
2097 return result; | 2147 return result; |
2098 } | 2148 } |
2099 | 2149 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2151 } | 2201 } |
2152 | 2202 |
2153 void operator[]=(int index, int value) { | 2203 void operator[]=(int index, int value) { |
2154 if (index < 0 || index >= _length) { | 2204 if (index < 0 || index >= _length) { |
2155 String message = "$index must be in the range [0..$_length)"; | 2205 String message = "$index must be in the range [0..$_length)"; |
2156 throw new RangeError(message); | 2206 throw new RangeError(message); |
2157 } | 2207 } |
2158 _array.setUint16(_offset + (index * _BYTES_PER_ELEMENT), _toUint16(value)); | 2208 _array.setUint16(_offset + (index * _BYTES_PER_ELEMENT), _toUint16(value)); |
2159 } | 2209 } |
2160 | 2210 |
2161 Iterator<int> iterator() { | 2211 Iterator<int> get iterator { |
2162 return new _ByteArrayIterator<int>(this); | 2212 return new _ByteArrayIterator<int>(this); |
2163 } | 2213 } |
2164 | 2214 |
2165 List<int> getRange(int start, int length) { | 2215 List<int> getRange(int start, int length) { |
2166 _rangeCheck(this.length, start, length); | 2216 _rangeCheck(this.length, start, length); |
2167 List<int> result = new Uint16List(length); | 2217 List<int> result = new Uint16List(length); |
2168 result.setRange(0, length, this, start); | 2218 result.setRange(0, length, this, start); |
2169 return result; | 2219 return result; |
2170 } | 2220 } |
2171 | 2221 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2223 } | 2273 } |
2224 | 2274 |
2225 void operator[]=(int index, int value) { | 2275 void operator[]=(int index, int value) { |
2226 if (index < 0 || index >= _length) { | 2276 if (index < 0 || index >= _length) { |
2227 String message = "$index must be in the range [0..$_length)"; | 2277 String message = "$index must be in the range [0..$_length)"; |
2228 throw new RangeError(message); | 2278 throw new RangeError(message); |
2229 } | 2279 } |
2230 _array.setInt32(_offset + (index * _BYTES_PER_ELEMENT), _toInt32(value)); | 2280 _array.setInt32(_offset + (index * _BYTES_PER_ELEMENT), _toInt32(value)); |
2231 } | 2281 } |
2232 | 2282 |
2233 Iterator<int> iterator() { | 2283 Iterator<int> get iterator { |
2234 return new _ByteArrayIterator<int>(this); | 2284 return new _ByteArrayIterator<int>(this); |
2235 } | 2285 } |
2236 | 2286 |
2237 List<int> getRange(int start, int length) { | 2287 List<int> getRange(int start, int length) { |
2238 _rangeCheck(this.length, start, length); | 2288 _rangeCheck(this.length, start, length); |
2239 List<int> result = new Int32List(length); | 2289 List<int> result = new Int32List(length); |
2240 result.setRange(0, length, this, start); | 2290 result.setRange(0, length, this, start); |
2241 return result; | 2291 return result; |
2242 } | 2292 } |
2243 | 2293 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2295 } | 2345 } |
2296 | 2346 |
2297 void operator[]=(int index, int value) { | 2347 void operator[]=(int index, int value) { |
2298 if (index < 0 || index >= _length) { | 2348 if (index < 0 || index >= _length) { |
2299 String message = "$index must be in the range [0..$_length)"; | 2349 String message = "$index must be in the range [0..$_length)"; |
2300 throw new RangeError(message); | 2350 throw new RangeError(message); |
2301 } | 2351 } |
2302 _array.setUint32(_offset + (index * _BYTES_PER_ELEMENT), _toUint32(value)); | 2352 _array.setUint32(_offset + (index * _BYTES_PER_ELEMENT), _toUint32(value)); |
2303 } | 2353 } |
2304 | 2354 |
2305 Iterator<int> iterator() { | 2355 Iterator<int> get iterator { |
2306 return new _ByteArrayIterator<int>(this); | 2356 return new _ByteArrayIterator<int>(this); |
2307 } | 2357 } |
2308 | 2358 |
2309 List<int> getRange(int start, int length) { | 2359 List<int> getRange(int start, int length) { |
2310 _rangeCheck(this.length, start, length); | 2360 _rangeCheck(this.length, start, length); |
2311 List<int> result = new Uint32List(length); | 2361 List<int> result = new Uint32List(length); |
2312 result.setRange(0, length, this, start); | 2362 result.setRange(0, length, this, start); |
2313 return result; | 2363 return result; |
2314 } | 2364 } |
2315 | 2365 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2367 } | 2417 } |
2368 | 2418 |
2369 void operator[]=(int index, int value) { | 2419 void operator[]=(int index, int value) { |
2370 if (index < 0 || index >= _length) { | 2420 if (index < 0 || index >= _length) { |
2371 String message = "$index must be in the range [0..$_length)"; | 2421 String message = "$index must be in the range [0..$_length)"; |
2372 throw new RangeError(message); | 2422 throw new RangeError(message); |
2373 } | 2423 } |
2374 _array.setInt64(_offset + (index * _BYTES_PER_ELEMENT), _toInt64(value)); | 2424 _array.setInt64(_offset + (index * _BYTES_PER_ELEMENT), _toInt64(value)); |
2375 } | 2425 } |
2376 | 2426 |
2377 Iterator<int> iterator() { | 2427 Iterator<int> get iterator { |
2378 return new _ByteArrayIterator<int>(this); | 2428 return new _ByteArrayIterator<int>(this); |
2379 } | 2429 } |
2380 | 2430 |
2381 List<int> getRange(int start, int length) { | 2431 List<int> getRange(int start, int length) { |
2382 _rangeCheck(this.length, start, length); | 2432 _rangeCheck(this.length, start, length); |
2383 List<int> result = new Int64List(length); | 2433 List<int> result = new Int64List(length); |
2384 result.setRange(0, length, this, start); | 2434 result.setRange(0, length, this, start); |
2385 return result; | 2435 return result; |
2386 } | 2436 } |
2387 | 2437 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2439 } | 2489 } |
2440 | 2490 |
2441 void operator[]=(int index, int value) { | 2491 void operator[]=(int index, int value) { |
2442 if (index < 0 || index >= _length) { | 2492 if (index < 0 || index >= _length) { |
2443 String message = "$index must be in the range [0..$_length)"; | 2493 String message = "$index must be in the range [0..$_length)"; |
2444 throw new RangeError(message); | 2494 throw new RangeError(message); |
2445 } | 2495 } |
2446 _array.setUint64(_offset + (index * _BYTES_PER_ELEMENT), _toUint64(value)); | 2496 _array.setUint64(_offset + (index * _BYTES_PER_ELEMENT), _toUint64(value)); |
2447 } | 2497 } |
2448 | 2498 |
2449 Iterator<int> iterator() { | 2499 Iterator<int> get iterator { |
2450 return new _ByteArrayIterator<int>(this); | 2500 return new _ByteArrayIterator<int>(this); |
2451 } | 2501 } |
2452 | 2502 |
2453 List<int> getRange(int start, int length) { | 2503 List<int> getRange(int start, int length) { |
2454 _rangeCheck(this.length, start, length); | 2504 _rangeCheck(this.length, start, length); |
2455 List<int> result = new Uint64List(length); | 2505 List<int> result = new Uint64List(length); |
2456 result.setRange(0, length, this, start); | 2506 result.setRange(0, length, this, start); |
2457 return result; | 2507 return result; |
2458 } | 2508 } |
2459 | 2509 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2511 } | 2561 } |
2512 | 2562 |
2513 void operator[]=(int index, double value) { | 2563 void operator[]=(int index, double value) { |
2514 if (index < 0 || index >= _length) { | 2564 if (index < 0 || index >= _length) { |
2515 String message = "$index must be in the range [0..$_length)"; | 2565 String message = "$index must be in the range [0..$_length)"; |
2516 throw new RangeError(message); | 2566 throw new RangeError(message); |
2517 } | 2567 } |
2518 _array.setFloat32(_offset + (index * _BYTES_PER_ELEMENT), value); | 2568 _array.setFloat32(_offset + (index * _BYTES_PER_ELEMENT), value); |
2519 } | 2569 } |
2520 | 2570 |
2521 Iterator<double> iterator() { | 2571 Iterator<double> get iterator { |
2522 return new _ByteArrayIterator<double>(this); | 2572 return new _ByteArrayIterator<double>(this); |
2523 } | 2573 } |
2524 | 2574 |
2525 List<double> getRange(int start, int length) { | 2575 List<double> getRange(int start, int length) { |
2526 _rangeCheck(this.length, start, length); | 2576 _rangeCheck(this.length, start, length); |
2527 List<double> result = new Float32List(length); | 2577 List<double> result = new Float32List(length); |
2528 result.setRange(0, length, this, start); | 2578 result.setRange(0, length, this, start); |
2529 return result; | 2579 return result; |
2530 } | 2580 } |
2531 | 2581 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2583 } | 2633 } |
2584 | 2634 |
2585 void operator[]=(int index, double value) { | 2635 void operator[]=(int index, double value) { |
2586 if (index < 0 || index >= _length) { | 2636 if (index < 0 || index >= _length) { |
2587 String message = "$index must be in the range [0..$_length)"; | 2637 String message = "$index must be in the range [0..$_length)"; |
2588 throw new RangeError(message); | 2638 throw new RangeError(message); |
2589 } | 2639 } |
2590 _array.setFloat64(_offset + (index * _BYTES_PER_ELEMENT), value); | 2640 _array.setFloat64(_offset + (index * _BYTES_PER_ELEMENT), value); |
2591 } | 2641 } |
2592 | 2642 |
2593 Iterator<double> iterator() { | 2643 Iterator<double> get iterator { |
2594 return new _ByteArrayIterator<double>(this); | 2644 return new _ByteArrayIterator<double>(this); |
2595 } | 2645 } |
2596 | 2646 |
2597 List<double> getRange(int start, int length) { | 2647 List<double> getRange(int start, int length) { |
2598 _rangeCheck(this.length, start, length); | 2648 _rangeCheck(this.length, start, length); |
2599 List<double> result = new Float64List(length); | 2649 List<double> result = new Float64List(length); |
2600 result.setRange(0, length, this, start); | 2650 result.setRange(0, length, this, start); |
2601 return result; | 2651 return result; |
2602 } | 2652 } |
2603 | 2653 |
(...skipping 19 matching lines...) Expand all Loading... |
2623 } | 2673 } |
2624 _rangeCheck(this.length, start, length); | 2674 _rangeCheck(this.length, start, length); |
2625 return _array.subByteArray(_offset + start, length); | 2675 return _array.subByteArray(_offset + start, length); |
2626 } | 2676 } |
2627 | 2677 |
2628 static const int _BYTES_PER_ELEMENT = 8; | 2678 static const int _BYTES_PER_ELEMENT = 8; |
2629 final ByteArray _array; | 2679 final ByteArray _array; |
2630 final int _offset; | 2680 final int _offset; |
2631 final int _length; | 2681 final int _length; |
2632 } | 2682 } |
OLD | NEW |