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 String { | 5 patch class String { |
6 /* patch */ factory String.fromCharCodes(Iterable<int> charCodes, | 6 /* patch */ factory String.fromCharCodes(Iterable<int> charCodes, |
7 [int start = 0, int end]) { | 7 [int start = 0, int end]) { |
8 return _StringBase.createFromCharCodes(charCodes, start, end); | 8 return _StringBase.createFromCharCodes(charCodes, start, end); |
9 } | 9 } |
10 | 10 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 bool isOneByteString = false; | 62 bool isOneByteString = false; |
63 if ((ccid != ClassID.cidArray) && | 63 if ((ccid != ClassID.cidArray) && |
64 (ccid != ClassID.cidGrowableObjectArray) && | 64 (ccid != ClassID.cidGrowableObjectArray) && |
65 (ccid != ClassID.cidImmutableArray)) { | 65 (ccid != ClassID.cidImmutableArray)) { |
66 if (charCodes is Uint8List) { | 66 if (charCodes is Uint8List) { |
67 isOneByteString = true; | 67 isOneByteString = true; |
68 } else { | 68 } else { |
69 // Treat charCodes as Iterable. | 69 // Treat charCodes as Iterable. |
70 if (start < 0) throw new RangeError.range(start, 0, charCodes.length); | 70 if (start < 0) throw new RangeError.range(start, 0, charCodes.length); |
71 if (end != null && end < start) { | 71 if (end != null && end < start) { |
72 throw new RangeError.value(end, start, charCodes.length); | 72 throw new RangeError.range(end, start, charCodes.length); |
73 } | 73 } |
74 var it = charCodes.iterator; | 74 var it = charCodes.iterator; |
75 for (int i = 0; i < start; i++) { | 75 for (int i = 0; i < start; i++) { |
76 if (!it.moveNext()) { | 76 if (!it.moveNext()) { |
77 throw new RangeError.range(start, 0, i); | 77 throw new RangeError.range(start, 0, i); |
78 } | 78 } |
79 } | 79 } |
80 int bits = 0; // Bitwise or of all char codes in list. | 80 int bits = 0; // Bitwise or of all char codes in list. |
81 var list = []; | 81 var list = []; |
82 if (end == null) { | 82 if (end == null) { |
(...skipping 984 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1067 class _CodeUnits extends Object with ListMixin<int>, | 1067 class _CodeUnits extends Object with ListMixin<int>, |
1068 UnmodifiableListMixin<int> { | 1068 UnmodifiableListMixin<int> { |
1069 /** The string that this is the code units of. */ | 1069 /** The string that this is the code units of. */ |
1070 String _string; | 1070 String _string; |
1071 | 1071 |
1072 _CodeUnits(this._string); | 1072 _CodeUnits(this._string); |
1073 | 1073 |
1074 int get length => _string.length; | 1074 int get length => _string.length; |
1075 int operator[](int i) => _string.codeUnitAt(i); | 1075 int operator[](int i) => _string.codeUnitAt(i); |
1076 } | 1076 } |
OLD | NEW |