anchor.diff:    final NgAnimate _animate;
     var previousSet = [];
     var currentSet = [];
  -
  -  
  -      _NgClassBase(this.element, this.scope, this.mode, this.nodeAttrs, this._parser, this._animate)
  -      {
  +  Watch _watch;
  +
  +  _NgClassBase(this.element, this.scope, this.mode, this.nodeAttrs,
  +               this._parser, this._animate)
  +  {
       var prevClass;
   
       nodeAttrs.observe('class', (String newValue) {
  
positive.code:     if (mode == null || (index != null && index % 2 == mode)) {
        previousSet.forEach((css) {
          if (!currentSet.contains(css)) {
            _animate.removeClass(element, css); 
          } else {
            element.classes.remove(css);
          }
  
negative.code:   }
  
    set valueExpression(currentExpression) {
      if (_watch != null) _watch.remove();
      _watch = scope.watch(_parser(currentExpression, collection: true), (current, _) {
        currentSet = _flatten(current);
        _handleChange(scope.context[r'$index']);
      }, readOnly: true);
  