rem: if (event.componentType != "VEVENT") { event = event.getFirstSubcomponent("VEVENT"); if (!event) throw Components.results.NS_ERROR_INVALID_ARG; 
add:      if (this.parentItem == this) { var rec = this.recurrenceInfo; if (rec) { rec.onStartDateChange(value,this.startDate); } 
context:     set icalComponent(event) {        this.modify();        if (event.componentType != "VEVENT") {            event = event.getFirstSubcomponent("VEVENT");            if (!event)                throw Components.results.NS_ERROR_INVALID_ARG;        }        this.setItemBaseFromICS(event);        this.mapPropsFromICS(event, this.icsEventPropMap);        this.importUnpromotedProperties(event, this.eventPromotedProps);                // If there is a duration set on the event, calculate the right        // end time.        // XXX This means that serializing later will loose the duration        //     information, to replace it with a dtend. bug 317786        if (event.duration) {            this.endDate = this.startDate.clone();            this.endDate.addDuration(event.duration);        }                // If endDate is still invalid neither a end time nor a duration is set        // on the event. We have to set endDate ourselves.        // If the start time is a date-time the event ends on the same calendar        // date and time of day. If the start time is a date the events        // non-inclusive end is the end of the calendar date.        if (!this.endDate.isValid) {            this.endDate = this.startDate.clone();            if (this.startDate.isDate) {                this.endDate.day += 1;                this.endDate.normalize();            }        }                // Importing didn't really change anything        this.mDirty = false;    },
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/6b1a8e840da62069c966f4c6439db88388626cb9/calEvent.js/buggy/calendar/base/src/calEvent.js