| 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 564a467afb0aa339038de3d4b17e04e97be60301..d4b09377f16e916c9755e5e2019bb694c7982f05 100644
|
| --- a/pkg/js_ast/lib/src/printer.dart
|
| +++ b/pkg/js_ast/lib/src/printer.dart
|
| @@ -4,7 +4,6 @@
|
|
|
| part of js_ast;
|
|
|
| -
|
| typedef String Renamer(Name);
|
|
|
| class JavaScriptPrintingOptions {
|
| @@ -15,19 +14,20 @@ class JavaScriptPrintingOptions {
|
|
|
| JavaScriptPrintingOptions(
|
| {this.shouldCompressOutput: false,
|
| - this.minifyLocalVariables: false,
|
| - this.preferSemicolonToNewlineInMinifiedOutput: false,
|
| - this.renamerForNames: identityRenamer});
|
| + this.minifyLocalVariables: false,
|
| + this.preferSemicolonToNewlineInMinifiedOutput: false,
|
| + this.renamerForNames: identityRenamer});
|
|
|
| static String identityRenamer(Name name) => name.name;
|
| }
|
|
|
| -
|
| /// An environment in which JavaScript printing is done. Provides emitting of
|
| /// text and pre- and post-visit callbacks.
|
| abstract class JavaScriptPrintingContext {
|
| /// Signals an error. This should happen only for serious internal errors.
|
| - void error(String message) { throw message; }
|
| + void error(String message) {
|
| + throw message;
|
| + }
|
|
|
| /// Adds [string] to the output.
|
| void emit(String string);
|
| @@ -46,10 +46,8 @@ abstract class JavaScriptPrintingContext {
|
| /// [Fun] nodes and is `null` otherwise.
|
| ///
|
| /// [enterNode] is called in post-traversal order.
|
| - void exitNode(Node node,
|
| - int startPosition,
|
| - int endPosition,
|
| - int closingPosition) {}
|
| + void exitNode(
|
| + Node node, int startPosition, int endPosition, int closingPosition) {}
|
| }
|
|
|
| /// A simple implementation of [JavaScriptPrintingContext] suitable for tests.
|
| @@ -63,7 +61,6 @@ class SimpleJavaScriptPrintingContext extends JavaScriptPrintingContext {
|
| String getText() => buffer.toString();
|
| }
|
|
|
| -
|
| class Printer implements NodeVisitor {
|
| final JavaScriptPrintingOptions options;
|
| final JavaScriptPrintingContext context;
|
| @@ -85,22 +82,21 @@ class Printer implements NodeVisitor {
|
| static final identifierCharacterRegExp = new RegExp(r'^[a-zA-Z_0-9$]');
|
| static final expressionContinuationRegExp = new RegExp(r'^[-+([]');
|
|
|
| - Printer(JavaScriptPrintingOptions options,
|
| - JavaScriptPrintingContext context)
|
| + Printer(JavaScriptPrintingOptions options, JavaScriptPrintingContext context)
|
| : options = options,
|
| context = context,
|
| shouldCompressOutput = options.shouldCompressOutput,
|
| danglingElseVisitor = new DanglingElseVisitor(context),
|
| - localNamer = determineRenamer(options.shouldCompressOutput,
|
| - options.minifyLocalVariables);
|
| + localNamer = determineRenamer(
|
| + options.shouldCompressOutput, options.minifyLocalVariables);
|
|
|
| - static LocalNamer determineRenamer(bool shouldCompressOutput,
|
| - bool allowVariableMinification) {
|
| + static LocalNamer determineRenamer(
|
| + bool shouldCompressOutput, bool allowVariableMinification) {
|
| return (shouldCompressOutput && allowVariableMinification)
|
| - ? new MinifyRenamer() : new IdentityNamer();
|
| + ? new MinifyRenamer()
|
| + : new IdentityNamer();
|
| }
|
|
|
| -
|
| // The current indentation string.
|
| String get indentation {
|
| // Lazily add new indentation strings as required.
|
| @@ -236,7 +232,7 @@ class Printer implements NodeVisitor {
|
| }
|
|
|
| void visitCommaSeparated(List<Node> nodes, int hasRequiredType,
|
| - {bool newInForInit, bool newAtStatementBegin}) {
|
| + {bool newInForInit, bool newAtStatementBegin}) {
|
| for (int i = 0; i < nodes.length; i++) {
|
| if (i != 0) {
|
| atStatementBegin = false;
|
| @@ -244,8 +240,7 @@ class Printer implements NodeVisitor {
|
| spaceOut();
|
| }
|
| visitNestedExpression(nodes[i], hasRequiredType,
|
| - newInForInit: newInForInit,
|
| - newAtStatementBegin: newAtStatementBegin);
|
| + newInForInit: newInForInit, newAtStatementBegin: newAtStatementBegin);
|
| }
|
| }
|
|
|
| @@ -325,7 +320,7 @@ class Printer implements NodeVisitor {
|
| void visitExpressionStatement(ExpressionStatement node) {
|
| indent();
|
| visitNestedExpression(node.expression, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: true);
|
| + newInForInit: false, newAtStatementBegin: true);
|
| outSemicolonLn();
|
| }
|
|
|
| @@ -353,7 +348,7 @@ class Printer implements NodeVisitor {
|
| spaceOut();
|
| out("(");
|
| visitNestedExpression(node.condition, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| out(")");
|
| bool thenWasBlock =
|
| blockBody(then, needsSeparation: false, needsNewline: !hasElse);
|
| @@ -371,7 +366,7 @@ class Printer implements NodeVisitor {
|
| endNode(elsePart);
|
| } else {
|
| blockBody(unwrapBlockIfSingleStatement(elsePart),
|
| - needsSeparation: true, needsNewline: true);
|
| + needsSeparation: true, needsNewline: true);
|
| }
|
| }
|
| }
|
| @@ -388,23 +383,23 @@ class Printer implements NodeVisitor {
|
| out("(");
|
| if (loop.init != null) {
|
| visitNestedExpression(loop.init, EXPRESSION,
|
| - newInForInit: true, newAtStatementBegin: false);
|
| + newInForInit: true, newAtStatementBegin: false);
|
| }
|
| out(";");
|
| if (loop.condition != null) {
|
| spaceOut();
|
| visitNestedExpression(loop.condition, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| }
|
| out(";");
|
| if (loop.update != null) {
|
| spaceOut();
|
| visitNestedExpression(loop.update, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| }
|
| out(")");
|
| blockBody(unwrapBlockIfSingleStatement(loop.body),
|
| - needsSeparation: false, needsNewline: true);
|
| + needsSeparation: false, needsNewline: true);
|
| }
|
|
|
| @override
|
| @@ -413,14 +408,14 @@ class Printer implements NodeVisitor {
|
| spaceOut();
|
| out("(");
|
| visitNestedExpression(loop.leftHandSide, EXPRESSION,
|
| - newInForInit: true, newAtStatementBegin: false);
|
| + newInForInit: true, newAtStatementBegin: false);
|
| out(" in");
|
| pendingSpace = true;
|
| visitNestedExpression(loop.object, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| out(")");
|
| blockBody(unwrapBlockIfSingleStatement(loop.body),
|
| - needsSeparation: false, needsNewline: true);
|
| + needsSeparation: false, needsNewline: true);
|
| }
|
|
|
| @override
|
| @@ -429,17 +424,17 @@ class Printer implements NodeVisitor {
|
| spaceOut();
|
| out("(");
|
| visitNestedExpression(loop.condition, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| out(")");
|
| blockBody(unwrapBlockIfSingleStatement(loop.body),
|
| - needsSeparation: false, needsNewline: true);
|
| + needsSeparation: false, needsNewline: true);
|
| }
|
|
|
| @override
|
| void visitDo(Do loop) {
|
| outIndent("do");
|
| if (blockBody(unwrapBlockIfSingleStatement(loop.body),
|
| - needsSeparation: true, needsNewline: false)) {
|
| + needsSeparation: true, needsNewline: false)) {
|
| spaceOut();
|
| } else {
|
| indent();
|
| @@ -448,7 +443,7 @@ class Printer implements NodeVisitor {
|
| spaceOut();
|
| out("(");
|
| visitNestedExpression(loop.condition, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| out(")");
|
| outSemicolonLn();
|
| }
|
| @@ -481,7 +476,7 @@ class Printer implements NodeVisitor {
|
| outIndent("return");
|
| pendingSpace = true;
|
| visitNestedExpression(node.value, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| }
|
| outSemicolonLn();
|
| }
|
| @@ -495,7 +490,7 @@ class Printer implements NodeVisitor {
|
| }
|
| pendingSpace = true;
|
| visitNestedExpression(node.expression, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| outSemicolonLn();
|
| }
|
|
|
| @@ -504,7 +499,7 @@ class Printer implements NodeVisitor {
|
| outIndent("throw");
|
| pendingSpace = true;
|
| visitNestedExpression(node.expression, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| outSemicolonLn();
|
| }
|
|
|
| @@ -531,7 +526,7 @@ class Printer implements NodeVisitor {
|
| spaceOut();
|
| out("(");
|
| visitNestedExpression(node.declaration, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| out(")");
|
| blockBody(node.body, needsSeparation: false, needsNewline: false);
|
| }
|
| @@ -542,7 +537,7 @@ class Printer implements NodeVisitor {
|
| spaceOut();
|
| out("(");
|
| visitNestedExpression(node.key, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| out(")");
|
| spaceOut();
|
| outLn("{");
|
| @@ -557,7 +552,7 @@ class Printer implements NodeVisitor {
|
| outIndent("case");
|
| pendingSpace = true;
|
| visitNestedExpression(node.expression, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| outLn(":");
|
| if (!node.body.statements.isEmpty) {
|
| indentMore();
|
| @@ -598,13 +593,13 @@ class Printer implements NodeVisitor {
|
| out(" ");
|
| // Name must be a [Decl]. Therefore only test for primary expressions.
|
| visitNestedExpression(name, PRIMARY,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| }
|
| localNamer.enterScope(vars);
|
| out("(");
|
| if (fun.params != null) {
|
| visitCommaSeparated(fun.params, PRIMARY,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| }
|
| out(")");
|
| switch (fun.asyncModifier) {
|
| @@ -628,7 +623,6 @@ class Printer implements NodeVisitor {
|
| blockOut(fun.body, shouldIndent: false, needsNewline: false);
|
| localNamer.leaveScope();
|
| return closingPosition;
|
| -
|
| }
|
|
|
| @override
|
| @@ -644,18 +638,19 @@ class Printer implements NodeVisitor {
|
| }
|
|
|
| visitNestedExpression(Expression node, int requiredPrecedence,
|
| - {bool newInForInit, bool newAtStatementBegin}) {
|
| + {bool newInForInit, bool newAtStatementBegin}) {
|
| bool needsParentheses =
|
| // a - (b + c).
|
| (requiredPrecedence != EXPRESSION &&
|
| - node.precedenceLevel < requiredPrecedence) ||
|
| - // for (a = (x in o); ... ; ... ) { ... }
|
| - (newInForInit && node is Binary && node.op == "in") ||
|
| - // (function() { ... })().
|
| - // ({a: 2, b: 3}.toString()).
|
| - (newAtStatementBegin && (node is NamedFunction ||
|
| - node is Fun ||
|
| - node is ObjectInitializer));
|
| + node.precedenceLevel < requiredPrecedence) ||
|
| + // for (a = (x in o); ... ; ... ) { ... }
|
| + (newInForInit && node is Binary && node.op == "in") ||
|
| + // (function() { ... })().
|
| + // ({a: 2, b: 3}.toString()).
|
| + (newAtStatementBegin &&
|
| + (node is NamedFunction ||
|
| + node is Fun ||
|
| + node is ObjectInitializer));
|
| if (needsParentheses) {
|
| inForInit = false;
|
| atStatementBegin = false;
|
| @@ -673,14 +668,13 @@ class Printer implements NodeVisitor {
|
| visitVariableDeclarationList(VariableDeclarationList list) {
|
| out("var ");
|
| visitCommaSeparated(list.declarations, ASSIGNMENT,
|
| - newInForInit: inForInit, newAtStatementBegin: false);
|
| + newInForInit: inForInit, newAtStatementBegin: false);
|
| }
|
|
|
| @override
|
| visitAssignment(Assignment assignment) {
|
| visitNestedExpression(assignment.leftHandSide, CALL,
|
| - newInForInit: inForInit,
|
| - newAtStatementBegin: atStatementBegin);
|
| + newInForInit: inForInit, newAtStatementBegin: atStatementBegin);
|
| if (assignment.value != null) {
|
| spaceOut();
|
| String op = assignment.op;
|
| @@ -688,8 +682,7 @@ class Printer implements NodeVisitor {
|
| out("=");
|
| spaceOut();
|
| visitNestedExpression(assignment.value, ASSIGNMENT,
|
| - newInForInit: inForInit,
|
| - newAtStatementBegin: false);
|
| + newInForInit: inForInit, newAtStatementBegin: false);
|
| }
|
| }
|
|
|
| @@ -701,40 +694,38 @@ class Printer implements NodeVisitor {
|
| @override
|
| visitConditional(Conditional cond) {
|
| visitNestedExpression(cond.condition, LOGICAL_OR,
|
| - newInForInit: inForInit,
|
| - newAtStatementBegin: atStatementBegin);
|
| + newInForInit: inForInit, newAtStatementBegin: atStatementBegin);
|
| spaceOut();
|
| out("?");
|
| spaceOut();
|
| // The then part is allowed to have an 'in'.
|
| visitNestedExpression(cond.then, ASSIGNMENT,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| spaceOut();
|
| out(":");
|
| spaceOut();
|
| visitNestedExpression(cond.otherwise, ASSIGNMENT,
|
| - newInForInit: inForInit, newAtStatementBegin: false);
|
| + newInForInit: inForInit, newAtStatementBegin: false);
|
| }
|
|
|
| @override
|
| visitNew(New node) {
|
| out("new ");
|
| visitNestedExpression(node.target, LEFT_HAND_SIDE,
|
| - newInForInit: inForInit, newAtStatementBegin: false);
|
| + newInForInit: inForInit, newAtStatementBegin: false);
|
| out("(");
|
| visitCommaSeparated(node.arguments, ASSIGNMENT,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| out(")");
|
| }
|
|
|
| @override
|
| visitCall(Call call) {
|
| visitNestedExpression(call.target, CALL,
|
| - newInForInit: inForInit,
|
| - newAtStatementBegin: atStatementBegin);
|
| + newInForInit: inForInit, newAtStatementBegin: atStatementBegin);
|
| out("(");
|
| visitCommaSeparated(call.arguments, ASSIGNMENT,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| out(")");
|
| }
|
|
|
| @@ -745,7 +736,7 @@ class Printer implements NodeVisitor {
|
| String op = binary.op;
|
| int leftPrecedenceRequirement;
|
| int rightPrecedenceRequirement;
|
| - bool leftSpace = true; // left<HERE>op right
|
| + bool leftSpace = true; // left<HERE>op right
|
| switch (op) {
|
| case ',':
|
| // x, (y, z) <=> (x, y), z.
|
| @@ -822,8 +813,7 @@ class Printer implements NodeVisitor {
|
| }
|
|
|
| visitNestedExpression(left, leftPrecedenceRequirement,
|
| - newInForInit: inForInit,
|
| - newAtStatementBegin: atStatementBegin);
|
| + newInForInit: inForInit, newAtStatementBegin: atStatementBegin);
|
|
|
| if (op == "in" || op == "instanceof") {
|
| // There are cases where the space is not required but without further
|
| @@ -837,8 +827,7 @@ class Printer implements NodeVisitor {
|
| spaceOut();
|
| }
|
| visitNestedExpression(right, rightPrecedenceRequirement,
|
| - newInForInit: inForInit,
|
| - newAtStatementBegin: false);
|
| + newInForInit: inForInit, newAtStatementBegin: false);
|
| }
|
|
|
| @override
|
| @@ -867,14 +856,13 @@ class Printer implements NodeVisitor {
|
| out(op);
|
| }
|
| visitNestedExpression(unary.argument, UNARY,
|
| - newInForInit: inForInit, newAtStatementBegin: false);
|
| + newInForInit: inForInit, newAtStatementBegin: false);
|
| }
|
|
|
| @override
|
| void visitPostfix(Postfix postfix) {
|
| visitNestedExpression(postfix.argument, CALL,
|
| - newInForInit: inForInit,
|
| - newAtStatementBegin: atStatementBegin);
|
| + newInForInit: inForInit, newAtStatementBegin: atStatementBegin);
|
| out(postfix.op);
|
| }
|
|
|
| @@ -909,10 +897,10 @@ class Printer implements NodeVisitor {
|
| // TODO(floitsch): allow more characters.
|
| int charCode = field.codeUnitAt(i);
|
| if (!(charCodes.$a <= charCode && charCode <= charCodes.$z ||
|
| - charCodes.$A <= charCode && charCode <= charCodes.$Z ||
|
| - charCode == charCodes.$$ ||
|
| - charCode == charCodes.$_ ||
|
| - i != 1 && isDigit(charCode))) {
|
| + charCodes.$A <= charCode && charCode <= charCodes.$Z ||
|
| + charCode == charCodes.$$ ||
|
| + charCode == charCodes.$_ ||
|
| + i != 1 && isDigit(charCode))) {
|
| return false;
|
| }
|
| }
|
| @@ -927,8 +915,7 @@ class Printer implements NodeVisitor {
|
| @override
|
| void visitAccess(PropertyAccess access) {
|
| visitNestedExpression(access.receiver, CALL,
|
| - newInForInit: inForInit,
|
| - newAtStatementBegin: atStatementBegin);
|
| + newInForInit: inForInit, newAtStatementBegin: atStatementBegin);
|
| Node selector = access.selector;
|
| if (selector is LiteralString) {
|
| LiteralString selectorString = selector;
|
| @@ -957,7 +944,7 @@ class Printer implements NodeVisitor {
|
| }
|
| out("[");
|
| visitNestedExpression(selector, EXPRESSION,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| out("]");
|
| }
|
|
|
| @@ -1051,7 +1038,7 @@ class Printer implements NodeVisitor {
|
| }
|
| if (i != 0) spaceOut();
|
| visitNestedExpression(element, ASSIGNMENT,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| // We can skip the trailing "," for the last element (since it's not
|
| // an array hole).
|
| if (i != elements.length - 1) out(",");
|
| @@ -1070,8 +1057,7 @@ class Printer implements NodeVisitor {
|
| // property. Ideally, we would use a proper pretty-printer to make the
|
| // decision based on layout.
|
| bool exitOneLinerMode(Expression value) {
|
| - return
|
| - value is Fun ||
|
| + return value is Fun ||
|
| value is ArrayInitializer && value.elements.any((e) => e is Fun);
|
| }
|
|
|
| @@ -1122,7 +1108,7 @@ class Printer implements NodeVisitor {
|
| out(":");
|
| spaceOut();
|
| visitNestedExpression(node.value, ASSIGNMENT,
|
| - newInForInit: false, newAtStatementBegin: false);
|
| + newInForInit: false, newAtStatementBegin: false);
|
| }
|
|
|
| @override
|
| @@ -1205,12 +1191,13 @@ class Printer implements NodeVisitor {
|
| }
|
| }
|
|
|
| -
|
| class OrderedSet<T> {
|
| final Set<T> set;
|
| final List<T> list;
|
|
|
| - OrderedSet() : set = new Set<T>(), list = <T>[];
|
| + OrderedSet()
|
| + : set = new Set<T>(),
|
| + list = <T>[];
|
|
|
| void add(T x) {
|
| if (set.add(x)) {
|
| @@ -1235,9 +1222,10 @@ class VarCollector extends BaseVisitor {
|
| static final String disableVariableMinificationPattern = "::norenaming::";
|
| static final String enableVariableMinificationPattern = "::dorenaming::";
|
|
|
| - VarCollector() : nested = false,
|
| - vars = new OrderedSet<String>(),
|
| - params = new OrderedSet<String>();
|
| + VarCollector()
|
| + : nested = false,
|
| + vars = new OrderedSet<String>(),
|
| + params = new OrderedSet<String>();
|
|
|
| void forEachVar(void fn(String v)) => vars.forEach(fn);
|
| void forEachParam(void fn(String p)) => params.forEach(fn);
|
| @@ -1284,7 +1272,6 @@ class VarCollector extends BaseVisitor {
|
| }
|
| }
|
|
|
| -
|
| /**
|
| * Returns true, if the given node must be wrapped into braces when used
|
| * as then-statement in an [If] that has an else branch.
|
| @@ -1308,6 +1295,7 @@ class DanglingElseVisitor extends BaseVisitor<bool> {
|
| if (!node.hasElse) return true;
|
| return node.otherwise.accept(this);
|
| }
|
| +
|
| bool visitFor(For node) => node.body.accept(this);
|
| bool visitForIn(ForIn node) => node.body.accept(this);
|
| bool visitWhile(While node) => node.body.accept(this);
|
| @@ -1323,19 +1311,18 @@ class DanglingElseVisitor extends BaseVisitor<bool> {
|
| return node.catchPart.accept(this);
|
| }
|
| }
|
| +
|
| bool visitCatch(Catch node) => node.body.accept(this);
|
| bool visitSwitch(Switch node) => false;
|
| bool visitCase(Case node) => false;
|
| bool visitDefault(Default node) => false;
|
| bool visitFunctionDeclaration(FunctionDeclaration node) => false;
|
| - bool visitLabeledStatement(LabeledStatement node)
|
| - => node.body.accept(this);
|
| + bool visitLabeledStatement(LabeledStatement node) => node.body.accept(this);
|
| bool visitLiteralStatement(LiteralStatement node) => true;
|
|
|
| bool visitExpression(Expression node) => false;
|
| }
|
|
|
| -
|
| abstract class LocalNamer {
|
| String getName(String oldName);
|
| String declareVariable(String oldName);
|
| @@ -1344,7 +1331,6 @@ abstract class LocalNamer {
|
| void leaveScope();
|
| }
|
|
|
| -
|
| class IdentityNamer implements LocalNamer {
|
| String getName(String oldName) => oldName;
|
| String declareVariable(String oldName) => oldName;
|
| @@ -1353,7 +1339,6 @@ class IdentityNamer implements LocalNamer {
|
| void leaveScope() {}
|
| }
|
|
|
| -
|
| class MinifyRenamer implements LocalNamer {
|
| final List<Map<String, String>> maps = [];
|
| final List<int> parameterNumberStack = [];
|
| @@ -1392,9 +1377,9 @@ class MinifyRenamer implements LocalNamer {
|
| static const DIGITS = 10;
|
|
|
| static int nthLetter(int n) {
|
| - return (n < LOWER_CASE_LETTERS) ?
|
| - charCodes.$a + n :
|
| - charCodes.$A + n - LOWER_CASE_LETTERS;
|
| + return (n < LOWER_CASE_LETTERS)
|
| + ? charCodes.$a + n
|
| + : charCodes.$A + n - LOWER_CASE_LETTERS;
|
| }
|
|
|
| // Parameters go from a to z and variables go from z to a. This makes each
|
|
|