Index: pkg/js_ast/lib/src/printer.dart |
diff --git a/pkg/js_ast/lib/src/printer.dart b/pkg/js_ast/lib/src/printer.dart |
index 57b35cfae4ce9cf8ae1e9175ffbac7165d61a1f1..e2df74393d4b17319893b3d8864f99840df24990 100644 |
--- a/pkg/js_ast/lib/src/printer.dart |
+++ b/pkg/js_ast/lib/src/printer.dart |
@@ -952,7 +952,28 @@ class Printer implements NodeVisitor { |
} |
@override |
- void visitLiteralBool(LiteralBool node) { |
+ visitTokenExpression(TokenExpression node) { |
+ // Continue printing with the expression value. |
+ node.value.accept(this); |
sra1
2015/05/27 19:38:51
Either the precedence needs to be fixed or this co
herhut
2015/06/09 11:10:00
Done.
|
+ } |
+ |
+ @override |
+ visitTokenNumber(TokenNumber node) { |
+ String value = "${node.value}"; |
+ int charCode = value.codeUnitAt(0); |
+ if (charCode == charCodes.$MINUS && lastCharCode == charCodes.$MINUS) { |
+ out(" "); |
sra1
2015/05/27 20:30:15
I'd like to see a test that covers this case.
herhut
2015/06/09 11:10:00
I have factored out the logic from visitLiteralNum
|
+ } |
+ out(value); |
+ } |
+ |
+ @override |
+ visitTokenString(TokenString node) { |
+ out(node.value); |
+ } |
+ |
+ @override |
+ visitLiteralBool(LiteralBool node) { |
out(node.value ? "true" : "false"); |
} |
@@ -962,7 +983,12 @@ class Printer implements NodeVisitor { |
} |
@override |
- void visitLiteralNumber(LiteralNumber node) { |
+ visitStringConcatenation(StringConcatenation node) { |
+ node.visitChildren(this); |
+ } |
+ |
+ @override |
+ visitLiteralNumber(LiteralNumber node) { |
int charCode = node.value.codeUnitAt(0); |
if (charCode == charCodes.$MINUS && lastCharCode == charCodes.$MINUS) { |
out(" ", isWhitespace: true); |
@@ -1013,7 +1039,6 @@ class Printer implements NodeVisitor { |
out("{"); |
indentMore(); |
for (int i = 0; i < properties.length; i++) { |
- Expression value = properties[i].value; |
if (i != 0) { |
out(","); |
if (node.isOneLiner) spaceOut(); |