Chromium Code Reviews| Index: lib/compiler/implementation/lib/core_patch.dart |
| diff --git a/lib/compiler/implementation/lib/core_patch.dart b/lib/compiler/implementation/lib/core_patch.dart |
| index f47c27b840561e48ef14845cb5d63c9289a49fa5..a4844096bb9ae5b01f92ec2cca66b35259697b3e 100644 |
| --- a/lib/compiler/implementation/lib/core_patch.dart |
| +++ b/lib/compiler/implementation/lib/core_patch.dart |
| @@ -83,3 +83,54 @@ patch class NoSuchMethodError { |
| return Primitives.objectToString(object); |
| } |
| } |
| + |
| + |
| +// Patch for String implementation. |
| +// TODO(ager): Split out into date_patch.dart and allow #source |
|
ahe
2012/10/08 14:06:11
How is this related to date?
Lasse Reichstein Nielsen
2012/10/09 11:53:22
Another cut-n-paste propagation of the original ty
|
| +// in patch files? |
| +patch class String { |
| + patch factory String.fromCharCodes(List<int> charCodes) { |
| + checkNull(charCodes); |
| + if (!isJsArray(charCodes)) { |
| + if (charCodes is !List) throw new IllegalArgumentException(charCodes); |
| + charCodes = new List.from(charCodes); |
| + } |
| + return Primitives.stringFromCharCodes(charCodes); |
| + } |
| +} |
| + |
| +patch class Strings { |
| + patch static String join(List<String> strings, String separator) { |
| + checkNull(strings); |
| + checkNull(separator); |
| + if (separator is !String) throw new IllegalArgumentException(separator); |
| + return stringJoinUnchecked(_toJsStringArray(strings), separator); |
| + } |
| + |
| + patch static String concatAll(List<String> strings) { |
| + return stringJoinUnchecked(_toJsStringArray(strings), ""); |
| + } |
| + |
| + static List _toJsStringArray(List<String> strings) { |
| + checkNull(strings); |
| + var array; |
| + final length = strings.length; |
| + if (isJsArray(strings)) { |
| + array = strings; |
| + for (int i = 0; i < length; i++) { |
| + final string = strings[i]; |
| + checkNull(string); |
| + if (string is !String) throw new IllegalArgumentException(string); |
| + } |
| + } else { |
| + array = new List(length); |
| + for (int i = 0; i < length; i++) { |
| + final string = strings[i]; |
| + checkNull(string); |
| + if (string is !String) throw new IllegalArgumentException(string); |
| + array[i] = string; |
| + } |
| + } |
| + return array; |
| + } |
| +} |