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

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

Issue 11361190: a === b -> identical(a, b) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/lib/array_patch.dart ('k') | runtime/lib/date_patch.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.view(ByteArray array, 10 /* patch */ factory Int8List.view(ByteArray array,
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 147
148 bool every(bool f(element)) { 148 bool every(bool f(element)) {
149 return Collections.every(this, f); 149 return Collections.every(this, f);
150 } 150 }
151 151
152 bool some(bool f(element)) { 152 bool some(bool f(element)) {
153 return Collections.some(this, f); 153 return Collections.some(this, f);
154 } 154 }
155 155
156 bool get isEmpty { 156 bool get isEmpty {
157 return this.length === 0; 157 return this.length == 0;
158 } 158 }
159 159
160 int get length { 160 int get length {
161 return _length(); 161 return _length();
162 } 162 }
163 163
164 // Methods implementing the List interface. 164 // Methods implementing the List interface.
165 165
166 set length(newLength) { 166 set length(newLength) {
167 throw new UnsupportedError( 167 throw new UnsupportedError(
(...skipping 17 matching lines...) Expand all
185 185
186 void sort([Comparator compare = Comparable.compare]) { 186 void sort([Comparator compare = Comparable.compare]) {
187 coreSort(this, compare); 187 coreSort(this, compare);
188 } 188 }
189 189
190 int indexOf(element, [int start = 0]) { 190 int indexOf(element, [int start = 0]) {
191 return Arrays.indexOf(this, element, start, this.length); 191 return Arrays.indexOf(this, element, start, this.length);
192 } 192 }
193 193
194 int lastIndexOf(element, [int start = null]) { 194 int lastIndexOf(element, [int start = null]) {
195 if (start === null) start = length - 1; 195 if (start == null) start = length - 1;
196 return Arrays.lastIndexOf(this, element, start); 196 return Arrays.lastIndexOf(this, element, start);
197 } 197 }
198 198
199 void clear() { 199 void clear() {
200 throw new UnsupportedError( 200 throw new UnsupportedError(
201 "Cannot remove from a non-extendable array"); 201 "Cannot remove from a non-extendable array");
202 } 202 }
203 203
204 int removeLast() { 204 int removeLast() {
205 throw new UnsupportedError( 205 throw new UnsupportedError(
206 "Cannot remove from a non-extendable array"); 206 "Cannot remove from a non-extendable array");
207 } 207 }
208 208
209 get last { 209 get last {
210 return this[length - 1]; 210 return this[length - 1];
211 } 211 }
212 212
213 void removeRange(int start, int length) { 213 void removeRange(int start, int length) {
214 throw new UnsupportedError( 214 throw new UnsupportedError(
215 "Cannot remove from a non-extendable array"); 215 "Cannot remove from a non-extendable array");
216 } 216 }
217 217
218 void insertRange(int start, int length, [initialValue]) { 218 void insertRange(int start, int length, [initialValue]) {
219 throw new UnsupportedError( 219 throw new UnsupportedError(
220 "Cannot add to a non-extendable array"); 220 "Cannot add to a non-extendable array");
221 } 221 }
222 222
223 ByteArray asByteArray([int start = 0, int length]) { 223 ByteArray asByteArray([int start = 0, int length]) {
224 if (length === null) { 224 if (length == null) {
225 length = this.length; 225 length = this.length;
226 } 226 }
227 _rangeCheck(this.length, start, length); 227 _rangeCheck(this.length, start, length);
228 return new _ByteArrayView(this, 228 return new _ByteArrayView(this,
229 start * this.bytesPerElement(), 229 start * this.bytesPerElement(),
230 length * this.bytesPerElement()); 230 length * this.bytesPerElement());
231 } 231 }
232 232
233 int _length() native "ByteArray_getLength"; 233 int _length() native "ByteArray_getLength";
234 234
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 return object; 324 return object;
325 } 325 }
326 throw new ArgumentError("$object is not an integer"); 326 throw new ArgumentError("$object is not an integer");
327 } 327 }
328 328
329 329
330 int _requireIntegerOrNull(object, value) { 330 int _requireIntegerOrNull(object, value) {
331 if (object is int) { 331 if (object is int) {
332 return object; 332 return object;
333 } 333 }
334 if (object === null) { 334 if (object == null) {
335 return _requireInteger(value); 335 return _requireInteger(value);
336 } 336 }
337 throw new ArgumentError("$object is not an integer or null"); 337 throw new ArgumentError("$object is not an integer or null");
338 } 338 }
339 339
340 340
341 class _Int8Array extends _ByteArrayBase implements Int8List { 341 class _Int8Array extends _ByteArrayBase implements Int8List {
342 factory _Int8Array(int length) { 342 factory _Int8Array(int length) {
343 return _new(length); 343 return _new(length);
344 } 344 }
345 345
346 factory _Int8Array.view(ByteArray array, [int start = 0, int length]) { 346 factory _Int8Array.view(ByteArray array, [int start = 0, int length]) {
347 if (length === null) { 347 if (length == null) {
348 length = array.lengthInBytes(); 348 length = array.lengthInBytes();
349 } 349 }
350 return new _Int8ArrayView(array, start, length); 350 return new _Int8ArrayView(array, start, length);
351 } 351 }
352 352
353 int operator[](int index) { 353 int operator[](int index) {
354 return _getIndexed(index); 354 return _getIndexed(index);
355 } 355 }
356 356
357 int operator[]=(int index, int value) { 357 int operator[]=(int index, int value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 int _setIndexed(int index, int value) native "Int8Array_setIndexed"; 400 int _setIndexed(int index, int value) native "Int8Array_setIndexed";
401 } 401 }
402 402
403 403
404 class _Uint8Array extends _ByteArrayBase implements Uint8List { 404 class _Uint8Array extends _ByteArrayBase implements Uint8List {
405 factory _Uint8Array(int length) { 405 factory _Uint8Array(int length) {
406 return _new(length); 406 return _new(length);
407 } 407 }
408 408
409 factory _Uint8Array.view(ByteArray array, [int start = 0, int length]) { 409 factory _Uint8Array.view(ByteArray array, [int start = 0, int length]) {
410 if (length === null) { 410 if (length == null) {
411 length = array.lengthInBytes(); 411 length = array.lengthInBytes();
412 } 412 }
413 return new _Uint8ArrayView(array, start, length); 413 return new _Uint8ArrayView(array, start, length);
414 } 414 }
415 415
416 int operator[](int index) { 416 int operator[](int index) {
417 return _getIndexed(index); 417 return _getIndexed(index);
418 } 418 }
419 419
420 int operator[]=(int index, int value) { 420 int operator[]=(int index, int value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 int _setIndexed(int index, int value) native "Uint8Array_setIndexed"; 463 int _setIndexed(int index, int value) native "Uint8Array_setIndexed";
464 } 464 }
465 465
466 466
467 class _Int16Array extends _ByteArrayBase implements Int16List { 467 class _Int16Array extends _ByteArrayBase implements Int16List {
468 factory _Int16Array(int length) { 468 factory _Int16Array(int length) {
469 return _new(length); 469 return _new(length);
470 } 470 }
471 471
472 factory _Int16Array.view(ByteArray array, [int start = 0, int length]) { 472 factory _Int16Array.view(ByteArray array, [int start = 0, int length]) {
473 if (length === null) { 473 if (length == null) {
474 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 474 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
475 } 475 }
476 return new _Int16ArrayView(array, start, length); 476 return new _Int16ArrayView(array, start, length);
477 } 477 }
478 478
479 int operator[](int index) { 479 int operator[](int index) {
480 return _getIndexed(index); 480 return _getIndexed(index);
481 } 481 }
482 482
483 int operator[]=(int index, int value) { 483 int operator[]=(int index, int value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 int _setIndexed(int index, int value) native "Int16Array_setIndexed"; 526 int _setIndexed(int index, int value) native "Int16Array_setIndexed";
527 } 527 }
528 528
529 529
530 class _Uint16Array extends _ByteArrayBase implements Uint16List { 530 class _Uint16Array extends _ByteArrayBase implements Uint16List {
531 factory _Uint16Array(int length) { 531 factory _Uint16Array(int length) {
532 return _new(length); 532 return _new(length);
533 } 533 }
534 534
535 factory _Uint16Array.view(ByteArray array, [int start = 0, int length]) { 535 factory _Uint16Array.view(ByteArray array, [int start = 0, int length]) {
536 if (length === null) { 536 if (length == null) {
537 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 537 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
538 } 538 }
539 return new _Uint16ArrayView(array, start, length); 539 return new _Uint16ArrayView(array, start, length);
540 } 540 }
541 541
542 int operator[](int index) { 542 int operator[](int index) {
543 return _getIndexed(index); 543 return _getIndexed(index);
544 } 544 }
545 545
546 int operator[]=(int index, int value) { 546 int operator[]=(int index, int value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 int _setIndexed(int index, int value) native "Uint16Array_setIndexed"; 589 int _setIndexed(int index, int value) native "Uint16Array_setIndexed";
590 } 590 }
591 591
592 592
593 class _Int32Array extends _ByteArrayBase implements Int32List { 593 class _Int32Array extends _ByteArrayBase implements Int32List {
594 factory _Int32Array(int length) { 594 factory _Int32Array(int length) {
595 return _new(length); 595 return _new(length);
596 } 596 }
597 597
598 factory _Int32Array.view(ByteArray array, [int start = 0, int length]) { 598 factory _Int32Array.view(ByteArray array, [int start = 0, int length]) {
599 if (length === null) { 599 if (length == null) {
600 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 600 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
601 } 601 }
602 return new _Int32ArrayView(array, start, length); 602 return new _Int32ArrayView(array, start, length);
603 } 603 }
604 604
605 int operator[](int index) { 605 int operator[](int index) {
606 return _getIndexed(index); 606 return _getIndexed(index);
607 } 607 }
608 608
609 int operator[]=(int index, int value) { 609 int operator[]=(int index, int value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 int _setIndexed(int index, int value) native "Int32Array_setIndexed"; 652 int _setIndexed(int index, int value) native "Int32Array_setIndexed";
653 } 653 }
654 654
655 655
656 class _Uint32Array extends _ByteArrayBase implements Uint32List { 656 class _Uint32Array extends _ByteArrayBase implements Uint32List {
657 factory _Uint32Array(int length) { 657 factory _Uint32Array(int length) {
658 return _new(length); 658 return _new(length);
659 } 659 }
660 660
661 factory _Uint32Array.view(ByteArray array, [int start = 0, int length]) { 661 factory _Uint32Array.view(ByteArray array, [int start = 0, int length]) {
662 if (length === null) { 662 if (length == null) {
663 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 663 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
664 } 664 }
665 return new _Uint32ArrayView(array, start, length); 665 return new _Uint32ArrayView(array, start, length);
666 } 666 }
667 667
668 int operator[](int index) { 668 int operator[](int index) {
669 return _getIndexed(index); 669 return _getIndexed(index);
670 } 670 }
671 671
672 int operator[]=(int index, int value) { 672 int operator[]=(int index, int value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 int _setIndexed(int index, int value) native "Uint32Array_setIndexed"; 715 int _setIndexed(int index, int value) native "Uint32Array_setIndexed";
716 } 716 }
717 717
718 718
719 class _Int64Array extends _ByteArrayBase implements Int64List { 719 class _Int64Array extends _ByteArrayBase implements Int64List {
720 factory _Int64Array(int length) { 720 factory _Int64Array(int length) {
721 return _new(length); 721 return _new(length);
722 } 722 }
723 723
724 factory _Int64Array.view(ByteArray array, [int start = 0, int length]) { 724 factory _Int64Array.view(ByteArray array, [int start = 0, int length]) {
725 if (length === null) { 725 if (length == null) {
726 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 726 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
727 } 727 }
728 return new _Int64ArrayView(array, start, length); 728 return new _Int64ArrayView(array, start, length);
729 } 729 }
730 730
731 int operator[](int index) { 731 int operator[](int index) {
732 return _getIndexed(index); 732 return _getIndexed(index);
733 } 733 }
734 734
735 int operator[]=(int index, int value) { 735 int operator[]=(int index, int value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 int _setIndexed(int index, int value) native "Int64Array_setIndexed"; 778 int _setIndexed(int index, int value) native "Int64Array_setIndexed";
779 } 779 }
780 780
781 781
782 class _Uint64Array extends _ByteArrayBase implements Uint64List { 782 class _Uint64Array extends _ByteArrayBase implements Uint64List {
783 factory _Uint64Array(int length) { 783 factory _Uint64Array(int length) {
784 return _new(length); 784 return _new(length);
785 } 785 }
786 786
787 factory _Uint64Array.view(ByteArray array, [int start = 0, int length]) { 787 factory _Uint64Array.view(ByteArray array, [int start = 0, int length]) {
788 if (length === null) { 788 if (length == null) {
789 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 789 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
790 } 790 }
791 return new _Uint64ArrayView(array, start, length); 791 return new _Uint64ArrayView(array, start, length);
792 } 792 }
793 793
794 int operator[](int index) { 794 int operator[](int index) {
795 return _getIndexed(index); 795 return _getIndexed(index);
796 } 796 }
797 797
798 int operator[]=(int index, int value) { 798 int operator[]=(int index, int value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 int _setIndexed(int index, int value) native "Uint64Array_setIndexed"; 841 int _setIndexed(int index, int value) native "Uint64Array_setIndexed";
842 } 842 }
843 843
844 844
845 class _Float32Array extends _ByteArrayBase implements Float32List { 845 class _Float32Array extends _ByteArrayBase implements Float32List {
846 factory _Float32Array(int length) { 846 factory _Float32Array(int length) {
847 return _new(length); 847 return _new(length);
848 } 848 }
849 849
850 factory _Float32Array.view(ByteArray array, [int start = 0, int length]) { 850 factory _Float32Array.view(ByteArray array, [int start = 0, int length]) {
851 if (length === null) { 851 if (length == null) {
852 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 852 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
853 } 853 }
854 return new _Float32ArrayView(array, start, length); 854 return new _Float32ArrayView(array, start, length);
855 } 855 }
856 856
857 double operator[](int index) { 857 double operator[](int index) {
858 return _getIndexed(index); 858 return _getIndexed(index);
859 } 859 }
860 860
861 int operator[]=(int index, double value) { 861 int operator[]=(int index, double value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 int _setIndexed(int index, double value) native "Float32Array_setIndexed"; 904 int _setIndexed(int index, double value) native "Float32Array_setIndexed";
905 } 905 }
906 906
907 907
908 class _Float64Array extends _ByteArrayBase implements Float64List { 908 class _Float64Array extends _ByteArrayBase implements Float64List {
909 factory _Float64Array(int length) { 909 factory _Float64Array(int length) {
910 return _new(length); 910 return _new(length);
911 } 911 }
912 912
913 factory _Float64Array.view(ByteArray array, [int start = 0, int length]) { 913 factory _Float64Array.view(ByteArray array, [int start = 0, int length]) {
914 if (length === null) { 914 if (length == null) {
915 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 915 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
916 } 916 }
917 return new _Float64ArrayView(array, start, length); 917 return new _Float64ArrayView(array, start, length);
918 } 918 }
919 919
920 double operator[](int index) { 920 double operator[](int index) {
921 return _getIndexed(index); 921 return _getIndexed(index);
922 } 922 }
923 923
924 int operator[]=(int index, double value) { 924 int operator[]=(int index, double value) {
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after
1509 _ByteArrayView(this._array, this._offset, this._length) { 1509 _ByteArrayView(this._array, this._offset, this._length) {
1510 _rangeCheck(_array.lengthInBytes(), _offset, _length); 1510 _rangeCheck(_array.lengthInBytes(), _offset, _length);
1511 } 1511 }
1512 1512
1513 int lengthInBytes() { 1513 int lengthInBytes() {
1514 return _length; 1514 return _length;
1515 } 1515 }
1516 1516
1517 ByteArray subByteArray([int start = 0, int length]) { 1517 ByteArray subByteArray([int start = 0, int length]) {
1518 if (start is! int) throw new ArgumentError("start is not an int"); 1518 if (start is! int) throw new ArgumentError("start is not an int");
1519 if (length === null) { 1519 if (length == null) {
1520 length = this.lengthInBytes() - start; 1520 length = this.lengthInBytes() - start;
1521 } else if (length is! int) { 1521 } else if (length is! int) {
1522 throw new ArgumentError("length is not an int"); 1522 throw new ArgumentError("length is not an int");
1523 } 1523 }
1524 return new _ByteArrayView(_array, _offset + start, length); 1524 return new _ByteArrayView(_array, _offset + start, length);
1525 } 1525 }
1526 1526
1527 int getInt8(int byteOffset) { 1527 int getInt8(int byteOffset) {
1528 return _array._getInt8(_offset + byteOffset); 1528 return _array._getInt8(_offset + byteOffset);
1529 } 1529 }
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
1627 1627
1628 bool every(bool f(element)) { 1628 bool every(bool f(element)) {
1629 return Collections.every(this, f); 1629 return Collections.every(this, f);
1630 } 1630 }
1631 1631
1632 bool some(bool f(element)) { 1632 bool some(bool f(element)) {
1633 return Collections.some(this, f);; 1633 return Collections.some(this, f);;
1634 } 1634 }
1635 1635
1636 bool get isEmpty { 1636 bool get isEmpty {
1637 return this.length === 0; 1637 return this.length == 0;
1638 } 1638 }
1639 1639
1640 abstract int get length; 1640 abstract int get length;
1641 1641
1642 // Methods implementing the List interface. 1642 // Methods implementing the List interface.
1643 1643
1644 set length(newLength) { 1644 set length(newLength) {
1645 throw new UnsupportedError( 1645 throw new UnsupportedError(
1646 "Cannot resize a non-extendable array"); 1646 "Cannot resize a non-extendable array");
1647 } 1647 }
(...skipping 15 matching lines...) Expand all
1663 1663
1664 void sort([Comparator compare = Comparable.compare]) { 1664 void sort([Comparator compare = Comparable.compare]) {
1665 coreSort(this, compare); 1665 coreSort(this, compare);
1666 } 1666 }
1667 1667
1668 int indexOf(element, [int start = 0]) { 1668 int indexOf(element, [int start = 0]) {
1669 return Arrays.indexOf(this, element, start, this.length); 1669 return Arrays.indexOf(this, element, start, this.length);
1670 } 1670 }
1671 1671
1672 int lastIndexOf(element, [int start = null]) { 1672 int lastIndexOf(element, [int start = null]) {
1673 if (start === null) start = length - 1; 1673 if (start == null) start = length - 1;
1674 return Arrays.lastIndexOf(this, element, start); 1674 return Arrays.lastIndexOf(this, element, start);
1675 } 1675 }
1676 1676
1677 void clear() { 1677 void clear() {
1678 throw new UnsupportedError( 1678 throw new UnsupportedError(
1679 "Cannot remove from a non-extendable array"); 1679 "Cannot remove from a non-extendable array");
1680 } 1680 }
1681 1681
1682 int removeLast() { 1682 int removeLast() {
1683 throw new UnsupportedError( 1683 throw new UnsupportedError(
(...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after
2411 } 2411 }
2412 _rangeCheck(this.length, start, length); 2412 _rangeCheck(this.length, start, length);
2413 return _array.subByteArray(_offset + start, length); 2413 return _array.subByteArray(_offset + start, length);
2414 } 2414 }
2415 2415
2416 static const int _BYTES_PER_ELEMENT = 8; 2416 static const int _BYTES_PER_ELEMENT = 8;
2417 final ByteArray _array; 2417 final ByteArray _array;
2418 final int _offset; 2418 final int _offset;
2419 final int _length; 2419 final int _length;
2420 } 2420 }
OLDNEW
« no previous file with comments | « runtime/lib/array_patch.dart ('k') | runtime/lib/date_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698