anchor.diff:  
   
   abstract class Route {
  +  Route() {
  +    _performance = createPerformance();
  +  }
   
     PerformanceView get performance => _performance?.view;
     Performance _performance;
  -  NotificationCallback _onDismissed;
  -  NotificationCallback _onRemoveRoute;
  +  _RouteCallback _onDismissed;
  +  _RouteCallback _onRemoveRoute;
   
     Performance createPerformance() {
       Duration duration = transitionDuration;
  
positive.code:         assert(!route.modal);
          continue;
        }
        route.ensurePerformance(
          direction: (i <= _currentPosition) ? AnimationDirection.forward : AnimationDirection.reverse
        );
        route._onDismissed = () {
          assert(_history.contains(route));
          if (_history.lastIndexOf(route) <= _currentPosition)
            popRoute(route);
        };
        route._onRemoveRoute = () {
          assert(_history.contains(route));
          setState(() {
            _history.remove(route);
          });
        };
        visibleRoutes.add(
          new KeyedSubtree(
            key: new ObjectKey(route),
  
negative.code:         currentRoute.didPop(null);
          _currentPosition -= 1;
        }
        _currentPosition += 1;
        _insertRoute(route);
      });
    }
  
  