code: function(property) {
        if (!(property instanceof ICAL.Property)) {
          throw new TypeError('must instance of ICAL.Property');
        }
  
        if (!this._properties) {
          this._properties = [];
          this._hydratedPropertyCount = 0;
        }
  
        if (property.parent) {
          property.parent.removeProperty(property);
        }
  
        var idx = this.jCal[PROPERTY_INDEX].push(property.jCal);
        this._properties[idx - 1] = property;
        this._hydratedPropertyCount++;
        property.parent = this;
        return property;
      }
docs: Adds an {@link ICAL.Property} to the component.
  
  @param {ICAL.Property} property      The property to add
  @return {ICAL.Property}              The passed in property