OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 patch class Int8List { | 5 patch class Int8List { |
6 /* patch */ factory Int8List(int length) { | 6 /* patch */ factory Int8List(int length) { |
7 return new _Int8Array(length); | 7 return new _Int8Array(length); |
8 } | 8 } |
9 | 9 |
10 /* patch */ factory Int8List.transferable(int length) { | 10 /* patch */ factory Int8List.transferable(int length) { |
(...skipping 538 matching lines...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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...) Loading... |
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 } |
OLD | NEW |