| Index: pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| index 65f324a8ba4f63c6f4176187e1f10a29838bc4ec..a5ee168dc10c523d9111e150a1637c0bff795782 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| @@ -818,18 +818,26 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| Token last = parts.last;
|
| Quote quote = analyzeQuote(first.lexeme);
|
| List<Expression> expressions = <Expression>[];
|
| - expressions
|
| + // Contains more than just \' or \".
|
| + if (first.lexeme.length > 1) {
|
| + expressions
|
| .add(new StringLiteral(unescapeFirstStringPart(first.lexeme, quote)));
|
| + }
|
| for (int i = 1; i < parts.length - 1; i++) {
|
| var part = parts[i];
|
| if (part is Token) {
|
| - expressions.add(new StringLiteral(unescape(part.lexeme, quote)));
|
| + if (part.lexeme.length != 0) {
|
| + expressions.add(new StringLiteral(unescape(part.lexeme, quote)));
|
| + }
|
| } else {
|
| expressions.add(toValue(part));
|
| }
|
| }
|
| - expressions
|
| + // Contains more than just \' or \".
|
| + if (last.lexeme.length > 1) {
|
| + expressions
|
| .add(new StringLiteral(unescapeLastStringPart(last.lexeme, quote)));
|
| + }
|
| push(new StringConcatenation(expressions)
|
| ..fileOffset = endToken.charOffset);
|
| }
|
|
|