| Index: tool/input_sdk/patch/core_patch.dart
|
| diff --git a/tool/input_sdk/patch/core_patch.dart b/tool/input_sdk/patch/core_patch.dart
|
| index da771fe5ac93784d8bcfd27193fd893af0e7cb1e..e3f51f51302051fd5b76cce87167b8d043e75387 100644
|
| --- a/tool/input_sdk/patch/core_patch.dart
|
| +++ b/tool/input_sdk/patch/core_patch.dart
|
| @@ -375,7 +375,7 @@ class RegExp {
|
| // Patch for 'identical' function.
|
| @patch
|
| bool identical(Object a, Object b) {
|
| - return Primitives.identicalImplementation(a, b);
|
| + return JS('bool', '(# == null ? # == null : # === #)', a, b, a, b);
|
| }
|
|
|
| @patch
|
| @@ -398,8 +398,14 @@ class StringBuffer {
|
| _writeString(new String.fromCharCode(charCode));
|
| }
|
|
|
| - void _writeString(str) {
|
| - _contents = Primitives.stringConcatUnchecked(_contents, str);
|
| + @patch
|
| + void writeAll(Iterable objects, [String separator = ""]) {
|
| + _contents = _writeAll(_contents, objects, separator);
|
| + }
|
| +
|
| + @patch
|
| + void writeln([Object obj = ""]) {
|
| + _writeString('$obj\n');
|
| }
|
|
|
| @patch
|
| @@ -409,6 +415,31 @@ class StringBuffer {
|
|
|
| @patch
|
| String toString() => Primitives.flattenString(_contents);
|
| +
|
| + void _writeString(str) {
|
| + _contents = Primitives.stringConcatUnchecked(_contents, str);
|
| + }
|
| +
|
| + static String _writeAll(String string, Iterable objects, String separator) {
|
| + Iterator iterator = objects.iterator;
|
| + if (!iterator.moveNext()) return string;
|
| + if (separator.isEmpty) {
|
| + do {
|
| + string = _writeOne(string, iterator.current);
|
| + } while (iterator.moveNext());
|
| + } else {
|
| + string = _writeOne(string, iterator.current);
|
| + while (iterator.moveNext()) {
|
| + string = _writeOne(string, separator);
|
| + string = _writeOne(string, iterator.current);
|
| + }
|
| + }
|
| + return string;
|
| + }
|
| +
|
| + static String _writeOne(String string, Object obj) {
|
| + return Primitives.stringConcatUnchecked(string, '$obj');
|
| + }
|
| }
|
|
|
| @patch
|
|
|