anchor.diff:          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),
  
positive.code: typedef Widget RouteBuilder(RouteArguments args);
  typedef RouteBuilder RouteGenerator(String name);
  typedef void StateRouteCallback(StateRoute route);
  typedef void NotificationCallback();
  
  class Navigator extends StatefulComponent {
    Navigator({
  
negative.code:   bool _debugCurrentlyHaveRoute(Route route) {
      int index = _history.indexOf(route);
      return index >= 0 && index <= _currentPosition;
    }
  
    void _handleRouteDismissed(Route route) {
      assert(_history.contains(route));
      if (_history.lastIndexOf(route) <= _currentPosition)
        popRoute(route);
    }
  
    void _handleRemoveRoute(Route route) {
      assert(_history.contains(route));
      setState(() {
        _history.remove(route);
      });
    }
  
    Widget build(BuildContext context) {
  