add: var duration = Components.classes["@mozilla.org/calendar/duration;1"] .createInstance(Components.interfaces.calIDuration); duration.isNegative = true; duration[this.getProperty("alarmUnits")] = this.getProperty("alarmLength");  var triggerProp = icssvc.createIcalProperty("TRIGGER"); triggerProp.stringValue = duration.icalString;  if (this.getProperty("alarmRelated") == "END") triggerProp.setParameter("RELATED", "END");  alarmComp.addProperty(triggerProp);  if (this.getProperty("alarmEmailAddress")) { var emailProp = icssvc.createIcalProperty("X-EMAILADDRESS"); emailProp.stringValue = this.getProperty("alarmEmailAddress"); alarmComp.addProperty(emailProp); }  icalcomp.addSubcomponent(alarmComp); } 
context:     fillIcalComponentFromBase: function (icalcomp) {        // Make sure that the LMT and ST are updated        this.updateStampTime();        this.ensureNotDirty();        this.mapPropsToICS(icalcomp, this.icsBasePropMap);        if (this.mOrganizer)            icalcomp.addProperty(this.mOrganizer.icalProperty);        for (var i = 0; i < this.mAttendees.length; i++)            icalcomp.addProperty(this.mAttendees[i].icalProperty);        if (this.mGeneration) {            var genprop = icalProp("X-MOZILLA-GENERATION");            genprop.stringValue = String(this.mGeneration);            icalcomp.addProperty(genprop);        }        if (this.mRecurrenceInfo) {            var ritems = this.mRecurrenceInfo.getRecurrenceItems({});            for (i in ritems) {                icalcomp.addProperty(ritems[i].icalProperty);            }        }    },
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/a89345a2cf7ceae150bacdb64c9c308a26957882/calItemBase.js/buggy/calendar/base/src/calItemBase.js