Chromium Code Reviews| Index: runtime/bin/vmservice/observatory/lib/src/elements/observatory_element.dart |
| diff --git a/runtime/bin/vmservice/observatory/lib/src/elements/observatory_element.dart b/runtime/bin/vmservice/observatory/lib/src/elements/observatory_element.dart |
| index 4dccf987b54d039ec03ae8d79fb81c3e221dd8fc..1141def5ee66e662aae0a149a9601f220a167931 100644 |
| --- a/runtime/bin/vmservice/observatory/lib/src/elements/observatory_element.dart |
| +++ b/runtime/bin/vmservice/observatory/lib/src/elements/observatory_element.dart |
| @@ -111,4 +111,28 @@ class ObservatoryElement extends PolymerElement { |
| } |
| int parseInt(String value) => int.parse(value); |
| + |
| + String asStringLiteral(String value, [bool wasTruncated=false]) { |
| + var result = new List(); |
| + result.add("'".codeUnitAt(0)); |
|
turnidge
2014/09/09 16:12:31
I like the change to single quotes.
|
| + for (int codeUnit in value.codeUnits) { |
| + if (codeUnit == '\n'.codeUnitAt(0)) result.addAll('\\n'.codeUnits); |
| + else if (codeUnit == '\r'.codeUnitAt(0)) result.addAll('\\r'.codeUnits); |
| + else if (codeUnit == '\f'.codeUnitAt(0)) result.addAll('\\f'.codeUnits); |
| + else if (codeUnit == '\b'.codeUnitAt(0)) result.addAll('\\b'.codeUnits); |
| + else if (codeUnit == '\t'.codeUnitAt(0)) result.addAll('\\t'.codeUnits); |
| + else if (codeUnit == '\v'.codeUnitAt(0)) result.addAll('\\v'.codeUnits); |
| + else if (codeUnit == '\$'.codeUnitAt(0)) result.addAll('\\\$'.codeUnits); |
| + else if (codeUnit == '\\'.codeUnitAt(0)) result.addAll('\\\\'.codeUnits); |
| + else if (codeUnit == "'".codeUnitAt(0)) result.addAll("'".codeUnits); |
| + else if (codeUnit < 32) result.addAll("\\u$codeUnit".codeUnits); |
| + else result.add(codeUnit); |
|
turnidge
2014/09/09 16:12:31
A switch statement might be more idiomatic here.
|
| + } |
| + if (wasTruncated) { |
| + result.addAll("...".codeUnits); |
| + } else { |
| + result.add("'".codeUnitAt(0)); |
| + } |
| + return new String.fromCharCodes(result); |
| + } |
| } |