code: function(index) {
        if (this._values && this._values[index]) {
          return this._values[index];
        }
  
        // for the case where there is no value.
        if (this.jCal.length <= (VALUE_INDEX + index)) {
          return null;
        }
  
        if (this.isDecorated) {
          if (!this._values) {
            this._values = [];
          }
          return (this._values[index] = this._decorate(
            this.jCal[VALUE_INDEX + index]
          ));
        } else {
          return this.jCal[VALUE_INDEX + index];
        }
      }
docs: Hydrate a single value. The act of hydrating means turning the raw jCal
  value into a potentially wrapped object, for example {@link ICAL.Time}.
  
  @private
  @param {Number} index        The index of the value to hydrate
  @return {Object}             The decorated value.