anchor.diff:      }
   
       for (int i = newStartIndex; i < newEndIndex; ++i) {
  -      EventHandler newHander = newHandlers[i];
  -      root.addEventListener(newHander.type, newHander.listener);
  +      EventHandler newHandler = newHandlers[i];
  +      root.addEventListener(newHandler.type, newHandler.listener);
       }
     }
   
  
positive.code: 
      _dirty = false;
  
      // TODO(rafaelw): This prevents components from returning different node
      // types as their root node at different times. Consider relaxing.
      assert(oldRendered == null ||
             _rendered.runtimeType == oldRendered.runtimeType);
  
      if (_rendered._sync(oldRendered, host, insertBefore)) {
        _rendered = oldRendered; // retain stateful component
  
negative.code: 
      // Skip over trailing handlers that match.
      while (newStartIndex < newEndIndex && oldStartIndex < oldEndIndex) {
        EventHandler newHandler = newHandlers[newEndIndex - 1];
        EventHandler oldHandler = oldHandlers[oldEndIndex - 1];
        if (newHandler.type != oldHandler.type
            || newHandler.listener != oldHandler.listener)
          break;
        --newEndIndex;
        --oldEndIndex;
  