code: function(template_data, template_name) {
          var precompiled_template,
              regex = /{([^{}]*)}/g;
  
          // replace double quotes with single quotes
          precompiled_template = template_data.replace(/\"/g, "'");
  
          // split each line, enclose in double quotes & join them using + sign
          precompiled_template = precompiled_template.split("\n").map(
            function(line) {
              return '"' + line.trim() + '"';
            }).join(" \t+\n ");
  
          // replace the curly braces with the variables
          precompiled_template = precompiled_template.replace(
            regex, function(a, b) {
              return '" + data.' + b + ' + "';
            });
  
          return "(function() {\n\t" +
                    "window." + template_namespace + ' = window.' + template_namespace + ' || {};\n\t' +
                    template_namespace + '["' + template_name + '"] = ' + 'function(data) {\n\t\t' +
                      'return ' + precompiled_template + ';\n\t' +
                    '};\n' +
                  '})();';
        }
docs: Merge task-specific and/or target-specific options with these defaults.