src/sap.ui.core/src/sap/ui/base/ManagedObjectObserver.js
function destroy(oListener) {
		for (var n in mTargets) {
			var oTargetConfig = mTargets[n];
			for (var i = 0; i < oTargetConfig.listeners.length; i++) {
				if (oTargetConfig.listeners[i] === oListener) {
					oTargetConfig.listeners.splice(i, 1);
					oTargetConfig.configurations.splice(i, 1);
				}
			}
			if (oTargetConfig.listeners && oTargetConfig.listeners.length === 0) {
				delete mTargets[n];
				oTargetConfig.object._observer = undefined;
			}
		}
	}
function destroy(oListener) {
		for (var n in mTargets) {
			var oTargetConfig = mTargets[n];
			for (var i = 0; i < oTargetConfig.listeners.length; i++) {
				if (oTargetConfig.listeners[i] === oListener) {
					oTargetConfig.listeners.splice(i, 1);
					oTargetConfig.configurations.splice(i, 1);
				}
			}
			if (oTargetConfig.listeners && oTargetConfig.listeners.length === 0) {
				delete mTargets[n];
				oTargetConfig.object._observer = undefined;
			}
		}
	}
function destroy ( oListener ) { for ( var n in mTargets ) { var oTargetConfig = mTargets [ n ] ; for ( var i = 0 ; i < oTargetConfig . listeners . length ; i ++ ) { if ( oTargetConfig . listeners [ i ] === oListener ) { oTargetConfig . listeners . splice ( i , 1 ) ; oTargetConfig . configurations . splice ( i , 1 ) ; } } if ( oTargetConfig . listeners && oTargetConfig . listeners . length === 0 ) { delete mTargets [ n ] ; oTargetConfig . object . _observer = undefined ; } } }
removes a given listener by looking at all registered targets and their listeners. if there are no more listeners to a target, the registered target is removed from the mTargets map.
removes a given listener by looking at all registered targets and their listeners . if there are no more listeners to a target the registered target is removed from the mTargets map .