| 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
|
| +// 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;
|
| + }
|
| +}
|
|
|