uiCanExit was being bound when registered, like so: $scope.$on('$destroy', $transitions.onBefore({exiting: cfg.node.state.name}, controllerInstance.uiCanExit.bind(controllerInstance)));
This caused ng1 injector not to be able to annotate, because it was a bound copy of the original fn.