fix($rootScope.$on) check listener existense while deregistering

Check that listener is still present in $$listeners before decrease
$$listenerCount. It fixes problem with incorrect $$listenerCount after
call deregistering function multiple times.

Closes #9666
Closes #9667
This commit is contained in:
Peter Bacon Darwin
2014-10-19 12:10:58 +01:00
parent 75082c975c
commit a56435f3ae
2 changed files with 30 additions and 2 deletions

View File

@@ -979,8 +979,11 @@ function $RootScopeProvider(){
var self = this;
return function() {
namedListeners[indexOf(namedListeners, listener)] = null;
decrementListenerCount(self, 1, name);
var indexOfListener = indexOf(namedListeners, listener);
if (indexOfListener !== -1) {
namedListeners[indexOfListener] = null;
decrementListenerCount(self, 1, name);
}
};
},