Template

u.template(string, ""): correct
u.template(string, {}): correct
u.template(string, []): correct
u.template(string, I'm bad content): correct
u.template(string, object): correct
u.template(string, object): correct
u.template(string, object): correct
u.template(string, object): correct
u.template(string, array of objects): correct
u.template(string, array of objects): correct
u.template(tem_string_json, ""): correct
u.template(tem_string_json, {}): correct
u.template(tem_string_json, []): correct
u.template(tem_string_json, I'm bad content): correct
u.template(tem_string_json, object): correct
u.template(tem_string_json_quoted, object): correct
u.template(tem_string_json_quoted, object): correct
u.template(tem_string_json, array of objects): correct
u.template(tem_string_json_quoted, array of objects): correct
u.template(tem_object, ""): correct
u.template(tem_object, {}): correct
u.template(tem_object, []): correct
u.template(tem_object, I'm bad content): correct
u.template(tem_object, object): correct
u.template(tem_object, array of objects): correct
u.template(tem_string_html, ""): correct
u.template(tem_string_html, {}): correct
u.template(tem_string_html, []): correct
u.template(tem_string_html, I'm bad content): correct
u.template(tem_string_html, object): correct
u.template(tem_string_html, object): correct
u.template(tem_string_html, array of objects): correct
u.template(tem_html, ""): correct
u.template(tem_html, {}): correct
u.template(tem_html, []): correct
u.template(tem_html, I'm bad content): correct
u.template(tem_string_html, object): correct
u.template(tem_string_html, array of objects): correct
u.template(tem_string_html, array of objects, append to ul): correct
u.template(tem_string_html_table, array of objects, append to table): correct

Using innerHTML on table structures in <=IE9 doesn't work, because table.innerHTML is read-only. In other words: TR's cannot be used as real DOM nodes, they must be passed as strings.