diff --git a/test/utility.js b/test/utility.js index e49d5e27f..c609dc2c3 100644 --- a/test/utility.js +++ b/test/utility.js @@ -63,6 +63,10 @@ $(document).ready(function() { result = fancyTemplate({people : {moe : "Moe", larry : "Larry", curly : "Curly"}}); equals(result, "", 'can run arbitrary javascript in templates'); + var escapedCharsInJavascriptTemplate = _.template(""); + result = escapedCharsInJavascriptTemplate({numbers: "one\ntwo\nthree\nfour"}); + equals(result, "", 'Can use escaped characters (e.g. \\n) in Javascript') + var namespaceCollisionTemplate = _.template("<%= pageCount %> <%= thumbnails[pageCount] %> <% _.each(thumbnails, function(p) { %>
\">
<% }); %>"); result = namespaceCollisionTemplate({ pageCount: 3, diff --git a/underscore.js b/underscore.js index fb055a454..9cf1de923 100644 --- a/underscore.js +++ b/underscore.js @@ -910,7 +910,8 @@ }) .replace(c.evaluate || null, function(match, code) { return "');" + code.replace(/\\'/g, "'") - .replace(/[\r\n\t]/g, ' ') + ";__p.push('"; + .replace(/[\r\n\t]/g, ' ') + .replace(/\\\\/g, '\\') + ";__p.push('"; }) .replace(/\r/g, '\\r') .replace(/\n/g, '\\n')