anchor.diff:        PointerDeviceKind kind = _pointerKindMap[datum.kind];
         switch (datum.type) {
           case PointerType.DOWN:
  +          assert(!_pointers.containsKey(datum.pointer));
             _PointerState state = _pointers.putIfAbsent(
               datum.pointer,
               () => new _PointerState(position)
             );
  +          assert(state.lastPosition == position);
             state.startNewPointer();
             state.setDown();
             yield new PointerAddedEvent(
  
positive.code:           break;
          case PointerType.UP:
          case PointerType.CANCEL:
            _PointerState state = _pointers[datum.pointer];
            assert(state != null);
            assert(position == state.lastPosition);
            state.setUp();
            if (datum.type == PointerType.UP) {
  
negative.code:           );
            break;
          case PointerType.MOVE:
            // If the service starts supporting hover pointers, then it must also
            // start sending us ADDED and REMOVED data points.
            // See also: https://github.com/flutter/flutter/issues/720
            assert(_pointers.containsKey(datum.pointer));
            _PointerState state = _pointers[datum.pointer];
            assert(state.down);
            Offset offset = position - state.lastPosition;
            state.lastPosition = position;
  