code: function mkitem(expr, key, val, base) {
        var item = base ? create(base) : {};
        item[expr.key] = key;
        if (expr.pos) { item[expr.pos] = val; }
        return item
      }
docs: Convert the item looped into an object used to extend the child tag properties
  @param   { Object } expr - object containing the keys used to extend the children tags
  @param   { * } key - value to assign to the new object returned
  @param   { * } val - value containing the position of the item in the array
  @param   { Object } base - prototype object for the new item
  @returns { Object } - new object containing the values of the original item
  
  The variables 'key' and 'val' are arbitrary.
  They depend on the collection type looped (Array, Object)
  and on the expression used on the each tag