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

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

Issue 10990055: Hide VM-only coreimpl List implementation types. These should not be (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: x64 as well, sigh. Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * [StringBase] contains common methods used by concrete String implementations, 6 * [StringBase] contains common methods used by concrete String implementations,
7 * e.g., OneByteString. 7 * e.g., OneByteString.
8 */ 8 */
9 class StringBase { 9 class StringBase {
10 10
11 factory StringBase._uninstantiable() { 11 factory StringBase._uninstantiable() {
12 throw const UnsupportedOperationException( 12 throw const UnsupportedOperationException(
13 "StringBase can't be instaniated"); 13 "StringBase can't be instaniated");
14 } 14 }
15 15
16 int hashCode() native "String_hashCode"; 16 int hashCode() native "String_hashCode";
17 17
18 /** 18 /**
19 * Create the most efficient string representation for specified 19 * Create the most efficient string representation for specified
20 * [codePoints]. 20 * [codePoints].
21 */ 21 */
22 static String createFromCharCodes(List<int> charCodes) { 22 static String createFromCharCodes(List<int> charCodes) {
23 ObjectArray objectArray; 23 _ObjectArray objectArray;
24 if (charCodes is ObjectArray) { 24 if (charCodes is _ObjectArray) {
25 objectArray = charCodes; 25 objectArray = charCodes;
26 } else { 26 } else {
27 int len = charCodes.length; 27 int len = charCodes.length;
28 objectArray = new ObjectArray(len); 28 objectArray = new _ObjectArray(len);
29 for (int i = 0; i < len; i++) { 29 for (int i = 0; i < len; i++) {
30 objectArray[i] = charCodes[i]; 30 objectArray[i] = charCodes[i];
31 } 31 }
32 } 32 }
33 return _createFromCodePoints(objectArray); 33 return _createFromCodePoints(objectArray);
34 } 34 }
35 35
36 static String _createFromCodePoints(ObjectArray<int> codePoints) 36 static String _createFromCodePoints(_ObjectArray<int> codePoints)
37 native "StringBase_createFromCodePoints"; 37 native "StringBase_createFromCodePoints";
38 38
39 String operator [](int index) native "String_charAt"; 39 String operator [](int index) native "String_charAt";
40 40
41 int charCodeAt(int index) native "String_charCodeAt"; 41 int charCodeAt(int index) native "String_charCodeAt";
42 42
43 int get length native "String_getLength"; 43 int get length native "String_getLength";
44 44
45 bool isEmpty() { 45 bool isEmpty() {
46 return this.length === 0; 46 return this.length === 0;
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 225 }
226 return buffer.add(this.substring(startIndex)).toString(); 226 return buffer.add(this.substring(startIndex)).toString();
227 } 227 }
228 228
229 /** 229 /**
230 * Convert all objects in [values] to strings and concat them 230 * Convert all objects in [values] to strings and concat them
231 * into a result string. 231 * into a result string.
232 */ 232 */
233 static String _interpolate(List values) { 233 static String _interpolate(List values) {
234 int numValues = values.length; 234 int numValues = values.length;
235 var stringList = new ObjectArray(numValues); 235 var stringList = new _ObjectArray(numValues);
236 for (int i = 0; i < numValues; i++) { 236 for (int i = 0; i < numValues; i++) {
237 stringList[i] = values[i].toString(); 237 stringList[i] = values[i].toString();
238 } 238 }
239 return _concatAll(stringList); 239 return _concatAll(stringList);
240 } 240 }
241 241
242 Iterable<Match> allMatches(String str) { 242 Iterable<Match> allMatches(String str) {
243 List<Match> result = new List<Match>(); 243 List<Match> result = new List<Match>();
244 int length = str.length; 244 int length = str.length;
245 int patternLength = this.length; 245 int patternLength = this.length;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 int j = 1; 329 int j = 1;
330 for (int i = 1; i < length; i++) { 330 for (int i = 1; i < length; i++) {
331 stringsList[j++] = separator; 331 stringsList[j++] = separator;
332 stringsList[j++] = strings[i]; 332 stringsList[j++] = strings[i];
333 } 333 }
334 } 334 }
335 return concatAll(stringsList); 335 return concatAll(stringsList);
336 } 336 }
337 337
338 static String concatAll(List<String> strings) { 338 static String concatAll(List<String> strings) {
339 ObjectArray stringsArray; 339 _ObjectArray stringsArray;
340 if (strings is ObjectArray) { 340 if (strings is _ObjectArray) {
341 stringsArray = strings; 341 stringsArray = strings;
342 } else { 342 } else {
343 int len = strings.length; 343 int len = strings.length;
344 stringsArray = new ObjectArray(len); 344 stringsArray = new _ObjectArray(len);
345 for (int i = 0; i < len; i++) { 345 for (int i = 0; i < len; i++) {
346 stringsArray[i] = strings[i]; 346 stringsArray[i] = strings[i];
347 } 347 }
348 } 348 }
349 return _concatAll(stringsArray); 349 return _concatAll(stringsArray);
350 } 350 }
351 351
352 static String _concatAll(ObjectArray<String> strings) 352 static String _concatAll(_ObjectArray<String> strings)
353 native "Strings_concatAll"; 353 native "Strings_concatAll";
354 } 354 }
355 355
356 356
357 class OneByteString extends StringBase implements String { 357 class OneByteString extends StringBase implements String {
358 factory OneByteString._uninstantiable() { 358 factory OneByteString._uninstantiable() {
359 throw const UnsupportedOperationException( 359 throw const UnsupportedOperationException(
360 "OneByteString can only be allocated by the VM"); 360 "OneByteString can only be allocated by the VM");
361 } 361 }
362 362
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 for (int g in groups) { 479 for (int g in groups) {
480 result.add(group(g)); 480 result.add(group(g));
481 } 481 }
482 return result; 482 return result;
483 } 483 }
484 484
485 final int _start; 485 final int _start;
486 final String str; 486 final String str;
487 final String pattern; 487 final String pattern;
488 } 488 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698