code: function (tagArgs) {
      var self = this;
  
      var kwArgs = null; // source -> source
      var args = null; // [source]
  
      // tagArgs may be null
      _.each(tagArgs, function (arg) {
        var argCode = self.codeGenArgValue(arg);
  
        if (arg.length > 2) {
          // keyword argument (represented as [type, value, name])
          kwArgs = (kwArgs || {});
          kwArgs[arg[2]] = argCode;
        } else {
          // positional argument
          args = (args || []);
          args.push(argCode);
        }
      });
  
      // put kwArgs in options dictionary at end of args
      if (kwArgs) {
        args = (args || []);
        args.push('Spacebars.kw(' + makeObjectLiteral(kwArgs) + ')');
      }
  
      return args;
    }
docs: returns: array of source strings, or null if no args at all.