anchor.diff:      /// To print assignments like `a = a + 1` and `a = a + b` compactly as
       /// `++a` and `a += b` in the face of [DeferredExpression]s we detect the
       /// pattern of the undeferred assignment.
  -    String op = assignment.op;
  +    final op = assignment.op;
       Node leftHandSide = assignment.leftHandSide;
       Node rightHandSide = assignment.value;
       if ((op == '+' || op == '-') &&
  
positive.code:     blockBody(body, needsSeparation: false);
    }
  
    int functionOut(Fun fun, Node name, VarCollector vars) {
      out('function'); // 'function'
      if (name != null) {
        out(' '); // ' '
  
negative.code:     // TODO: support static, get/set, async, and generators.
      Fun fun = node.function;
      out("(");
      visitCommaSeparated(fun.params, PRIMARY,
          newInForInit: false, newAtStatementBegin: false);
      out(")");
      int closingPosition = blockOut(fun.body);
      return closingPosition;
  