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

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

Issue 11414211: Expose transferable constructor to Int8List (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Add tests Created 8 years 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.transferrable(int length) {
11 return new _Int8Array.transferrable(length);
12 }
13
10 /* patch */ factory Int8List.view(ByteArray array, 14 /* patch */ factory Int8List.view(ByteArray array,
11 [int start = 0, int length]) { 15 [int start = 0, int length]) {
12 return new _Int8ArrayView(array, start, length); 16 return new _Int8ArrayView(array, start, length);
13 } 17 }
14 } 18 }
15 19
16 20
17 patch class Uint8List { 21 patch class Uint8List {
18 /* patch */ factory Uint8List(int length) { 22 /* patch */ factory Uint8List(int length) {
19 return new _Uint8Array(length); 23 return new _Uint8Array(length);
20 } 24 }
21 25
26 /* patch */ factory Uint8List.transferrable(int length) {
27 return new _Uint8Array.transferrable(length);
28 }
29
22 /* patch */ factory Uint8List.view(ByteArray array, 30 /* patch */ factory Uint8List.view(ByteArray array,
23 [int start = 0, int length]) { 31 [int start = 0, int length]) {
24 return new _Uint8ArrayView(array, start, length); 32 return new _Uint8ArrayView(array, start, length);
25 } 33 }
26 } 34 }
27 35
28 36
29 patch class Int16List { 37 patch class Int16List {
30 /* patch */ factory Int16List(int length) { 38 /* patch */ factory Int16List(int length) {
31 return new _Int16Array(length); 39 return new _Int16Array(length);
32 } 40 }
33 41
42 /* patch */ factory Int16List.transferrable(int length) {
43 return new _Int16Array.transferrable(length);
44 }
45
34 /* patch */ factory Int16List.view(ByteArray array, [int start = 0, int length ]) { 46 /* patch */ factory Int16List.view(ByteArray array, [int start = 0, int length ]) {
35 return new _Int16ArrayView(array, start, length); 47 return new _Int16ArrayView(array, start, length);
36 } 48 }
37 } 49 }
38 50
39 51
40 patch class Uint16List { 52 patch class Uint16List {
41 /* patch */ factory Uint16List(int length) { 53 /* patch */ factory Uint16List(int length) {
42 return new _Uint16Array(length); 54 return new _Uint16Array(length);
43 } 55 }
44 56
57 /* patch */ factory Uint16List.transferrable(int length) {
58 return new _Uint16Array.transferrable(length);
59 }
60
45 /* patch */ factory Uint16List.view(ByteArray array, [int start = 0, int lengt h]) { 61 /* patch */ factory Uint16List.view(ByteArray array, [int start = 0, int lengt h]) {
46 return new _Uint16ArrayView(array, start, length); 62 return new _Uint16ArrayView(array, start, length);
47 } 63 }
48 } 64 }
49 65
50 66
51 patch class Int32List { 67 patch class Int32List {
52 /* patch */ factory Int32List(int length) { 68 /* patch */ factory Int32List(int length) {
53 return new _Int32Array(length); 69 return new _Int32Array(length);
54 } 70 }
55 71
72 /* patch */ factory Int32List.transferrable(int length) {
73 return new _Int32Array.transferrable(length);
74 }
75
56 /* patch */ factory Int32List.view(ByteArray array, [int start = 0, int length ]) { 76 /* patch */ factory Int32List.view(ByteArray array, [int start = 0, int length ]) {
57 return new _Int32ArrayView(array, start, length); 77 return new _Int32ArrayView(array, start, length);
58 } 78 }
59 } 79 }
60 80
61 81
62 patch class Uint32List { 82 patch class Uint32List {
63 /* patch */ factory Uint32List(int length) { 83 /* patch */ factory Uint32List(int length) {
64 return new _Uint32Array(length); 84 return new _Uint32Array(length);
65 } 85 }
66 86
87 /* patch */ factory Uint32List.transferrable(int length) {
88 return new _Uint32Array.transferrable(length);
89 }
90
67 /* patch */ factory Uint32List.view(ByteArray array, [int start = 0, int lengt h]) { 91 /* patch */ factory Uint32List.view(ByteArray array, [int start = 0, int lengt h]) {
68 return new _Uint32ArrayView(array, start, length); 92 return new _Uint32ArrayView(array, start, length);
69 } 93 }
70 } 94 }
71 95
72 96
73 patch class Int64List { 97 patch class Int64List {
74 /* patch */ factory Int64List(int length) { 98 /* patch */ factory Int64List(int length) {
75 return new _Int64Array(length); 99 return new _Int64Array(length);
76 } 100 }
77 101
102 /* patch */ factory Int64List.transferrable(int length) {
103 return new _Int64Array.transferrable(length);
104 }
105
78 /* patch */ factory Int64List.view(ByteArray array, [int start = 0, int length ]) { 106 /* patch */ factory Int64List.view(ByteArray array, [int start = 0, int length ]) {
79 return new _Int64ArrayView(array, start, length); 107 return new _Int64ArrayView(array, start, length);
80 } 108 }
81 } 109 }
82 110
83 111
84 patch class Uint64List { 112 patch class Uint64List {
85 /* patch */ factory Uint64List(int length) { 113 /* patch */ factory Uint64List(int length) {
86 return new _Uint64Array(length); 114 return new _Uint64Array(length);
87 } 115 }
88 116
117 /* patch */ factory Uint64List.transferrable(int length) {
118 return new _Uint64Array.transferrable(length);
119 }
120
89 /* patch */ factory Uint64List.view(ByteArray array, [int start = 0, int lengt h]) { 121 /* patch */ factory Uint64List.view(ByteArray array, [int start = 0, int lengt h]) {
90 return new _Uint64ArrayView(array, start, length); 122 return new _Uint64ArrayView(array, start, length);
91 } 123 }
92 } 124 }
93 125
94 126
95 patch class Float32List { 127 patch class Float32List {
96 /* patch */ factory Float32List(int length) { 128 /* patch */ factory Float32List(int length) {
97 return new _Float32Array(length); 129 return new _Float32Array(length);
98 } 130 }
99 131
132 /* patch */ factory Float32List.transferrable(int length) {
133 return new _Float32Array.transferrable(length);
134 }
135
100 /* patch */ factory Float32List.view(ByteArray array, [int start = 0, int leng th]) { 136 /* patch */ factory Float32List.view(ByteArray array, [int start = 0, int leng th]) {
101 return new _Float32ArrayView(array, start, length); 137 return new _Float32ArrayView(array, start, length);
102 } 138 }
103 } 139 }
104 140
105 141
106 patch class Float64List { 142 patch class Float64List {
107 /* patch */ factory Float64List(int length) { 143 /* patch */ factory Float64List(int length) {
108 return new _Float64Array(length); 144 return new _Float64Array(length);
109 } 145 }
110 146
147 /* patch */ factory Float64List.transferrable(int length) {
148 return new _Float64Array.transferrable(length);
149 }
150
111 /* patch */ factory Float64List.view(ByteArray array, [int start = 0, int leng th]) { 151 /* patch */ factory Float64List.view(ByteArray array, [int start = 0, int leng th]) {
112 return new _Float64ArrayView(array, start, length); 152 return new _Float64ArrayView(array, start, length);
113 } 153 }
114 } 154 }
115 155
116 156
117 abstract class _ByteArrayBase { 157 abstract class _ByteArrayBase {
118 int lengthInBytes(); 158 int lengthInBytes();
119 159
120 int bytesPerElement(); 160 int bytesPerElement();
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 } 380 }
341 throw new ArgumentError("$object is not an integer or null"); 381 throw new ArgumentError("$object is not an integer or null");
342 } 382 }
343 383
344 384
345 class _Int8Array extends _ByteArrayBase implements Int8List { 385 class _Int8Array extends _ByteArrayBase implements Int8List {
346 factory _Int8Array(int length) { 386 factory _Int8Array(int length) {
347 return _new(length); 387 return _new(length);
348 } 388 }
349 389
390 factory _Int8Array.transferrable(int length) {
391 return _newTransferrable(length);
392 }
393
350 factory _Int8Array.view(ByteArray array, [int start = 0, int length]) { 394 factory _Int8Array.view(ByteArray array, [int start = 0, int length]) {
351 if (length == null) { 395 if (length == null) {
352 length = array.lengthInBytes(); 396 length = array.lengthInBytes();
353 } 397 }
354 return new _Int8ArrayView(array, start, length); 398 return new _Int8ArrayView(array, start, length);
355 } 399 }
356 400
357 int operator[](int index) { 401 int operator[](int index) {
358 return _getIndexed(index); 402 return _getIndexed(index);
359 } 403 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 return _BYTES_PER_ELEMENT; 436 return _BYTES_PER_ELEMENT;
393 } 437 }
394 438
395 int lengthInBytes() { 439 int lengthInBytes() {
396 return _length() * _BYTES_PER_ELEMENT; 440 return _length() * _BYTES_PER_ELEMENT;
397 } 441 }
398 442
399 static const int _BYTES_PER_ELEMENT = 1; 443 static const int _BYTES_PER_ELEMENT = 1;
400 444
401 static _Int8Array _new(int length) native "Int8Array_new"; 445 static _Int8Array _new(int length) native "Int8Array_new";
446 static _Int8Array _newTransferrable(int length) native
447 "Int8Array_newTransferrable";
402 448
403 int _getIndexed(int index) native "Int8Array_getIndexed"; 449 int _getIndexed(int index) native "Int8Array_getIndexed";
404 int _setIndexed(int index, int value) native "Int8Array_setIndexed"; 450 int _setIndexed(int index, int value) native "Int8Array_setIndexed";
405 } 451 }
406 452
407 453
408 class _Uint8Array extends _ByteArrayBase implements Uint8List { 454 class _Uint8Array extends _ByteArrayBase implements Uint8List {
409 factory _Uint8Array(int length) { 455 factory _Uint8Array(int length) {
410 return _new(length); 456 return _new(length);
411 } 457 }
412 458
459 factory _Uint8Array.transferrable(int length) {
460 return _newTransferrable(length);
461 }
462
413 factory _Uint8Array.view(ByteArray array, [int start = 0, int length]) { 463 factory _Uint8Array.view(ByteArray array, [int start = 0, int length]) {
414 if (length == null) { 464 if (length == null) {
415 length = array.lengthInBytes(); 465 length = array.lengthInBytes();
416 } 466 }
417 return new _Uint8ArrayView(array, start, length); 467 return new _Uint8ArrayView(array, start, length);
418 } 468 }
419 469
420 int operator[](int index) { 470 int operator[](int index) {
421 return _getIndexed(index); 471 return _getIndexed(index);
422 } 472 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 return _BYTES_PER_ELEMENT; 505 return _BYTES_PER_ELEMENT;
456 } 506 }
457 507
458 int lengthInBytes() { 508 int lengthInBytes() {
459 return _length() * _BYTES_PER_ELEMENT; 509 return _length() * _BYTES_PER_ELEMENT;
460 } 510 }
461 511
462 static const int _BYTES_PER_ELEMENT = 1; 512 static const int _BYTES_PER_ELEMENT = 1;
463 513
464 static _Uint8Array _new(int length) native "Uint8Array_new"; 514 static _Uint8Array _new(int length) native "Uint8Array_new";
465 515 static _Uint8Array _newTransferrable(int length) native
516 "Uint8Array_newTransferrable";
466 int _getIndexed(int index) native "Uint8Array_getIndexed"; 517 int _getIndexed(int index) native "Uint8Array_getIndexed";
467 int _setIndexed(int index, int value) native "Uint8Array_setIndexed"; 518 int _setIndexed(int index, int value) native "Uint8Array_setIndexed";
468 } 519 }
469 520
470 521
471 class _Int16Array extends _ByteArrayBase implements Int16List { 522 class _Int16Array extends _ByteArrayBase implements Int16List {
472 factory _Int16Array(int length) { 523 factory _Int16Array(int length) {
473 return _new(length); 524 return _new(length);
474 } 525 }
475 526
527 factory _Int16Array.transferrable(int length) {
528 return _newTransferrable(length);
529 }
530
476 factory _Int16Array.view(ByteArray array, [int start = 0, int length]) { 531 factory _Int16Array.view(ByteArray array, [int start = 0, int length]) {
477 if (length == null) { 532 if (length == null) {
478 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 533 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
479 } 534 }
480 return new _Int16ArrayView(array, start, length); 535 return new _Int16ArrayView(array, start, length);
481 } 536 }
482 537
483 int operator[](int index) { 538 int operator[](int index) {
484 return _getIndexed(index); 539 return _getIndexed(index);
485 } 540 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 return _BYTES_PER_ELEMENT; 573 return _BYTES_PER_ELEMENT;
519 } 574 }
520 575
521 int lengthInBytes() { 576 int lengthInBytes() {
522 return _length() * _BYTES_PER_ELEMENT; 577 return _length() * _BYTES_PER_ELEMENT;
523 } 578 }
524 579
525 static const int _BYTES_PER_ELEMENT = 2; 580 static const int _BYTES_PER_ELEMENT = 2;
526 581
527 static _Int16Array _new(int length) native "Int16Array_new"; 582 static _Int16Array _new(int length) native "Int16Array_new";
583 static _Int16Array _newTransferrable(int length) native
584 "Int16Array_newTransferrable";
528 585
529 int _getIndexed(int index) native "Int16Array_getIndexed"; 586 int _getIndexed(int index) native "Int16Array_getIndexed";
530 int _setIndexed(int index, int value) native "Int16Array_setIndexed"; 587 int _setIndexed(int index, int value) native "Int16Array_setIndexed";
531 } 588 }
532 589
533 590
534 class _Uint16Array extends _ByteArrayBase implements Uint16List { 591 class _Uint16Array extends _ByteArrayBase implements Uint16List {
535 factory _Uint16Array(int length) { 592 factory _Uint16Array(int length) {
536 return _new(length); 593 return _new(length);
537 } 594 }
538 595
596 factory _Uint16Array.transferrable(int length) {
597 return _newTransferrable(length);
598 }
599
539 factory _Uint16Array.view(ByteArray array, [int start = 0, int length]) { 600 factory _Uint16Array.view(ByteArray array, [int start = 0, int length]) {
540 if (length == null) { 601 if (length == null) {
541 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 602 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
542 } 603 }
543 return new _Uint16ArrayView(array, start, length); 604 return new _Uint16ArrayView(array, start, length);
544 } 605 }
545 606
546 int operator[](int index) { 607 int operator[](int index) {
547 return _getIndexed(index); 608 return _getIndexed(index);
548 } 609 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 return _BYTES_PER_ELEMENT; 642 return _BYTES_PER_ELEMENT;
582 } 643 }
583 644
584 int lengthInBytes() { 645 int lengthInBytes() {
585 return _length() * _BYTES_PER_ELEMENT; 646 return _length() * _BYTES_PER_ELEMENT;
586 } 647 }
587 648
588 static const int _BYTES_PER_ELEMENT = 2; 649 static const int _BYTES_PER_ELEMENT = 2;
589 650
590 static _Uint16Array _new(int length) native "Uint16Array_new"; 651 static _Uint16Array _new(int length) native "Uint16Array_new";
652 static _Uint16Array _newTransferrable(int length) native
653 "Uint16Array_newTransferrable";
591 654
592 int _getIndexed(int index) native "Uint16Array_getIndexed"; 655 int _getIndexed(int index) native "Uint16Array_getIndexed";
593 int _setIndexed(int index, int value) native "Uint16Array_setIndexed"; 656 int _setIndexed(int index, int value) native "Uint16Array_setIndexed";
594 } 657 }
595 658
596 659
597 class _Int32Array extends _ByteArrayBase implements Int32List { 660 class _Int32Array extends _ByteArrayBase implements Int32List {
598 factory _Int32Array(int length) { 661 factory _Int32Array(int length) {
599 return _new(length); 662 return _new(length);
600 } 663 }
601 664
665 factory _Int32Array.transferrable(int length) {
666 return _newTransferrable(length);
667 }
668
602 factory _Int32Array.view(ByteArray array, [int start = 0, int length]) { 669 factory _Int32Array.view(ByteArray array, [int start = 0, int length]) {
603 if (length == null) { 670 if (length == null) {
604 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 671 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
605 } 672 }
606 return new _Int32ArrayView(array, start, length); 673 return new _Int32ArrayView(array, start, length);
607 } 674 }
608 675
609 int operator[](int index) { 676 int operator[](int index) {
610 return _getIndexed(index); 677 return _getIndexed(index);
611 } 678 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 return _BYTES_PER_ELEMENT; 711 return _BYTES_PER_ELEMENT;
645 } 712 }
646 713
647 int lengthInBytes() { 714 int lengthInBytes() {
648 return _length() * _BYTES_PER_ELEMENT; 715 return _length() * _BYTES_PER_ELEMENT;
649 } 716 }
650 717
651 static const int _BYTES_PER_ELEMENT = 4; 718 static const int _BYTES_PER_ELEMENT = 4;
652 719
653 static _Int32Array _new(int length) native "Int32Array_new"; 720 static _Int32Array _new(int length) native "Int32Array_new";
721 static _Int32Array _newTransferrable(int length) native
722 "Int32Array_newTransferrable";
654 723
655 int _getIndexed(int index) native "Int32Array_getIndexed"; 724 int _getIndexed(int index) native "Int32Array_getIndexed";
656 int _setIndexed(int index, int value) native "Int32Array_setIndexed"; 725 int _setIndexed(int index, int value) native "Int32Array_setIndexed";
657 } 726 }
658 727
659 728
660 class _Uint32Array extends _ByteArrayBase implements Uint32List { 729 class _Uint32Array extends _ByteArrayBase implements Uint32List {
661 factory _Uint32Array(int length) { 730 factory _Uint32Array(int length) {
662 return _new(length); 731 return _new(length);
663 } 732 }
664 733
734 factory _Uint32Array.transferrable(int length) {
735 return _newTransferrable(length);
736 }
737
665 factory _Uint32Array.view(ByteArray array, [int start = 0, int length]) { 738 factory _Uint32Array.view(ByteArray array, [int start = 0, int length]) {
666 if (length == null) { 739 if (length == null) {
667 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 740 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
668 } 741 }
669 return new _Uint32ArrayView(array, start, length); 742 return new _Uint32ArrayView(array, start, length);
670 } 743 }
671 744
672 int operator[](int index) { 745 int operator[](int index) {
673 return _getIndexed(index); 746 return _getIndexed(index);
674 } 747 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 return _BYTES_PER_ELEMENT; 780 return _BYTES_PER_ELEMENT;
708 } 781 }
709 782
710 int lengthInBytes() { 783 int lengthInBytes() {
711 return _length() * _BYTES_PER_ELEMENT; 784 return _length() * _BYTES_PER_ELEMENT;
712 } 785 }
713 786
714 static const int _BYTES_PER_ELEMENT = 4; 787 static const int _BYTES_PER_ELEMENT = 4;
715 788
716 static _Uint32Array _new(int length) native "Uint32Array_new"; 789 static _Uint32Array _new(int length) native "Uint32Array_new";
790 static _Uint32Array _newTransferrable(int length) native
791 "Uint32Array_newTransferrable";
717 792
718 int _getIndexed(int index) native "Uint32Array_getIndexed"; 793 int _getIndexed(int index) native "Uint32Array_getIndexed";
719 int _setIndexed(int index, int value) native "Uint32Array_setIndexed"; 794 int _setIndexed(int index, int value) native "Uint32Array_setIndexed";
720 } 795 }
721 796
722 797
723 class _Int64Array extends _ByteArrayBase implements Int64List { 798 class _Int64Array extends _ByteArrayBase implements Int64List {
724 factory _Int64Array(int length) { 799 factory _Int64Array(int length) {
725 return _new(length); 800 return _new(length);
726 } 801 }
727 802
803 factory _Int64Array.transferrable(int length) {
804 return _newTransferrable(length);
805 }
806
728 factory _Int64Array.view(ByteArray array, [int start = 0, int length]) { 807 factory _Int64Array.view(ByteArray array, [int start = 0, int length]) {
729 if (length == null) { 808 if (length == null) {
730 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 809 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
731 } 810 }
732 return new _Int64ArrayView(array, start, length); 811 return new _Int64ArrayView(array, start, length);
733 } 812 }
734 813
735 int operator[](int index) { 814 int operator[](int index) {
736 return _getIndexed(index); 815 return _getIndexed(index);
737 } 816 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 return _BYTES_PER_ELEMENT; 849 return _BYTES_PER_ELEMENT;
771 } 850 }
772 851
773 int lengthInBytes() { 852 int lengthInBytes() {
774 return _length() * _BYTES_PER_ELEMENT; 853 return _length() * _BYTES_PER_ELEMENT;
775 } 854 }
776 855
777 static const int _BYTES_PER_ELEMENT = 8; 856 static const int _BYTES_PER_ELEMENT = 8;
778 857
779 static _Int64Array _new(int length) native "Int64Array_new"; 858 static _Int64Array _new(int length) native "Int64Array_new";
859 static _Int64Array _newTransferrable(int length) native
860 "Int64Array_newTransferrable";
780 861
781 int _getIndexed(int index) native "Int64Array_getIndexed"; 862 int _getIndexed(int index) native "Int64Array_getIndexed";
782 int _setIndexed(int index, int value) native "Int64Array_setIndexed"; 863 int _setIndexed(int index, int value) native "Int64Array_setIndexed";
783 } 864 }
784 865
785 866
786 class _Uint64Array extends _ByteArrayBase implements Uint64List { 867 class _Uint64Array extends _ByteArrayBase implements Uint64List {
787 factory _Uint64Array(int length) { 868 factory _Uint64Array(int length) {
788 return _new(length); 869 return _new(length);
789 } 870 }
790 871
872 factory _Uint64Array.transferrable(int length) {
873 return _newTransferrable(length);
874 }
875
791 factory _Uint64Array.view(ByteArray array, [int start = 0, int length]) { 876 factory _Uint64Array.view(ByteArray array, [int start = 0, int length]) {
792 if (length == null) { 877 if (length == null) {
793 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 878 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
794 } 879 }
795 return new _Uint64ArrayView(array, start, length); 880 return new _Uint64ArrayView(array, start, length);
796 } 881 }
797 882
798 int operator[](int index) { 883 int operator[](int index) {
799 return _getIndexed(index); 884 return _getIndexed(index);
800 } 885 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 return _BYTES_PER_ELEMENT; 918 return _BYTES_PER_ELEMENT;
834 } 919 }
835 920
836 int lengthInBytes() { 921 int lengthInBytes() {
837 return _length() * _BYTES_PER_ELEMENT; 922 return _length() * _BYTES_PER_ELEMENT;
838 } 923 }
839 924
840 static const int _BYTES_PER_ELEMENT = 8; 925 static const int _BYTES_PER_ELEMENT = 8;
841 926
842 static _Uint64Array _new(int length) native "Uint64Array_new"; 927 static _Uint64Array _new(int length) native "Uint64Array_new";
928 static _Uint64Array _newTransferrable(int length) native
929 "Uint64Array_newTransferrable";
843 930
844 int _getIndexed(int index) native "Uint64Array_getIndexed"; 931 int _getIndexed(int index) native "Uint64Array_getIndexed";
845 int _setIndexed(int index, int value) native "Uint64Array_setIndexed"; 932 int _setIndexed(int index, int value) native "Uint64Array_setIndexed";
846 } 933 }
847 934
848 935
849 class _Float32Array extends _ByteArrayBase implements Float32List { 936 class _Float32Array extends _ByteArrayBase implements Float32List {
850 factory _Float32Array(int length) { 937 factory _Float32Array(int length) {
851 return _new(length); 938 return _new(length);
852 } 939 }
853 940
941 factory _Float32Array.transferrable(int length) {
942 return _newTransferrable(length);
943 }
944
854 factory _Float32Array.view(ByteArray array, [int start = 0, int length]) { 945 factory _Float32Array.view(ByteArray array, [int start = 0, int length]) {
855 if (length == null) { 946 if (length == null) {
856 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 947 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
857 } 948 }
858 return new _Float32ArrayView(array, start, length); 949 return new _Float32ArrayView(array, start, length);
859 } 950 }
860 951
861 double operator[](int index) { 952 double operator[](int index) {
862 return _getIndexed(index); 953 return _getIndexed(index);
863 } 954 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 return _BYTES_PER_ELEMENT; 987 return _BYTES_PER_ELEMENT;
897 } 988 }
898 989
899 int lengthInBytes() { 990 int lengthInBytes() {
900 return _length() * _BYTES_PER_ELEMENT; 991 return _length() * _BYTES_PER_ELEMENT;
901 } 992 }
902 993
903 static const int _BYTES_PER_ELEMENT = 4; 994 static const int _BYTES_PER_ELEMENT = 4;
904 995
905 static _Float32Array _new(int length) native "Float32Array_new"; 996 static _Float32Array _new(int length) native "Float32Array_new";
997 static _Float32Array _newTransferrable(int length) native
998 "Float32Array_newTransferrable";
906 999
907 double _getIndexed(int index) native "Float32Array_getIndexed"; 1000 double _getIndexed(int index) native "Float32Array_getIndexed";
908 int _setIndexed(int index, double value) native "Float32Array_setIndexed"; 1001 int _setIndexed(int index, double value) native "Float32Array_setIndexed";
909 } 1002 }
910 1003
911 1004
912 class _Float64Array extends _ByteArrayBase implements Float64List { 1005 class _Float64Array extends _ByteArrayBase implements Float64List {
913 factory _Float64Array(int length) { 1006 factory _Float64Array(int length) {
914 return _new(length); 1007 return _new(length);
915 } 1008 }
916 1009
1010 factory _Float64Array.transferrable(int length) {
1011 return _newTransferrable(length);
1012 }
1013
917 factory _Float64Array.view(ByteArray array, [int start = 0, int length]) { 1014 factory _Float64Array.view(ByteArray array, [int start = 0, int length]) {
918 if (length == null) { 1015 if (length == null) {
919 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 1016 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
920 } 1017 }
921 return new _Float64ArrayView(array, start, length); 1018 return new _Float64ArrayView(array, start, length);
922 } 1019 }
923 1020
924 double operator[](int index) { 1021 double operator[](int index) {
925 return _getIndexed(index); 1022 return _getIndexed(index);
926 } 1023 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 return _BYTES_PER_ELEMENT; 1056 return _BYTES_PER_ELEMENT;
960 } 1057 }
961 1058
962 int lengthInBytes() { 1059 int lengthInBytes() {
963 return _length() * _BYTES_PER_ELEMENT; 1060 return _length() * _BYTES_PER_ELEMENT;
964 } 1061 }
965 1062
966 static const int _BYTES_PER_ELEMENT = 8; 1063 static const int _BYTES_PER_ELEMENT = 8;
967 1064
968 static _Float64Array _new(int length) native "Float64Array_new"; 1065 static _Float64Array _new(int length) native "Float64Array_new";
1066 static _Float64Array _newTransferrable(int length) native
1067 "Float64Array_newTransferrable";
969 1068
970 double _getIndexed(int index) native "Float64Array_getIndexed"; 1069 double _getIndexed(int index) native "Float64Array_getIndexed";
971 int _setIndexed(int index, double value) native "Float64Array_setIndexed"; 1070 int _setIndexed(int index, double value) native "Float64Array_setIndexed";
972 } 1071 }
973 1072
974 1073
975 class _ExternalInt8Array extends _ByteArrayBase implements Int8List { 1074 class _ExternalInt8Array extends _ByteArrayBase implements Int8List {
976 int operator[](int index) { 1075 int operator[](int index) {
977 return _getIndexed(index); 1076 return _getIndexed(index);
978 } 1077 }
(...skipping 1440 matching lines...) Expand 10 before | Expand all | Expand 10 after
2419 } 2518 }
2420 _rangeCheck(this.length, start, length); 2519 _rangeCheck(this.length, start, length);
2421 return _array.subByteArray(_offset + start, length); 2520 return _array.subByteArray(_offset + start, length);
2422 } 2521 }
2423 2522
2424 static const int _BYTES_PER_ELEMENT = 8; 2523 static const int _BYTES_PER_ELEMENT = 8;
2425 final ByteArray _array; 2524 final ByteArray _array;
2426 final int _offset; 2525 final int _offset;
2427 final int _length; 2526 final int _length;
2428 } 2527 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698