rem: var compobs = aObserver.QueryInterface (calICompositeObserver); if (compobs) { var newCompObs = Array (); for each (obs in this.mCompositeObservers) { if (obs != compobs) newCompObs.push(this.mCompositeObservers[i]); } this.mCompositeObservers = newCompObs; } 
add: if (aObserver instanceof calICompositeObserver) this.mCompositeObservers = this.mCompositeObservers.filter( function (v) { return v != aObserver; } ); 
context:     removeObserver: function (aObserver) {        const calICompositeObserver = Components.interfaces.calICompositeObserver;        var compobs = aObserver.QueryInterface (calICompositeObserver);        if (compobs) {            var newCompObs = Array ();            for each (obs in this.mCompositeObservers) {                if (obs != compobs)                    newCompObs.push(this.mCompositeObservers[i]);            }            this.mCompositeObservers = newCompObs;        }        for each (cal in this.mCalendars) {            cal.removeObserver(aObserver);        }    },
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/80dc8823a79814b2758b11a5100f139f84021eef/calCompositeCalendar.js/clean/calendar/providers/composite/calCompositeCalendar.js