anchor.diff:      ;
   
   elementList
  -    : singleExpression (','+ singleExpression)* (','+ lastElement)?
  -    | lastElement
  -    ;
  -
  -lastElement                      // ECMAScript 6: Spread Operator
  -    : Ellipsis (Identifier | singleExpression)
  +    : arrayElement (','+ arrayElement)*
  +    ;
  +
  +arrayElement                      // ECMAScript 6: Spread Operator
  +    : Ellipsis? (singleExpression | Identifier) ','?
       ;
   
   objectLiteral
  
positive.code: // Classes modified
  classElement
      : constructorDeclaration
      | propertyMemberDeclaration
      | indexMemberDeclaration
      | statement
      ;
  
  propertyMemberDeclaration
      : propertyMemberBase propertyName typeAnnotation? initializer? SemiColon
      | propertyMemberBase propertyName callSignature ( ('{' functionBody '}') | SemiColon)
      | propertyMemberBase (getAccessor | setAccessor)
      | abstractDeclaration
      ;
  
  propertyMemberBase
  
negative.code: variableStatement
      : bindingPattern typeAnnotation? initializer SemiColon?
      | accessibilityModifier? varModifier? ReadOnly? variableDeclarationList SemiColon?
      | Declare varModifier? variableDeclarationList SemiColon?
      ;
  
  variableDeclarationList
  