docs: function handleGuardedRoute(activator, instance, instruction) {
              var resultOrPromise = router.guardRoute(instance, instruction);
              if (resultOrPromise) {
                  if (resultOrPromise.then) {
                      resultOrPromise.then(function(result) {
                          if (result) {
                              if (system.isString(result)) {
                                  redirect(result);
                              } else {
                                  activateRoute(activator, instance, instruction);
                              }
                          } else {
                              cancelNavigation(instance, instruction);
                          }
                      });
                  } else {
                      if (system.isString(resultOrPromise)) {
                          redirect(resultOrPromise);
                      } else {
                          activateRoute(activator, instance, instruction);
                      }
                  }
              } else {
                  cancelNavigation(instance, instruction);
              }
          }