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

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: Addressed review comments Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand all
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...) Expand all
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...) Expand all
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...) Expand all
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...) Expand all
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...) Expand all
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...) Expand all
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...) Expand all
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...) Expand all
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...) Expand all
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...) Expand all
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 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
2103 String message = "$index must be in the range [0..$length)"; 2195 String message = "$index must be in the range [0..$length)";
2104 throw new RangeError(message); 2196 throw new RangeError(message);
2105 } 2197 }
2106 _array.setInt8(_offset + (index * _BYTES_PER_ELEMENT), _toInt8(value)); 2198 _array.setInt8(_offset + (index * _BYTES_PER_ELEMENT), _toInt8(value));
2107 } 2199 }
2108 2200
2109 Iterator<int> get iterator { 2201 Iterator<int> get iterator {
2110 return new _ByteArrayIterator<int>(this); 2202 return new _ByteArrayIterator<int>(this);
2111 } 2203 }
2112 2204
2113 List<int> getRange(int start, int length) { 2205 List<int> sublist(int start, [int end]) {
2206 if (end == null) end = this.length;
2207 int length = end - start;
2114 _rangeCheck(this.length, start, length); 2208 _rangeCheck(this.length, start, length);
2115 List<int> result = new Int8List(length); 2209 List<int> result = new Int8List(length);
2116 result.setRange(0, length, this, start); 2210 result.setRange(0, length, this, start);
2117 return result; 2211 return result;
2118 } 2212 }
2119 2213
2214 List<int> getRange(int start, int length) => sublist(start, start + length);
2215
2120 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2216 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2121 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2217 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2122 } 2218 }
2123 2219
2124 String toString() { 2220 String toString() {
2125 return Collections.collectionToString(this); 2221 return Collections.collectionToString(this);
2126 } 2222 }
2127 2223
2128 int bytesPerElement() { 2224 int bytesPerElement() {
2129 return _BYTES_PER_ELEMENT; 2225 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2167 String message = "$index must be in the range [0..$length)"; 2263 String message = "$index must be in the range [0..$length)";
2168 throw new RangeError(message); 2264 throw new RangeError(message);
2169 } 2265 }
2170 _array.setUint8(_offset + (index * _BYTES_PER_ELEMENT), _toUint8(value)); 2266 _array.setUint8(_offset + (index * _BYTES_PER_ELEMENT), _toUint8(value));
2171 } 2267 }
2172 2268
2173 Iterator<int> get iterator { 2269 Iterator<int> get iterator {
2174 return new _ByteArrayIterator<int>(this); 2270 return new _ByteArrayIterator<int>(this);
2175 } 2271 }
2176 2272
2177 List<int> getRange(int start, int length) { 2273 List<int> sublist(int start, [int end]) {
2274 if (end == null) end = this.length;
2275 int length = end - start;
2178 _rangeCheck(this.length, start, length); 2276 _rangeCheck(this.length, start, length);
2179 List<int> result = new Uint8List(length); 2277 List<int> result = new Uint8List(length);
2180 result.setRange(0, length, this, start); 2278 result.setRange(0, length, this, start);
2181 return result; 2279 return result;
2182 } 2280 }
2183 2281
2282 List<int> getRange(int start, int length) => sublist(start, start + length);
2283
2184 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2284 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2185 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2285 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2186 } 2286 }
2187 2287
2188 String toString() { 2288 String toString() {
2189 return Collections.collectionToString(this); 2289 return Collections.collectionToString(this);
2190 } 2290 }
2191 2291
2192 int bytesPerElement() { 2292 int bytesPerElement() {
2193 return _BYTES_PER_ELEMENT; 2293 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2231 String message = "$index must be in the range [0..$length)"; 2331 String message = "$index must be in the range [0..$length)";
2232 throw new RangeError(message); 2332 throw new RangeError(message);
2233 } 2333 }
2234 _array.setInt16(_offset + (index * _BYTES_PER_ELEMENT), _toInt16(value)); 2334 _array.setInt16(_offset + (index * _BYTES_PER_ELEMENT), _toInt16(value));
2235 } 2335 }
2236 2336
2237 Iterator<int> get iterator { 2337 Iterator<int> get iterator {
2238 return new _ByteArrayIterator<int>(this); 2338 return new _ByteArrayIterator<int>(this);
2239 } 2339 }
2240 2340
2241 List<int> getRange(int start, int length) { 2341 List<int> sublist(int start, [int end]) {
2342 if (end == null) end = this.length;
2343 int length = end - start;
2242 _rangeCheck(this.length, start, length); 2344 _rangeCheck(this.length, start, length);
2243 List<int> result = new Int16List(length); 2345 List<int> result = new Int16List(length);
2244 result.setRange(0, length, this, start); 2346 result.setRange(0, length, this, start);
2245 return result; 2347 return result;
2246 } 2348 }
2247 2349
2350 List<int> getRange(int start, int length) => sublist(start, start + length);
2351
2248 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2352 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2249 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2353 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2250 } 2354 }
2251 2355
2252 String toString() { 2356 String toString() {
2253 return Collections.collectionToString(this); 2357 return Collections.collectionToString(this);
2254 } 2358 }
2255 2359
2256 int bytesPerElement() { 2360 int bytesPerElement() {
2257 return _BYTES_PER_ELEMENT; 2361 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2295 String message = "$index must be in the range [0..$length)"; 2399 String message = "$index must be in the range [0..$length)";
2296 throw new RangeError(message); 2400 throw new RangeError(message);
2297 } 2401 }
2298 _array.setUint16(_offset + (index * _BYTES_PER_ELEMENT), _toUint16(value)); 2402 _array.setUint16(_offset + (index * _BYTES_PER_ELEMENT), _toUint16(value));
2299 } 2403 }
2300 2404
2301 Iterator<int> get iterator { 2405 Iterator<int> get iterator {
2302 return new _ByteArrayIterator<int>(this); 2406 return new _ByteArrayIterator<int>(this);
2303 } 2407 }
2304 2408
2305 List<int> getRange(int start, int length) { 2409 List<int> sublist(int start, [int end]) {
2410 if (end == null) end = this.length;
2411 int length = end - start;
2306 _rangeCheck(this.length, start, length); 2412 _rangeCheck(this.length, start, length);
2307 List<int> result = new Uint16List(length); 2413 List<int> result = new Uint16List(length);
2308 result.setRange(0, length, this, start); 2414 result.setRange(0, length, this, start);
2309 return result; 2415 return result;
2310 } 2416 }
2311 2417
2418 List<int> getRange(int start, int length) => sublist(start, start + length);
2419
2312 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2420 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2313 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2421 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2314 } 2422 }
2315 2423
2316 String toString() { 2424 String toString() {
2317 return Collections.collectionToString(this); 2425 return Collections.collectionToString(this);
2318 } 2426 }
2319 2427
2320 int bytesPerElement() { 2428 int bytesPerElement() {
2321 return _BYTES_PER_ELEMENT; 2429 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2359 String message = "$index must be in the range [0..$length)"; 2467 String message = "$index must be in the range [0..$length)";
2360 throw new RangeError(message); 2468 throw new RangeError(message);
2361 } 2469 }
2362 _array.setInt32(_offset + (index * _BYTES_PER_ELEMENT), _toInt32(value)); 2470 _array.setInt32(_offset + (index * _BYTES_PER_ELEMENT), _toInt32(value));
2363 } 2471 }
2364 2472
2365 Iterator<int> get iterator { 2473 Iterator<int> get iterator {
2366 return new _ByteArrayIterator<int>(this); 2474 return new _ByteArrayIterator<int>(this);
2367 } 2475 }
2368 2476
2369 List<int> getRange(int start, int length) { 2477 List<int> sublist(int start, [int end]) {
2478 if (end == null) end = this.length;
2479 int length = end - start;
2370 _rangeCheck(this.length, start, length); 2480 _rangeCheck(this.length, start, length);
2371 List<int> result = new Int32List(length); 2481 List<int> result = new Int32List(length);
2372 result.setRange(0, length, this, start); 2482 result.setRange(0, length, this, start);
2373 return result; 2483 return result;
2374 } 2484 }
2375 2485
2486 List<int> getRange(int start, int length) => sublist(start, start + length);
2487
2376 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2488 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2377 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2489 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2378 } 2490 }
2379 2491
2380 String toString() { 2492 String toString() {
2381 return Collections.collectionToString(this); 2493 return Collections.collectionToString(this);
2382 } 2494 }
2383 2495
2384 int bytesPerElement() { 2496 int bytesPerElement() {
2385 return _BYTES_PER_ELEMENT; 2497 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2423 String message = "$index must be in the range [0..$length)"; 2535 String message = "$index must be in the range [0..$length)";
2424 throw new RangeError(message); 2536 throw new RangeError(message);
2425 } 2537 }
2426 _array.setUint32(_offset + (index * _BYTES_PER_ELEMENT), _toUint32(value)); 2538 _array.setUint32(_offset + (index * _BYTES_PER_ELEMENT), _toUint32(value));
2427 } 2539 }
2428 2540
2429 Iterator<int> get iterator { 2541 Iterator<int> get iterator {
2430 return new _ByteArrayIterator<int>(this); 2542 return new _ByteArrayIterator<int>(this);
2431 } 2543 }
2432 2544
2433 List<int> getRange(int start, int length) { 2545 List<int> sublist(int start, [int end]) {
2546 if (end == null) end = this.length;
2547 int length = end - start;
2434 _rangeCheck(this.length, start, length); 2548 _rangeCheck(this.length, start, length);
2435 List<int> result = new Uint32List(length); 2549 List<int> result = new Uint32List(length);
2436 result.setRange(0, length, this, start); 2550 result.setRange(0, length, this, start);
2437 return result; 2551 return result;
2438 } 2552 }
2439 2553
2554 List<int> getRange(int start, int length) => sublist(start, start + length);
2555
2440 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2556 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2441 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2557 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2442 } 2558 }
2443 2559
2444 String toString() { 2560 String toString() {
2445 return Collections.collectionToString(this); 2561 return Collections.collectionToString(this);
2446 } 2562 }
2447 2563
2448 int bytesPerElement() { 2564 int bytesPerElement() {
2449 return _BYTES_PER_ELEMENT; 2565 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2487 String message = "$index must be in the range [0..$length)"; 2603 String message = "$index must be in the range [0..$length)";
2488 throw new RangeError(message); 2604 throw new RangeError(message);
2489 } 2605 }
2490 _array.setInt64(_offset + (index * _BYTES_PER_ELEMENT), _toInt64(value)); 2606 _array.setInt64(_offset + (index * _BYTES_PER_ELEMENT), _toInt64(value));
2491 } 2607 }
2492 2608
2493 Iterator<int> get iterator { 2609 Iterator<int> get iterator {
2494 return new _ByteArrayIterator<int>(this); 2610 return new _ByteArrayIterator<int>(this);
2495 } 2611 }
2496 2612
2497 List<int> getRange(int start, int length) { 2613 List<int> sublist(int start, [int end]) {
2614 if (end == null) end = this.length;
2615 int length = end - start;
2498 _rangeCheck(this.length, start, length); 2616 _rangeCheck(this.length, start, length);
2499 List<int> result = new Int64List(length); 2617 List<int> result = new Int64List(length);
2500 result.setRange(0, length, this, start); 2618 result.setRange(0, length, this, start);
2501 return result; 2619 return result;
2502 } 2620 }
2503 2621
2622 List<int> getRange(int start, int length) => sublist(start, start + length);
2623
2504 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2624 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2505 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2625 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2506 } 2626 }
2507 2627
2508 String toString() { 2628 String toString() {
2509 return Collections.collectionToString(this); 2629 return Collections.collectionToString(this);
2510 } 2630 }
2511 2631
2512 int bytesPerElement() { 2632 int bytesPerElement() {
2513 return _BYTES_PER_ELEMENT; 2633 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2551 String message = "$index must be in the range [0..$length)"; 2671 String message = "$index must be in the range [0..$length)";
2552 throw new RangeError(message); 2672 throw new RangeError(message);
2553 } 2673 }
2554 _array.setUint64(_offset + (index * _BYTES_PER_ELEMENT), _toUint64(value)); 2674 _array.setUint64(_offset + (index * _BYTES_PER_ELEMENT), _toUint64(value));
2555 } 2675 }
2556 2676
2557 Iterator<int> get iterator { 2677 Iterator<int> get iterator {
2558 return new _ByteArrayIterator<int>(this); 2678 return new _ByteArrayIterator<int>(this);
2559 } 2679 }
2560 2680
2561 List<int> getRange(int start, int length) { 2681 List<int> sublist(int start, [int end]) {
2682 if (end == null) end = this.length;
2683 int length = end - start;
2562 _rangeCheck(this.length, start, length); 2684 _rangeCheck(this.length, start, length);
2563 List<int> result = new Uint64List(length); 2685 List<int> result = new Uint64List(length);
2564 result.setRange(0, length, this, start); 2686 result.setRange(0, length, this, start);
2565 return result; 2687 return result;
2566 } 2688 }
2567 2689
2690 List<int> getRange(int start, int length) => sublist(start, start + length);
2691
2568 void setRange(int start, int length, List<int> from, [int startFrom = 0]) { 2692 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
2569 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2693 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2570 } 2694 }
2571 2695
2572 String toString() { 2696 String toString() {
2573 return Collections.collectionToString(this); 2697 return Collections.collectionToString(this);
2574 } 2698 }
2575 2699
2576 int bytesPerElement() { 2700 int bytesPerElement() {
2577 return _BYTES_PER_ELEMENT; 2701 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2615 String message = "$index must be in the range [0..$length)"; 2739 String message = "$index must be in the range [0..$length)";
2616 throw new RangeError(message); 2740 throw new RangeError(message);
2617 } 2741 }
2618 _array.setFloat32(_offset + (index * _BYTES_PER_ELEMENT), value); 2742 _array.setFloat32(_offset + (index * _BYTES_PER_ELEMENT), value);
2619 } 2743 }
2620 2744
2621 Iterator<double> get iterator { 2745 Iterator<double> get iterator {
2622 return new _ByteArrayIterator<double>(this); 2746 return new _ByteArrayIterator<double>(this);
2623 } 2747 }
2624 2748
2625 List<double> getRange(int start, int length) { 2749 List<double> sublist(int start, [int end]) {
2750 if (end == null) end = this.length;
2751 int length = end - start;
2626 _rangeCheck(this.length, start, length); 2752 _rangeCheck(this.length, start, length);
2627 List<double> result = new Float32List(length); 2753 List<double> result = new Float32List(length);
2628 result.setRange(0, length, this, start); 2754 result.setRange(0, length, this, start);
2629 return result; 2755 return result;
2630 } 2756 }
2631 2757
2758 List<double> getRange(int start, int length) =>
2759 sublist(start, start + length);
2760
2632 void setRange(int start, int length, List<double> from, [int startFrom = 0]) { 2761 void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
2633 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2762 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2634 } 2763 }
2635 2764
2636 String toString() { 2765 String toString() {
2637 return Collections.collectionToString(this); 2766 return Collections.collectionToString(this);
2638 } 2767 }
2639 2768
2640 int bytesPerElement() { 2769 int bytesPerElement() {
2641 return _BYTES_PER_ELEMENT; 2770 return _BYTES_PER_ELEMENT;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2679 String message = "$index must be in the range [0..$length)"; 2808 String message = "$index must be in the range [0..$length)";
2680 throw new RangeError(message); 2809 throw new RangeError(message);
2681 } 2810 }
2682 _array.setFloat64(_offset + (index * _BYTES_PER_ELEMENT), value); 2811 _array.setFloat64(_offset + (index * _BYTES_PER_ELEMENT), value);
2683 } 2812 }
2684 2813
2685 Iterator<double> get iterator { 2814 Iterator<double> get iterator {
2686 return new _ByteArrayIterator<double>(this); 2815 return new _ByteArrayIterator<double>(this);
2687 } 2816 }
2688 2817
2689 List<double> getRange(int start, int length) { 2818 List<double> sublist(int start, [int end]) {
2819 if (end == null) end = this.length;
2820 int length = end - start;
2690 _rangeCheck(this.length, start, length); 2821 _rangeCheck(this.length, start, length);
2691 List<double> result = new Float64List(length); 2822 List<double> result = new Float64List(length);
2692 result.setRange(0, length, this, start); 2823 result.setRange(0, length, this, start);
2693 return result; 2824 return result;
2694 } 2825 }
2695 2826
2827 List<double> getRange(int start, int length) =>
2828 sublist(start, start + length);
2829
2696 void setRange(int start, int length, List<double> from, [int startFrom = 0]) { 2830 void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
2697 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom); 2831 IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
2698 } 2832 }
2699 2833
2700 String toString() { 2834 String toString() {
2701 return Collections.collectionToString(this); 2835 return Collections.collectionToString(this);
2702 } 2836 }
2703 2837
2704 int bytesPerElement() { 2838 int bytesPerElement() {
2705 return _BYTES_PER_ELEMENT; 2839 return _BYTES_PER_ELEMENT;
2706 } 2840 }
2707 2841
2708 int lengthInBytes() { 2842 int lengthInBytes() {
2709 return length * _BYTES_PER_ELEMENT; 2843 return length * _BYTES_PER_ELEMENT;
2710 } 2844 }
2711 2845
2712 ByteArray asByteArray([int start = 0, int length]) { 2846 ByteArray asByteArray([int start = 0, int length]) {
2713 if (length == null) { 2847 if (length == null) {
2714 length = this.lengthInBytes(); 2848 length = this.lengthInBytes();
2715 } 2849 }
2716 _rangeCheck(this.length, start, length); 2850 _rangeCheck(this.length, start, length);
2717 return _array.subByteArray(_offset + start, length); 2851 return _array.subByteArray(_offset + start, length);
2718 } 2852 }
2719 2853
2720 static const int _BYTES_PER_ELEMENT = 8; 2854 static const int _BYTES_PER_ELEMENT = 8;
2721 } 2855 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698