code: function(name) {
        var jCalLen = this.jCal[PROPERTY_INDEX].length;
        var i = 0;
  
        if (name) {
          var props = this.jCal[PROPERTY_INDEX];
          var result = [];
  
          for (; i < jCalLen; i++) {
            if (name === props[i][NAME_INDEX]) {
              result.push(
                this._hydrateProperty(i)
              );
            }
          }
          return result;
        } else {
          if (!this._properties ||
              (this._hydratedPropertyCount !== jCalLen)) {
            for (; i < jCalLen; i++) {
              this._hydrateProperty(i);
            }
          }
  
          return this._properties || [];
        }
      }
docs: Get all properties in the component, optionally filtered by name.
  
  @param {String=} name        Lowercase property name
  @return {ICAL.Property[]}    List of properties