anchor.diff:      Token commaToken = null;
       token = expect('assert', token);
       Token leftParenthesis = token;
  -    token = expect('(', token);
  +    expect('(', token);
       bool old = mayParseFunctionExpressions;
       mayParseFunctionExpressions = true;
  -    token = parseExpression(token);
  +    token = parseExpression(token.next);
       if (optional(',', token)) {
  -      commaToken = token;
  -      token = token.next;
  -      if (optional(')', token)) {
  -        commaToken = null;
  +      if (optional(')', token.next)) {
  +        token = token.next;
         } else {
  -        token = parseExpression(token);
  +        commaToken = token;
  +        token = parseExpression(token.next);
         }
       }
       if (optional(',', token)) {
  
positive.code:   /// ```
    Token parseYieldStatement(Token token) {
      // TODO(brianwilkerson) Accept the last consumed token.
      assert(identical('yield', token.stringValue));
      Token begin = token;
      listener.beginYieldStatement(begin);
      token = token.next;
      Token starToken;
      if (optional('*', token)) {
        starToken = token;
        token = token.next;
      }
      token = parseExpression(token);
      token = ensureSemicolon(token);
      listener.endYieldStatement(begin, starToken, token);
      return token;
  
negative.code:         token = token.next;
          break;
        }
        token = parseMapLiteralEntry(token);
        ++count;
      } while (optional(',', token));
      mayParseFunctionExpressions = old;
  