Chromium Code Reviews

Side by Side Diff: runtime/lib/byte_array.dart

Issue 12817003: Change getRange to sublist. Make getRange deprecated. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
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 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 538 matching lines...)
549 } 549 }
550 550
551 int operator[]=(int index, int value) { 551 int operator[]=(int index, int value) {
552 _setIndexed(index, _toInt8(value)); 552 _setIndexed(index, _toInt8(value));
553 } 553 }
554 554
555 Iterator<int> get iterator { 555 Iterator<int> get iterator {
556 return new _ByteArrayIterator<int>(this); 556 return new _ByteArrayIterator<int>(this);
557 } 557 }
558 558
559 List<int> getRange(int start, int length) { 559 List<int> sublist(int start, [int end]) {
560 if (end == null) end = this.length;
561 int length = end - start;
560 _rangeCheck(this.length, start, length); 562 _rangeCheck(this.length, start, length);
561 List<int> result = _new(length); 563 List<int> result = _new(length);
562 result.setRange(0, length, this, start); 564 result.setRange(0, length, this, start);
563 return result; 565 return result;
564 } 566 }
565 567
568 List<int> getRange(int start, int length) => sublist(start, start + length);
569
566 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 570 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
567 if (from is _Int8Array) { 571 if (from is _Int8Array) {
568 _setRange(start * _BYTES_PER_ELEMENT, 572 _setRange(start * _BYTES_PER_ELEMENT,
569 length * _BYTES_PER_ELEMENT, 573 length * _BYTES_PER_ELEMENT,
570 from, 574 from,
571 startFrom * _BYTES_PER_ELEMENT); 575 startFrom * _BYTES_PER_ELEMENT);
572 } else { 576 } else {
573 IterableMixinWorkaround.setRangeList( 577 IterableMixinWorkaround.setRangeList(
574 this, start, length, from, startFrom); 578 this, start, length, from, startFrom);
575 } 579 }
(...skipping 37 matching lines...)
613 } 617 }
614 618
615 int operator[]=(int index, int value) { 619 int operator[]=(int index, int value) {
616 _setIndexed(index, _toUint8(value)); 620 _setIndexed(index, _toUint8(value));
617 } 621 }
618 622
619 Iterator<int> get iterator { 623 Iterator<int> get iterator {
620 return new _ByteArrayIterator<int>(this); 624 return new _ByteArrayIterator<int>(this);
621 } 625 }
622 626
623 List<int> getRange(int start, int length) { 627 List<int> sublist(int start, [int end]) {
628 if (end == null) end = this.length;
629 int length = end - start;
624 _rangeCheck(this.length, start, length); 630 _rangeCheck(this.length, start, length);
625 List<int> result = _new(length); 631 List<int> result = _new(length);
626 result.setRange(0, length, this, start); 632 result.setRange(0, length, this, start);
627 return result; 633 return result;
628 } 634 }
629 635
636 List<int> getRange(int start, int length) => sublist(start, start + length);
637
630 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 638 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
631 if (from is _Uint8Array || from is _ExternalUint8Array || 639 if (from is _Uint8Array || from is _ExternalUint8Array ||
632 from is _Uint8ClampedArray || from is _ExternalUint8ClampedArray) { 640 from is _Uint8ClampedArray || from is _ExternalUint8ClampedArray) {
633 _setRange(start * _BYTES_PER_ELEMENT, 641 _setRange(start * _BYTES_PER_ELEMENT,
634 length * _BYTES_PER_ELEMENT, 642 length * _BYTES_PER_ELEMENT,
635 from, 643 from,
636 startFrom * _BYTES_PER_ELEMENT); 644 startFrom * _BYTES_PER_ELEMENT);
637 } else { 645 } else {
638 IterableMixinWorkaround.setRangeList( 646 IterableMixinWorkaround.setRangeList(
639 this, start, length, from, startFrom); 647 this, start, length, from, startFrom);
(...skipping 39 matching lines...)
679 } 687 }
680 688
681 int operator[]=(int index, int value) { 689 int operator[]=(int index, int value) {
682 _setIndexed(index, _toClampedUint8(value)); 690 _setIndexed(index, _toClampedUint8(value));
683 } 691 }
684 692
685 Iterator<int> get iterator { 693 Iterator<int> get iterator {
686 return new _ByteArrayIterator<int>(this); 694 return new _ByteArrayIterator<int>(this);
687 } 695 }
688 696
689 List<int> getRange(int start, int length) { 697 List<int> sublist(int start, [int end]) {
698 if (end == null) end = this.length;
699 int length = end - start;
690 _rangeCheck(this.length, start, length); 700 _rangeCheck(this.length, start, length);
691 List<int> result = _new(length); 701 List<int> result = _new(length);
692 result.setRange(0, length, this, start); 702 result.setRange(0, length, this, start);
693 return result; 703 return result;
694 } 704 }
695 705
706 List<int> getRange(int start, int length) => sublist(start, start + length);
707
696 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 708 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
697 if (from is _Uint8Array || from is _ExternalUint8Array || 709 if (from is _Uint8Array || from is _ExternalUint8Array ||
698 from is _Uint8ClampedArray || from is _ExternalUint8ClampedArray) { 710 from is _Uint8ClampedArray || from is _ExternalUint8ClampedArray) {
699 _setRange(start * _BYTES_PER_ELEMENT, 711 _setRange(start * _BYTES_PER_ELEMENT,
700 length * _BYTES_PER_ELEMENT, 712 length * _BYTES_PER_ELEMENT,
701 from, 713 from,
702 startFrom * _BYTES_PER_ELEMENT); 714 startFrom * _BYTES_PER_ELEMENT);
703 } else { 715 } else {
704 IterableMixinWorkaround.setRangeList( 716 IterableMixinWorkaround.setRangeList(
705 this, start, length, from, startFrom); 717 this, start, length, from, startFrom);
(...skipping 38 matching lines...)
744 } 756 }
745 757
746 int operator[]=(int index, int value) { 758 int operator[]=(int index, int value) {
747 _setIndexed(index, _toInt16(value)); 759 _setIndexed(index, _toInt16(value));
748 } 760 }
749 761
750 Iterator<int> get iterator { 762 Iterator<int> get iterator {
751 return new _ByteArrayIterator<int>(this); 763 return new _ByteArrayIterator<int>(this);
752 } 764 }
753 765
754 List<int> getRange(int start, int length) { 766 List<int> sublist(int start, [int end]) {
767 if (end == null) end = this.length;
768 int length = end - start;
755 _rangeCheck(this.length, start, length); 769 _rangeCheck(this.length, start, length);
756 List<int> result = _new(length); 770 List<int> result = _new(length);
757 result.setRange(0, length, this, start); 771 result.setRange(0, length, this, start);
758 return result; 772 return result;
759 } 773 }
760 774
775 List<int> getRange(int start, int length) => sublist(start, start + length);
776
761 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 777 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
762 if (from is _Int16Array) { 778 if (from is _Int16Array) {
763 _setRange(start * _BYTES_PER_ELEMENT, 779 _setRange(start * _BYTES_PER_ELEMENT,
764 length * _BYTES_PER_ELEMENT, 780 length * _BYTES_PER_ELEMENT,
765 from, 781 from,
766 startFrom * _BYTES_PER_ELEMENT); 782 startFrom * _BYTES_PER_ELEMENT);
767 } else { 783 } else {
768 IterableMixinWorkaround.setRangeList( 784 IterableMixinWorkaround.setRangeList(
769 this, start, length, from, startFrom); 785 this, start, length, from, startFrom);
770 } 786 }
(...skipping 37 matching lines...)
808 } 824 }
809 825
810 int operator[]=(int index, int value) { 826 int operator[]=(int index, int value) {
811 _setIndexed(index, _toUint16(value)); 827 _setIndexed(index, _toUint16(value));
812 } 828 }
813 829
814 Iterator<int> get iterator { 830 Iterator<int> get iterator {
815 return new _ByteArrayIterator<int>(this); 831 return new _ByteArrayIterator<int>(this);
816 } 832 }
817 833
818 List<int> getRange(int start, int length) { 834 List<int> sublist(int start, [int end]) {
835 if (end == null) end = this.length;
836 int length = end - start;
819 _rangeCheck(this.length, start, length); 837 _rangeCheck(this.length, start, length);
820 List<int> result = _new(length); 838 List<int> result = _new(length);
821 result.setRange(0, length, this, start); 839 result.setRange(0, length, this, start);
822 return result; 840 return result;
823 } 841 }
824 842
843 List<int> getRange(int start, int length) => sublist(start, start + length);
844
825 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 845 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
826 if (from is _Uint16Array) { 846 if (from is _Uint16Array) {
827 _setRange(start * _BYTES_PER_ELEMENT, 847 _setRange(start * _BYTES_PER_ELEMENT,
828 length * _BYTES_PER_ELEMENT, 848 length * _BYTES_PER_ELEMENT,
829 from, 849 from,
830 startFrom * _BYTES_PER_ELEMENT); 850 startFrom * _BYTES_PER_ELEMENT);
831 } else { 851 } else {
832 IterableMixinWorkaround.setRangeList( 852 IterableMixinWorkaround.setRangeList(
833 this, start, length, from, startFrom); 853 this, start, length, from, startFrom);
834 } 854 }
(...skipping 37 matching lines...)
872 } 892 }
873 893
874 int operator[]=(int index, int value) { 894 int operator[]=(int index, int value) {
875 _setIndexed(index, _toInt32(value)); 895 _setIndexed(index, _toInt32(value));
876 } 896 }
877 897
878 Iterator<int> get iterator { 898 Iterator<int> get iterator {
879 return new _ByteArrayIterator<int>(this); 899 return new _ByteArrayIterator<int>(this);
880 } 900 }
881 901
882 List<int> getRange(int start, int length) { 902 List<int> sublist(int start, [int end]) {
903 if (end == null) end = this.length;
904 int length = end - start;
883 _rangeCheck(this.length, start, length); 905 _rangeCheck(this.length, start, length);
884 List<int> result = _new(length); 906 List<int> result = _new(length);
885 result.setRange(0, length, this, start); 907 result.setRange(0, length, this, start);
886 return result; 908 return result;
887 } 909 }
888 910
911 List<int> getRange(int start, int length) => sublist(start, start + length);
912
889 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 913 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
890 if (from is _Int32Array) { 914 if (from is _Int32Array) {
891 _setRange(start * _BYTES_PER_ELEMENT, 915 _setRange(start * _BYTES_PER_ELEMENT,
892 length * _BYTES_PER_ELEMENT, 916 length * _BYTES_PER_ELEMENT,
893 from, 917 from,
894 startFrom * _BYTES_PER_ELEMENT); 918 startFrom * _BYTES_PER_ELEMENT);
895 } else { 919 } else {
896 IterableMixinWorkaround.setRangeList( 920 IterableMixinWorkaround.setRangeList(
897 this, start, length, from, startFrom); 921 this, start, length, from, startFrom);
898 } 922 }
(...skipping 38 matching lines...)
937 } 961 }
938 962
939 int operator[]=(int index, int value) { 963 int operator[]=(int index, int value) {
940 _setIndexed(index, _toUint32(value)); 964 _setIndexed(index, _toUint32(value));
941 } 965 }
942 966
943 Iterator<int> get iterator { 967 Iterator<int> get iterator {
944 return new _ByteArrayIterator<int>(this); 968 return new _ByteArrayIterator<int>(this);
945 } 969 }
946 970
947 List<int> getRange(int start, int length) { 971 List<int> sublist(int start, [int end]) {
972 if (end == null) end = this.length;
973 int length = end - start;
948 _rangeCheck(this.length, start, length); 974 _rangeCheck(this.length, start, length);
949 List<int> result = _new(length); 975 List<int> result = _new(length);
950 result.setRange(0, length, this, start); 976 result.setRange(0, length, this, start);
951 return result; 977 return result;
952 } 978 }
953 979
980 List<int> getRange(int start, int length) => sublist(start, start + length);
981
954 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 982 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
955 if (from is _Uint32Array) { 983 if (from is _Uint32Array) {
956 _setRange(start * _BYTES_PER_ELEMENT, 984 _setRange(start * _BYTES_PER_ELEMENT,
957 length * _BYTES_PER_ELEMENT, 985 length * _BYTES_PER_ELEMENT,
958 from, 986 from,
959 startFrom * _BYTES_PER_ELEMENT); 987 startFrom * _BYTES_PER_ELEMENT);
960 } else { 988 } else {
961 IterableMixinWorkaround.setRangeList( 989 IterableMixinWorkaround.setRangeList(
962 this, start, length, from, startFrom); 990 this, start, length, from, startFrom);
963 } 991 }
(...skipping 37 matching lines...)
1001 } 1029 }
1002 1030
1003 int operator[]=(int index, int value) { 1031 int operator[]=(int index, int value) {
1004 _setIndexed(index, _toInt64(value)); 1032 _setIndexed(index, _toInt64(value));
1005 } 1033 }
1006 1034
1007 Iterator<int> get iterator { 1035 Iterator<int> get iterator {
1008 return new _ByteArrayIterator<int>(this); 1036 return new _ByteArrayIterator<int>(this);
1009 } 1037 }
1010 1038
1011 List<int> getRange(int start, int length) { 1039 List<int> sublist(int start, [int end]) {
1040 if (end == null) end = this.length;
1041 int length = end - start;
1012 _rangeCheck(this.length, start, length); 1042 _rangeCheck(this.length, start, length);
1013 List<int> result = _new(length); 1043 List<int> result = _new(length);
1014 result.setRange(0, length, this, start); 1044 result.setRange(0, length, this, start);
1015 return result; 1045 return result;
1016 } 1046 }
1017 1047
1048 List<int> getRange(int start, int length) => sublist(start, start + length);
1049
1018 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1050 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1019 if (from is _Int64Array) { 1051 if (from is _Int64Array) {
1020 _setRange(start * _BYTES_PER_ELEMENT, 1052 _setRange(start * _BYTES_PER_ELEMENT,
1021 length * _BYTES_PER_ELEMENT, 1053 length * _BYTES_PER_ELEMENT,
1022 from, 1054 from,
1023 startFrom * _BYTES_PER_ELEMENT); 1055 startFrom * _BYTES_PER_ELEMENT);
1024 } else { 1056 } else {
1025 IterableMixinWorkaround.setRangeList( 1057 IterableMixinWorkaround.setRangeList(
1026 this, start, length, from, startFrom); 1058 this, start, length, from, startFrom);
1027 } 1059 }
(...skipping 37 matching lines...)
1065 } 1097 }
1066 1098
1067 int operator[]=(int index, int value) { 1099 int operator[]=(int index, int value) {
1068 _setIndexed(index, _toUint64(value)); 1100 _setIndexed(index, _toUint64(value));
1069 } 1101 }
1070 1102
1071 Iterator<int> get iterator { 1103 Iterator<int> get iterator {
1072 return new _ByteArrayIterator<int>(this); 1104 return new _ByteArrayIterator<int>(this);
1073 } 1105 }
1074 1106
1075 List<int> getRange(int start, int length) { 1107 List<int> sublist(int start, [int end]) {
1108 if (end == null) end = this.length;
1109 int length = end - start;
1076 _rangeCheck(this.length, start, length); 1110 _rangeCheck(this.length, start, length);
1077 List<int> result = _new(length); 1111 List<int> result = _new(length);
1078 result.setRange(0, length, this, start); 1112 result.setRange(0, length, this, start);
1079 return result; 1113 return result;
1080 } 1114 }
1081 1115
1116 List<int> getRange(int start, int length) => sublist(start, start + length);
1117
1082 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1118 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1083 if (from is _Uint64Array) { 1119 if (from is _Uint64Array) {
1084 _setRange(start * _BYTES_PER_ELEMENT, 1120 _setRange(start * _BYTES_PER_ELEMENT,
1085 length * _BYTES_PER_ELEMENT, 1121 length * _BYTES_PER_ELEMENT,
1086 from, 1122 from,
1087 startFrom * _BYTES_PER_ELEMENT); 1123 startFrom * _BYTES_PER_ELEMENT);
1088 } else { 1124 } else {
1089 IterableMixinWorkaround.setRangeList( 1125 IterableMixinWorkaround.setRangeList(
1090 this, start, length, from, startFrom); 1126 this, start, length, from, startFrom);
1091 } 1127 }
(...skipping 37 matching lines...)
1129 } 1165 }
1130 1166
1131 int operator[]=(int index, double value) { 1167 int operator[]=(int index, double value) {
1132 _setIndexed(index, value); 1168 _setIndexed(index, value);
1133 } 1169 }
1134 1170
1135 Iterator<double> get iterator { 1171 Iterator<double> get iterator {
1136 return new _ByteArrayIterator<double>(this); 1172 return new _ByteArrayIterator<double>(this);
1137 } 1173 }
1138 1174
1139 List<double> getRange(int start, int length) { 1175 List<double> sublist(int start, [int end]) {
1176 if (end == null) end = this.length;
1177 int length = end - start;
1140 _rangeCheck(this.length, start, length); 1178 _rangeCheck(this.length, start, length);
1141 List<double> result = _new(length); 1179 List<double> result = _new(length);
1142 result.setRange(0, length, this, start); 1180 result.setRange(0, length, this, start);
1143 return result; 1181 return result;
1144 } 1182 }
1145 1183
1184 List<double> getRange(int start, int length) =>
1185 sublist(start, start + length);
1186
1146 void setRange(int start, int length, List<double> from, [int startFrom = 0]) { 1187 void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
1147 if (from is _Float32Array) { 1188 if (from is _Float32Array) {
1148 _setRange(start * _BYTES_PER_ELEMENT, 1189 _setRange(start * _BYTES_PER_ELEMENT,
1149 length * _BYTES_PER_ELEMENT, 1190 length * _BYTES_PER_ELEMENT,
1150 from, 1191 from,
1151 startFrom * _BYTES_PER_ELEMENT); 1192 startFrom * _BYTES_PER_ELEMENT);
1152 } else { 1193 } else {
1153 IterableMixinWorkaround.setRangeList( 1194 IterableMixinWorkaround.setRangeList(
1154 this, start, length, from, startFrom); 1195 this, start, length, from, startFrom);
1155 } 1196 }
(...skipping 37 matching lines...)
1193 } 1234 }
1194 1235
1195 int operator[]=(int index, double value) { 1236 int operator[]=(int index, double value) {
1196 _setIndexed(index, value); 1237 _setIndexed(index, value);
1197 } 1238 }
1198 1239
1199 Iterator<double> get iterator { 1240 Iterator<double> get iterator {
1200 return new _ByteArrayIterator<double>(this); 1241 return new _ByteArrayIterator<double>(this);
1201 } 1242 }
1202 1243
1203 List<double> getRange(int start, int length) { 1244 List<double> sublist(int start, [int end]) {
1245 if (end == null) end = this.length;
1246 int length = end - start;
1204 _rangeCheck(this.length, start, length); 1247 _rangeCheck(this.length, start, length);
1205 List<double> result = _new(length); 1248 List<double> result = _new(length);
1206 result.setRange(0, length, this, start); 1249 result.setRange(0, length, this, start);
1207 return result; 1250 return result;
1208 } 1251 }
1209 1252
1253 List<double> getRange(int start, int length) =>
1254 sublist(start, start + length);
1255
1210 void setRange(int start, int length, List<double> from, [int startFrom = 0]) { 1256 void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
1211 if (from is _Float64Array) { 1257 if (from is _Float64Array) {
1212 _setRange(start * _BYTES_PER_ELEMENT, 1258 _setRange(start * _BYTES_PER_ELEMENT,
1213 length * _BYTES_PER_ELEMENT, 1259 length * _BYTES_PER_ELEMENT,
1214 from, 1260 from,
1215 startFrom * _BYTES_PER_ELEMENT); 1261 startFrom * _BYTES_PER_ELEMENT);
1216 } else { 1262 } else {
1217 IterableMixinWorkaround.setRangeList( 1263 IterableMixinWorkaround.setRangeList(
1218 this, start, length, from, startFrom); 1264 this, start, length, from, startFrom);
1219 } 1265 }
(...skipping 26 matching lines...)
1246 } 1292 }
1247 1293
1248 int operator[]=(int index, int value) { 1294 int operator[]=(int index, int value) {
1249 _setIndexed(index, _toInt8(value)); 1295 _setIndexed(index, _toInt8(value));
1250 } 1296 }
1251 1297
1252 Iterator<int> get iterator { 1298 Iterator<int> get iterator {
1253 return new _ByteArrayIterator<int>(this); 1299 return new _ByteArrayIterator<int>(this);
1254 } 1300 }
1255 1301
1256 List<int> getRange(int start, int length) { 1302 List<int> sublist(int start, [int end]) {
1303 if (end == null) end = this.length;
1304 int length = end - start;
1257 _rangeCheck(this.length, start, length); 1305 _rangeCheck(this.length, start, length);
1258 List<int> result = new Int8List(length); 1306 List<int> result = new Int8List(length);
1259 result.setRange(0, length, this, start); 1307 result.setRange(0, length, this, start);
1260 return result; 1308 return result;
1261 } 1309 }
1262 1310
1311 List<int> getRange(int start, int length) => sublist(start, start + length);
1312
1263 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1313 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1264 if (from is _ExternalInt8Array) { 1314 if (from is _ExternalInt8Array) {
1265 _setRange(start * _BYTES_PER_ELEMENT, 1315 _setRange(start * _BYTES_PER_ELEMENT,
1266 length * _BYTES_PER_ELEMENT, 1316 length * _BYTES_PER_ELEMENT,
1267 from, 1317 from,
1268 startFrom * _BYTES_PER_ELEMENT); 1318 startFrom * _BYTES_PER_ELEMENT);
1269 } else { 1319 } else {
1270 IterableMixinWorkaround.setRangeList( 1320 IterableMixinWorkaround.setRangeList(
1271 this, start, length, from, startFrom); 1321 this, start, length, from, startFrom);
1272 } 1322 }
(...skipping 24 matching lines...)
1297 } 1347 }
1298 1348
1299 int operator[]=(int index, int value) { 1349 int operator[]=(int index, int value) {
1300 _setIndexed(index, _toUint8(value)); 1350 _setIndexed(index, _toUint8(value));
1301 } 1351 }
1302 1352
1303 Iterator<int> get iterator { 1353 Iterator<int> get iterator {
1304 return new _ByteArrayIterator<int>(this); 1354 return new _ByteArrayIterator<int>(this);
1305 } 1355 }
1306 1356
1307 List<int> getRange(int start, int length) { 1357 List<int> sublist(int start, [int end]) {
1358 if (end == null) end = this.length;
1359 int length = end - start;
1308 _rangeCheck(this.length, start, length); 1360 _rangeCheck(this.length, start, length);
1309 List<int> result = new Uint8List(length); 1361 List<int> result = new Uint8List(length);
1310 result.setRange(0, length, this, start); 1362 result.setRange(0, length, this, start);
1311 return result; 1363 return result;
1312 } 1364 }
1313 1365
1366 List<int> getRange(int start, int length) => sublist(start, start + length);
1367
1314 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1368 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1315 if (from is _ExternalUint8Array || from is _Uint8Array) { 1369 if (from is _ExternalUint8Array || from is _Uint8Array) {
1316 _setRange(start * _BYTES_PER_ELEMENT, 1370 _setRange(start * _BYTES_PER_ELEMENT,
1317 length * _BYTES_PER_ELEMENT, 1371 length * _BYTES_PER_ELEMENT,
1318 from, 1372 from,
1319 startFrom * _BYTES_PER_ELEMENT); 1373 startFrom * _BYTES_PER_ELEMENT);
1320 } else { 1374 } else {
1321 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom) ; 1375 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom) ;
1322 } 1376 }
1323 } 1377 }
(...skipping 25 matching lines...)
1349 } 1403 }
1350 1404
1351 int operator[]=(int index, int value) { 1405 int operator[]=(int index, int value) {
1352 _setIndexed(index, _toClampedUint8(value)); 1406 _setIndexed(index, _toClampedUint8(value));
1353 } 1407 }
1354 1408
1355 Iterator<int> get iterator { 1409 Iterator<int> get iterator {
1356 return new _ByteArrayIterator<int>(this); 1410 return new _ByteArrayIterator<int>(this);
1357 } 1411 }
1358 1412
1359 List<int> getRange(int start, int length) { 1413 List<int> sublist(int start, [int end]) {
1414 if (end == null) end = this.length;
1415 int length = end - start;
1360 _rangeCheck(this.length, start, length); 1416 _rangeCheck(this.length, start, length);
1361 List<int> result = new Uint8ClampedList(length); 1417 List<int> result = new Uint8ClampedList(length);
1362 result.setRange(0, length, this, start); 1418 result.setRange(0, length, this, start);
1363 return result; 1419 return result;
1364 } 1420 }
1365 1421
1422 List<int> getRange(int start, int length) => sublist(start, start + length);
1423
1366 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1424 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1367 if (from is _ExternalUint8ClampedArray || from is _Uint8ClampedArray) { 1425 if (from is _ExternalUint8ClampedArray || from is _Uint8ClampedArray) {
1368 _setRange(start * _BYTES_PER_ELEMENT, 1426 _setRange(start * _BYTES_PER_ELEMENT,
1369 length * _BYTES_PER_ELEMENT, 1427 length * _BYTES_PER_ELEMENT,
1370 from, 1428 from,
1371 startFrom * _BYTES_PER_ELEMENT); 1429 startFrom * _BYTES_PER_ELEMENT);
1372 } else { 1430 } else {
1373 IterableMixinWorkaround.setRangeList( 1431 IterableMixinWorkaround.setRangeList(
1374 this, start, length, from, startFrom); 1432 this, start, length, from, startFrom);
1375 } 1433 }
(...skipping 24 matching lines...)
1400 } 1458 }
1401 1459
1402 int operator[]=(int index, int value) { 1460 int operator[]=(int index, int value) {
1403 _setIndexed(index, _toInt16(value)); 1461 _setIndexed(index, _toInt16(value));
1404 } 1462 }
1405 1463
1406 Iterator<int> get iterator { 1464 Iterator<int> get iterator {
1407 return new _ByteArrayIterator<int>(this); 1465 return new _ByteArrayIterator<int>(this);
1408 } 1466 }
1409 1467
1410 List<int> getRange(int start, int length) { 1468 List<int> sublist(int start, [int end]) {
1469 if (end == null) end = this.length;
1470 int length = end - start;
1411 _rangeCheck(this.length, start, length); 1471 _rangeCheck(this.length, start, length);
1412 List<int> result = new Int16List(length); 1472 List<int> result = new Int16List(length);
1413 result.setRange(0, length, this, start); 1473 result.setRange(0, length, this, start);
1414 return result; 1474 return result;
1415 } 1475 }
1416 1476
1477 List<int> getRange(int start, int length) => sublist(start, start + length);
1478
1417 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1479 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1418 if (from is _ExternalInt16Array) { 1480 if (from is _ExternalInt16Array) {
1419 _setRange(start * _BYTES_PER_ELEMENT, 1481 _setRange(start * _BYTES_PER_ELEMENT,
1420 length * _BYTES_PER_ELEMENT, 1482 length * _BYTES_PER_ELEMENT,
1421 from, 1483 from,
1422 startFrom * _BYTES_PER_ELEMENT); 1484 startFrom * _BYTES_PER_ELEMENT);
1423 } else { 1485 } else {
1424 IterableMixinWorkaround.setRangeList( 1486 IterableMixinWorkaround.setRangeList(
1425 this, start, length, from, startFrom); 1487 this, start, length, from, startFrom);
1426 } 1488 }
(...skipping 24 matching lines...)
1451 } 1513 }
1452 1514
1453 int operator[]=(int index, int value) { 1515 int operator[]=(int index, int value) {
1454 _setIndexed(index, _toUint16(value)); 1516 _setIndexed(index, _toUint16(value));
1455 } 1517 }
1456 1518
1457 Iterator<int> get iterator { 1519 Iterator<int> get iterator {
1458 return new _ByteArrayIterator<int>(this); 1520 return new _ByteArrayIterator<int>(this);
1459 } 1521 }
1460 1522
1461 List<int> getRange(int start, int length) { 1523 List<int> sublist(int start, [int end]) {
1524 if (end == null) end = this.length;
1525 int length = end - start;
1462 _rangeCheck(this.length, start, length); 1526 _rangeCheck(this.length, start, length);
1463 List<int> result = new Uint16List(length); 1527 List<int> result = new Uint16List(length);
1464 result.setRange(0, length, this, start); 1528 result.setRange(0, length, this, start);
1465 return result; 1529 return result;
1466 } 1530 }
1467 1531
1532 List<int> getRange(int start, int length) => sublist(start, start + length);
1533
1468 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1534 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1469 if (from is _ExternalUint16Array) { 1535 if (from is _ExternalUint16Array) {
1470 _setRange(start * _BYTES_PER_ELEMENT, 1536 _setRange(start * _BYTES_PER_ELEMENT,
1471 length * _BYTES_PER_ELEMENT, 1537 length * _BYTES_PER_ELEMENT,
1472 from, 1538 from,
1473 startFrom * _BYTES_PER_ELEMENT); 1539 startFrom * _BYTES_PER_ELEMENT);
1474 } else { 1540 } else {
1475 IterableMixinWorkaround.setRangeList( 1541 IterableMixinWorkaround.setRangeList(
1476 this, start, length, from, startFrom); 1542 this, start, length, from, startFrom);
1477 } 1543 }
(...skipping 26 matching lines...)
1504 } 1570 }
1505 1571
1506 int operator[]=(int index, int value) { 1572 int operator[]=(int index, int value) {
1507 _setIndexed(index, _toInt32(value)); 1573 _setIndexed(index, _toInt32(value));
1508 } 1574 }
1509 1575
1510 Iterator<int> get iterator { 1576 Iterator<int> get iterator {
1511 return new _ByteArrayIterator<int>(this); 1577 return new _ByteArrayIterator<int>(this);
1512 } 1578 }
1513 1579
1514 List<int> getRange(int start, int length) { 1580 List<int> sublist(int start, [int end]) {
1581 if (end == null) end = this.length;
1582 int length = end - start;
1515 _rangeCheck(this.length, start, length); 1583 _rangeCheck(this.length, start, length);
1516 List<int> result = new Int32List(length); 1584 List<int> result = new Int32List(length);
1517 result.setRange(0, length, this, start); 1585 result.setRange(0, length, this, start);
1518 return result; 1586 return result;
1519 } 1587 }
1520 1588
1589 List<int> getRange(int start, int length) => sublist(start, start + length);
1590
1521 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1591 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1522 if (from is _ExternalInt32Array) { 1592 if (from is _ExternalInt32Array) {
1523 _setRange(start * _BYTES_PER_ELEMENT, 1593 _setRange(start * _BYTES_PER_ELEMENT,
1524 length * _BYTES_PER_ELEMENT, 1594 length * _BYTES_PER_ELEMENT,
1525 from, 1595 from,
1526 startFrom * _BYTES_PER_ELEMENT); 1596 startFrom * _BYTES_PER_ELEMENT);
1527 } else { 1597 } else {
1528 IterableMixinWorkaround.setRangeList( 1598 IterableMixinWorkaround.setRangeList(
1529 this, start, length, from, startFrom); 1599 this, start, length, from, startFrom);
1530 } 1600 }
(...skipping 26 matching lines...)
1557 } 1627 }
1558 1628
1559 int operator[]=(int index, int value) { 1629 int operator[]=(int index, int value) {
1560 _setIndexed(index, _toUint32(value)); 1630 _setIndexed(index, _toUint32(value));
1561 } 1631 }
1562 1632
1563 Iterator<int> get iterator { 1633 Iterator<int> get iterator {
1564 return new _ByteArrayIterator<int>(this); 1634 return new _ByteArrayIterator<int>(this);
1565 } 1635 }
1566 1636
1567 List<int> getRange(int start, int length) { 1637 List<int> sublist(int start, [int end]) {
1638 if (end == null) end = this.length;
1639 int length = end - start;
1568 _rangeCheck(this.length, start, length); 1640 _rangeCheck(this.length, start, length);
1569 List<int> result = new Uint32List(length); 1641 List<int> result = new Uint32List(length);
1570 result.setRange(0, length, this, start); 1642 result.setRange(0, length, this, start);
1571 return result; 1643 return result;
1572 } 1644 }
1573 1645
1646 List<int> getRange(int start, int length) => sublist(start, start + length);
1647
1574 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1648 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1575 if (from is _ExternalUint32Array) { 1649 if (from is _ExternalUint32Array) {
1576 _setRange(start * _BYTES_PER_ELEMENT, 1650 _setRange(start * _BYTES_PER_ELEMENT,
1577 length * _BYTES_PER_ELEMENT, 1651 length * _BYTES_PER_ELEMENT,
1578 from, 1652 from,
1579 startFrom * _BYTES_PER_ELEMENT); 1653 startFrom * _BYTES_PER_ELEMENT);
1580 } else { 1654 } else {
1581 IterableMixinWorkaround.setRangeList( 1655 IterableMixinWorkaround.setRangeList(
1582 this, start, length, from, startFrom); 1656 this, start, length, from, startFrom);
1583 } 1657 }
(...skipping 26 matching lines...)
1610 } 1684 }
1611 1685
1612 int operator[]=(int index, int value) { 1686 int operator[]=(int index, int value) {
1613 _setIndexed(index, _toInt64(value)); 1687 _setIndexed(index, _toInt64(value));
1614 } 1688 }
1615 1689
1616 Iterator<int> get iterator { 1690 Iterator<int> get iterator {
1617 return new _ByteArrayIterator<int>(this); 1691 return new _ByteArrayIterator<int>(this);
1618 } 1692 }
1619 1693
1620 List<int> getRange(int start, int length) { 1694 List<int> sublist(int start, [int end]) {
1695 if (end == null) end = this.length;
1696 int length = end - start;
1621 _rangeCheck(this.length, start, length); 1697 _rangeCheck(this.length, start, length);
1622 List<int> result = new Int64List(length); 1698 List<int> result = new Int64List(length);
1623 result.setRange(0, length, this, start); 1699 result.setRange(0, length, this, start);
1624 return result; 1700 return result;
1625 } 1701 }
1626 1702
1703 List<int> getRange(int start, int length) => sublist(start, start + length);
1704
1627 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1705 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1628 if (from is _ExternalInt64Array) { 1706 if (from is _ExternalInt64Array) {
1629 _setRange(start * _BYTES_PER_ELEMENT, 1707 _setRange(start * _BYTES_PER_ELEMENT,
1630 length * _BYTES_PER_ELEMENT, 1708 length * _BYTES_PER_ELEMENT,
1631 from, 1709 from,
1632 startFrom * _BYTES_PER_ELEMENT); 1710 startFrom * _BYTES_PER_ELEMENT);
1633 } else { 1711 } else {
1634 IterableMixinWorkaround.setRangeList( 1712 IterableMixinWorkaround.setRangeList(
1635 this, start, length, from, startFrom); 1713 this, start, length, from, startFrom);
1636 } 1714 }
(...skipping 26 matching lines...)
1663 } 1741 }
1664 1742
1665 int operator[]=(int index, int value) { 1743 int operator[]=(int index, int value) {
1666 _setIndexed(index, _toUint64(value)); 1744 _setIndexed(index, _toUint64(value));
1667 } 1745 }
1668 1746
1669 Iterator<int> get iterator { 1747 Iterator<int> get iterator {
1670 return new _ByteArrayIterator<int>(this); 1748 return new _ByteArrayIterator<int>(this);
1671 } 1749 }
1672 1750
1673 List<int> getRange(int start, int length) { 1751 List<int> sublist(int start, [int end]) {
1752 if (end == null) end = this.length;
1753 int length = end - start;
1674 _rangeCheck(this.length, start, length); 1754 _rangeCheck(this.length, start, length);
1675 List<int> result = new Uint64List(length); 1755 List<int> result = new Uint64List(length);
1676 result.setRange(0, length, this, start); 1756 result.setRange(0, length, this, start);
1677 return result; 1757 return result;
1678 } 1758 }
1679 1759
1760 List<int> getRange(int start, int length) => sublist(start, start + length);
1761
1680 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 1762 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1681 if (from is _ExternalUint64Array) { 1763 if (from is _ExternalUint64Array) {
1682 _setRange(start * _BYTES_PER_ELEMENT, 1764 _setRange(start * _BYTES_PER_ELEMENT,
1683 length * _BYTES_PER_ELEMENT, 1765 length * _BYTES_PER_ELEMENT,
1684 from, 1766 from,
1685 startFrom * _BYTES_PER_ELEMENT); 1767 startFrom * _BYTES_PER_ELEMENT);
1686 } else { 1768 } else {
1687 IterableMixinWorkaround.setRangeList( 1769 IterableMixinWorkaround.setRangeList(
1688 this, start, length, from, startFrom); 1770 this, start, length, from, startFrom);
1689 } 1771 }
(...skipping 26 matching lines...)
1716 } 1798 }
1717 1799
1718 int operator[]=(int index, double value) { 1800 int operator[]=(int index, double value) {
1719 _setIndexed(index, value); 1801 _setIndexed(index, value);
1720 } 1802 }
1721 1803
1722 Iterator<double> get iterator { 1804 Iterator<double> get iterator {
1723 return new _ByteArrayIterator<double>(this); 1805 return new _ByteArrayIterator<double>(this);
1724 } 1806 }
1725 1807
1726 List<double> getRange(int start, int length) { 1808 List<double> sublist(int start, [int end]) {
1809 if (end == null) end = this.length;
1810 int length = end - start;
1727 _rangeCheck(this.length, start, length); 1811 _rangeCheck(this.length, start, length);
1728 List<double> result = new Float32List(length); 1812 List<double> result = new Float32List(length);
1729 result.setRange(0, length, this, start); 1813 result.setRange(0, length, this, start);
1730 return result; 1814 return result;
1731 } 1815 }
1732 1816
1817 List<double> getRange(int start, int length) =>
1818 sublist(start, start + length);
1819
1733 void setRange(int start, int length, List<double> from, [int startFrom = 0]) { 1820 void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
1734 if (from is _ExternalFloat32Array) { 1821 if (from is _ExternalFloat32Array) {
1735 _setRange(start * _BYTES_PER_ELEMENT, 1822 _setRange(start * _BYTES_PER_ELEMENT,
1736 length * _BYTES_PER_ELEMENT, 1823 length * _BYTES_PER_ELEMENT,
1737 from, 1824 from,
1738 startFrom * _BYTES_PER_ELEMENT); 1825 startFrom * _BYTES_PER_ELEMENT);
1739 } else { 1826 } else {
1740 IterableMixinWorkaround.setRangeList( 1827 IterableMixinWorkaround.setRangeList(
1741 this, start, length, from, startFrom); 1828 this, start, length, from, startFrom);
1742 } 1829 }
(...skipping 26 matching lines...)
1769 } 1856 }
1770 1857
1771 int operator[]=(int index, double value) { 1858 int operator[]=(int index, double value) {
1772 _setIndexed(index, value); 1859 _setIndexed(index, value);
1773 } 1860 }
1774 1861
1775 Iterator<double> get iterator { 1862 Iterator<double> get iterator {
1776 return new _ByteArrayIterator<double>(this); 1863 return new _ByteArrayIterator<double>(this);
1777 } 1864 }
1778 1865
1779 List<double> getRange(int start, int length) { 1866 List<double> sublist(int start, [int end]) {
1867 if (end == null) end = this.length;
1868 int length = end - start;
1780 _rangeCheck(this.length, start, length); 1869 _rangeCheck(this.length, start, length);
1781 List<double> result = new Float64List(length); 1870 List<double> result = new Float64List(length);
1782 result.setRange(0, length, this, start); 1871 result.setRange(0, length, this, start);
1783 return result; 1872 return result;
1784 } 1873 }
1785 1874
1875 List<double> getRange(int start, int length) =>
1876 sublist(start, start + length);
1877
1786 void setRange(int start, int length, List<double> from, [int startFrom = 0]) { 1878 void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
1787 if (from is _ExternalFloat64Array) { 1879 if (from is _ExternalFloat64Array) {
1788 _setRange(start * _BYTES_PER_ELEMENT, 1880 _setRange(start * _BYTES_PER_ELEMENT,
1789 length * _BYTES_PER_ELEMENT, 1881 length * _BYTES_PER_ELEMENT,
1790 from, 1882 from,
1791 startFrom * _BYTES_PER_ELEMENT); 1883 startFrom * _BYTES_PER_ELEMENT);
1792 } else { 1884 } else {
1793 IterableMixinWorkaround.setRangeList( 1885 IterableMixinWorkaround.setRangeList(
1794 this, start, length, from, startFrom); 1886 this, start, length, from, startFrom);
1795 } 1887 }
(...skipping 302 matching lines...)
2098 String message = "$index must be in the range [0..$length)"; 2190 String message = "$index must be in the range [0..$length)";
2099 throw new RangeError(message); 2191 throw new RangeError(message);
2100 } 2192 }
2101 _array.setInt8(_offset + (index * _BYTES_PER_ELEMENT), _toInt8(value)); 2193 _array.setInt8(_offset + (index * _BYTES_PER_ELEMENT), _toInt8(value));
2102 } 2194 }
2103 2195
2104 Iterator<int> get iterator { 2196 Iterator<int> get iterator {
2105 return new _ByteArrayIterator<int>(this); 2197 return new _ByteArrayIterator<int>(this);
2106 } 2198 }
2107 2199
2108 List<int> getRange(int start, int length) { 2200 List<int> sublist(int start, [int end]) {
2201 if (end == null) end = this.length;
2202 int length = end - start;
2109 _rangeCheck(this.length, start, length); 2203 _rangeCheck(this.length, start, length);
2110 List<int> result = new Int8List(length); 2204 List<int> result = new Int8List(length);
2111 result.setRange(0, length, this, start); 2205 result.setRange(0, length, this, start);
2112 return result; 2206 return result;
2113 } 2207 }
2114 2208
2209 List<int> getRange(int start, int length) => sublist(start, start + length);
2210
2115 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2211 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2116 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2212 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2117 } 2213 }
2118 2214
2119 String toString() { 2215 String toString() {
2120 return Collections.collectionToString(this); 2216 return Collections.collectionToString(this);
2121 } 2217 }
2122 2218
2123 int bytesPerElement() { 2219 int bytesPerElement() {
2124 return _BYTES_PER_ELEMENT; 2220 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...)
2162 String message = "$index must be in the range [0..$length)"; 2258 String message = "$index must be in the range [0..$length)";
2163 throw new RangeError(message); 2259 throw new RangeError(message);
2164 } 2260 }
2165 _array.setUint8(_offset + (index * _BYTES_PER_ELEMENT), _toUint8(value)); 2261 _array.setUint8(_offset + (index * _BYTES_PER_ELEMENT), _toUint8(value));
2166 } 2262 }
2167 2263
2168 Iterator<int> get iterator { 2264 Iterator<int> get iterator {
2169 return new _ByteArrayIterator<int>(this); 2265 return new _ByteArrayIterator<int>(this);
2170 } 2266 }
2171 2267
2172 List<int> getRange(int start, int length) { 2268 List<int> sublist(int start, [int end]) {
2269 if (end == null) end = this.length;
2270 int length = end - start;
2173 _rangeCheck(this.length, start, length); 2271 _rangeCheck(this.length, start, length);
2174 List<int> result = new Uint8List(length); 2272 List<int> result = new Uint8List(length);
2175 result.setRange(0, length, this, start); 2273 result.setRange(0, length, this, start);
2176 return result; 2274 return result;
2177 } 2275 }
2178 2276
2277 List<int> getRange(int start, int length) => sublist(start, start + length);
2278
2179 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2279 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2180 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2280 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2181 } 2281 }
2182 2282
2183 String toString() { 2283 String toString() {
2184 return Collections.collectionToString(this); 2284 return Collections.collectionToString(this);
2185 } 2285 }
2186 2286
2187 int bytesPerElement() { 2287 int bytesPerElement() {
2188 return _BYTES_PER_ELEMENT; 2288 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...)
2226 String message = "$index must be in the range [0..$length)"; 2326 String message = "$index must be in the range [0..$length)";
2227 throw new RangeError(message); 2327 throw new RangeError(message);
2228 } 2328 }
2229 _array.setInt16(_offset + (index * _BYTES_PER_ELEMENT), _toInt16(value)); 2329 _array.setInt16(_offset + (index * _BYTES_PER_ELEMENT), _toInt16(value));
2230 } 2330 }
2231 2331
2232 Iterator<int> get iterator { 2332 Iterator<int> get iterator {
2233 return new _ByteArrayIterator<int>(this); 2333 return new _ByteArrayIterator<int>(this);
2234 } 2334 }
2235 2335
2236 List<int> getRange(int start, int length) { 2336 List<int> sublist(int start, [int end]) {
2337 if (end == null) end = this.length;
2338 int length = end - start;
2237 _rangeCheck(this.length, start, length); 2339 _rangeCheck(this.length, start, length);
2238 List<int> result = new Int16List(length); 2340 List<int> result = new Int16List(length);
2239 result.setRange(0, length, this, start); 2341 result.setRange(0, length, this, start);
2240 return result; 2342 return result;
2241 } 2343 }
2242 2344
2345 List<int> getRange(int start, int length) => sublist(start, start + length);
2346
2243 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2347 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2244 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2348 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2245 } 2349 }
2246 2350
2247 String toString() { 2351 String toString() {
2248 return Collections.collectionToString(this); 2352 return Collections.collectionToString(this);
2249 } 2353 }
2250 2354
2251 int bytesPerElement() { 2355 int bytesPerElement() {
2252 return _BYTES_PER_ELEMENT; 2356 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...)
2290 String message = "$index must be in the range [0..$length)"; 2394 String message = "$index must be in the range [0..$length)";
2291 throw new RangeError(message); 2395 throw new RangeError(message);
2292 } 2396 }
2293 _array.setUint16(_offset + (index * _BYTES_PER_ELEMENT), _toUint16(value)); 2397 _array.setUint16(_offset + (index * _BYTES_PER_ELEMENT), _toUint16(value));
2294 } 2398 }
2295 2399
2296 Iterator<int> get iterator { 2400 Iterator<int> get iterator {
2297 return new _ByteArrayIterator<int>(this); 2401 return new _ByteArrayIterator<int>(this);
2298 } 2402 }
2299 2403
2300 List<int> getRange(int start, int length) { 2404 List<int> sublist(int start, [int end]) {
2405 if (end == null) end = this.length;
2406 int length = end - start;
2301 _rangeCheck(this.length, start, length); 2407 _rangeCheck(this.length, start, length);
2302 List<int> result = new Uint16List(length); 2408 List<int> result = new Uint16List(length);
2303 result.setRange(0, length, this, start); 2409 result.setRange(0, length, this, start);
2304 return result; 2410 return result;
2305 } 2411 }
2306 2412
2413 List<int> getRange(int start, int length) => sublist(start, start + length);
2414
2307 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2415 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2308 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2416 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2309 } 2417 }
2310 2418
2311 String toString() { 2419 String toString() {
2312 return Collections.collectionToString(this); 2420 return Collections.collectionToString(this);
2313 } 2421 }
2314 2422
2315 int bytesPerElement() { 2423 int bytesPerElement() {
2316 return _BYTES_PER_ELEMENT; 2424 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...)
2354 String message = "$index must be in the range [0..$length)"; 2462 String message = "$index must be in the range [0..$length)";
2355 throw new RangeError(message); 2463 throw new RangeError(message);
2356 } 2464 }
2357 _array.setInt32(_offset + (index * _BYTES_PER_ELEMENT), _toInt32(value)); 2465 _array.setInt32(_offset + (index * _BYTES_PER_ELEMENT), _toInt32(value));
2358 } 2466 }
2359 2467
2360 Iterator<int> get iterator { 2468 Iterator<int> get iterator {
2361 return new _ByteArrayIterator<int>(this); 2469 return new _ByteArrayIterator<int>(this);
2362 } 2470 }
2363 2471
2364 List<int> getRange(int start, int length) { 2472 List<int> sublist(int start, [int end]) {
2473 if (end == null) end = this.length;
2474 int length = end - start;
2365 _rangeCheck(this.length, start, length); 2475 _rangeCheck(this.length, start, length);
2366 List<int> result = new Int32List(length); 2476 List<int> result = new Int32List(length);
2367 result.setRange(0, length, this, start); 2477 result.setRange(0, length, this, start);
2368 return result; 2478 return result;
2369 } 2479 }
2370 2480
2481 List<int> getRange(int start, int length) => sublist(start, start + length);
2482
2371 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2483 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2372 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2484 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2373 } 2485 }
2374 2486
2375 String toString() { 2487 String toString() {
2376 return Collections.collectionToString(this); 2488 return Collections.collectionToString(this);
2377 } 2489 }
2378 2490
2379 int bytesPerElement() { 2491 int bytesPerElement() {
2380 return _BYTES_PER_ELEMENT; 2492 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...)
2418 String message = "$index must be in the range [0..$length)"; 2530 String message = "$index must be in the range [0..$length)";
2419 throw new RangeError(message); 2531 throw new RangeError(message);
2420 } 2532 }
2421 _array.setUint32(_offset + (index * _BYTES_PER_ELEMENT), _toUint32(value)); 2533 _array.setUint32(_offset + (index * _BYTES_PER_ELEMENT), _toUint32(value));
2422 } 2534 }
2423 2535
2424 Iterator<int> get iterator { 2536 Iterator<int> get iterator {
2425 return new _ByteArrayIterator<int>(this); 2537 return new _ByteArrayIterator<int>(this);
2426 } 2538 }
2427 2539
2428 List<int> getRange(int start, int length) { 2540 List<int> sublist(int start, [int end]) {
2541 if (end == null) end = this.length;
2542 int length = end - start;
2429 _rangeCheck(this.length, start, length); 2543 _rangeCheck(this.length, start, length);
2430 List<int> result = new Uint32List(length); 2544 List<int> result = new Uint32List(length);
2431 result.setRange(0, length, this, start); 2545 result.setRange(0, length, this, start);
2432 return result; 2546 return result;
2433 } 2547 }
2434 2548
2549 List<int> getRange(int start, int length) => sublist(start, start + length);
2550
2435 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2551 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2436 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2552 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2437 } 2553 }
2438 2554
2439 String toString() { 2555 String toString() {
2440 return Collections.collectionToString(this); 2556 return Collections.collectionToString(this);
2441 } 2557 }
2442 2558
2443 int bytesPerElement() { 2559 int bytesPerElement() {
2444 return _BYTES_PER_ELEMENT; 2560 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...)
2482 String message = "$index must be in the range [0..$length)"; 2598 String message = "$index must be in the range [0..$length)";
2483 throw new RangeError(message); 2599 throw new RangeError(message);
2484 } 2600 }
2485 _array.setInt64(_offset + (index * _BYTES_PER_ELEMENT), _toInt64(value)); 2601 _array.setInt64(_offset + (index * _BYTES_PER_ELEMENT), _toInt64(value));
2486 } 2602 }
2487 2603
2488 Iterator<int> get iterator { 2604 Iterator<int> get iterator {
2489 return new _ByteArrayIterator<int>(this); 2605 return new _ByteArrayIterator<int>(this);
2490 } 2606 }
2491 2607
2492 List<int> getRange(int start, int length) { 2608 List<int> sublist(int start, [int end]) {
2609 if (end == null) end = this.length;
2610 int length = end - start;
2493 _rangeCheck(this.length, start, length); 2611 _rangeCheck(this.length, start, length);
2494 List<int> result = new Int64List(length); 2612 List<int> result = new Int64List(length);
2495 result.setRange(0, length, this, start); 2613 result.setRange(0, length, this, start);
2496 return result; 2614 return result;
2497 } 2615 }
2498 2616
2617 List<int> getRange(int start, int length) => sublist(start, start + length);
2618
2499 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2619 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2500 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2620 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2501 } 2621 }
2502 2622
2503 String toString() { 2623 String toString() {
2504 return Collections.collectionToString(this); 2624 return Collections.collectionToString(this);
2505 } 2625 }
2506 2626
2507 int bytesPerElement() { 2627 int bytesPerElement() {
2508 return _BYTES_PER_ELEMENT; 2628 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...)
2546 String message = "$index must be in the range [0..$length)"; 2666 String message = "$index must be in the range [0..$length)";
2547 throw new RangeError(message); 2667 throw new RangeError(message);
2548 } 2668 }
2549 _array.setUint64(_offset + (index * _BYTES_PER_ELEMENT), _toUint64(value)); 2669 _array.setUint64(_offset + (index * _BYTES_PER_ELEMENT), _toUint64(value));
2550 } 2670 }
2551 2671
2552 Iterator<int> get iterator { 2672 Iterator<int> get iterator {
2553 return new _ByteArrayIterator<int>(this); 2673 return new _ByteArrayIterator<int>(this);
2554 } 2674 }
2555 2675
2556 List<int> getRange(int start, int length) { 2676 List<int> sublist(int start, [int end]) {
2677 if (end == null) end = this.length;
2678 int length = end - start;
2557 _rangeCheck(this.length, start, length); 2679 _rangeCheck(this.length, start, length);
2558 List<int> result = new Uint64List(length); 2680 List<int> result = new Uint64List(length);
2559 result.setRange(0, length, this, start); 2681 result.setRange(0, length, this, start);
2560 return result; 2682 return result;
2561 } 2683 }
2562 2684
2685 List<int> getRange(int start, int length) => sublist(start, start + length);
2686
2563 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2687 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2564 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2688 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2565 } 2689 }
2566 2690
2567 String toString() { 2691 String toString() {
2568 return Collections.collectionToString(this); 2692 return Collections.collectionToString(this);
2569 } 2693 }
2570 2694
2571 int bytesPerElement() { 2695 int bytesPerElement() {
2572 return _BYTES_PER_ELEMENT; 2696 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...)
2610 String message = "$index must be in the range [0..$length)"; 2734 String message = "$index must be in the range [0..$length)";
2611 throw new RangeError(message); 2735 throw new RangeError(message);
2612 } 2736 }
2613 _array.setFloat32(_offset + (index * _BYTES_PER_ELEMENT), value); 2737 _array.setFloat32(_offset + (index * _BYTES_PER_ELEMENT), value);
2614 } 2738 }
2615 2739
2616 Iterator<double> get iterator { 2740 Iterator<double> get iterator {
2617 return new _ByteArrayIterator<double>(this); 2741 return new _ByteArrayIterator<double>(this);
2618 } 2742 }
2619 2743
2620 List<double> getRange(int start, int length) { 2744 List<double> sublist(int start, [int end]) {
2745 if (end == null) end = this.length;
2746 int length = end - start;
2621 _rangeCheck(this.length, start, length); 2747 _rangeCheck(this.length, start, length);
2622 List<double> result = new Float32List(length); 2748 List<double> result = new Float32List(length);
2623 result.setRange(0, length, this, start); 2749 result.setRange(0, length, this, start);
2624 return result; 2750 return result;
2625 } 2751 }
2626 2752
2753 List<double> getRange(int start, int length) =>
2754 sublist(start, start + length);
2755
2627 void setRange(int start, int length, List<double> from, [int startFrom = 0]) { 2756 void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
2628 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2757 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2629 } 2758 }
2630 2759
2631 String toString() { 2760 String toString() {
2632 return Collections.collectionToString(this); 2761 return Collections.collectionToString(this);
2633 } 2762 }
2634 2763
2635 int bytesPerElement() { 2764 int bytesPerElement() {
2636 return _BYTES_PER_ELEMENT; 2765 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...)
2674 String message = "$index must be in the range [0..$length)"; 2803 String message = "$index must be in the range [0..$length)";
2675 throw new RangeError(message); 2804 throw new RangeError(message);
2676 } 2805 }
2677 _array.setFloat64(_offset + (index * _BYTES_PER_ELEMENT), value); 2806 _array.setFloat64(_offset + (index * _BYTES_PER_ELEMENT), value);
2678 } 2807 }
2679 2808
2680 Iterator<double> get iterator { 2809 Iterator<double> get iterator {
2681 return new _ByteArrayIterator<double>(this); 2810 return new _ByteArrayIterator<double>(this);
2682 } 2811 }
2683 2812
2684 List<double> getRange(int start, int length) { 2813 List<double> sublist(int start, [int end]) {
2814 if (end == null) end = this.length;
2815 int length = end - start;
2685 _rangeCheck(this.length, start, length); 2816 _rangeCheck(this.length, start, length);
2686 List<double> result = new Float64List(length); 2817 List<double> result = new Float64List(length);
2687 result.setRange(0, length, this, start); 2818 result.setRange(0, length, this, start);
2688 return result; 2819 return result;
2689 } 2820 }
2690 2821
2822 List<double> getRange(int start, int length) =>
2823 sublist(start, start + length);
2824
2691 void setRange(int start, int length, List<double> from, [int startFrom = 0]) { 2825 void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
2692 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2826 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2693 } 2827 }
2694 2828
2695 String toString() { 2829 String toString() {
2696 return Collections.collectionToString(this); 2830 return Collections.collectionToString(this);
2697 } 2831 }
2698 2832
2699 int bytesPerElement() { 2833 int bytesPerElement() {
2700 return _BYTES_PER_ELEMENT; 2834 return _BYTES_PER_ELEMENT;
2701 } 2835 }
2702 2836
2703 int lengthInBytes() { 2837 int lengthInBytes() {
2704 return length * _BYTES_PER_ELEMENT; 2838 return length * _BYTES_PER_ELEMENT;
2705 } 2839 }
2706 2840
2707 ByteArray asByteArray([int start = 0, int length]) { 2841 ByteArray asByteArray([int start = 0, int length]) {
2708 if (length == null) { 2842 if (length == null) {
2709 length = this.lengthInBytes(); 2843 length = this.lengthInBytes();
2710 } 2844 }
2711 _rangeCheck(this.length, start, length); 2845 _rangeCheck(this.length, start, length);
2712 return _array.subByteArray(_offset + start, length); 2846 return _array.subByteArray(_offset + start, length);
2713 } 2847 }
2714 2848
2715 static const int _BYTES_PER_ELEMENT = 8; 2849 static const int _BYTES_PER_ELEMENT = 8;
2716 } 2850 }
OLDNEW

Powered by Google App Engine