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 917fcf49b6fe9ac53dc051d4163f8dc22beec2c1..57b35cfae4ce9cf8ae1e9175ffbac7165d61a1f1 100644 |
--- a/pkg/js_ast/lib/src/printer.dart |
+++ b/pkg/js_ast/lib/src/printer.dart |
@@ -1156,9 +1156,13 @@ class OrderedSet<T> { |
// separate pass because JS vars are lifted to the top of the function. |
class VarCollector extends BaseVisitor { |
bool nested; |
+ bool enableRenaming = true; |
final OrderedSet<String> vars; |
final OrderedSet<String> params; |
+ static final String disableVariableMinificationPattern = "::norenaming::"; |
+ static final String enableVariableMinificationPattern = "::dorenaming::"; |
+ |
VarCollector() : nested = false, |
vars = new OrderedSet<String>(), |
params = new OrderedSet<String>(); |
@@ -1195,8 +1199,16 @@ class VarCollector extends BaseVisitor { |
void visitThis(This node) {} |
+ void visitComment(Comment node) { |
+ if (node.comment.contains(disableVariableMinificationPattern)) { |
+ enableRenaming = false; |
+ } else if (node.comment.contains(enableVariableMinificationPattern)) { |
+ enableRenaming = true; |
+ } |
+ } |
+ |
void visitVariableDeclaration(VariableDeclaration decl) { |
- if (decl.allowRename) vars.add(decl.name); |
+ if (enableRenaming && decl.allowRename) vars.add(decl.name); |
} |
} |