code: function expandAsObject(property, value, recurse) {
      var res = {};
      if (!props.hasOwnProperty(property)) {
          res[property] = value;
          return res;
      }
  
      var subs = expandAsArray(property, false);
      if (typeof value === 'string') {
          value = list.space(value);
      }
  
      for (var i = 0, j, l = subs.length, jl = value.length; i < l; i++) {
          j = i < jl ? i : (jl < 2 ? 0 : i % 2);
  
          if (recurse) {
              var recRes = expandAsObject(subs[i], value[j], recurse);
              var keys = Object.keys(recRes);
              for (var ri = 0, rl = keys.length; ri < rl; ri++) {
                  res[keys[ri]] = recRes[keys[ri]];
              }
          } else {
              res[subs[i]] = value[j];
          }
      }
  
      return res;
  }
docs: expandAsObject
  
  @param {string} property - Source property name
  @param {string|string[]} value - Source property value
  @param {boolean} recurse - Flag to expand recursively
  @return {Object} - Resulting object