diff --git a/lib/ejs.js b/lib/ejs.js index 51b202e6..f8413b57 100755 --- a/lib/ejs.js +++ b/lib/ejs.js @@ -569,6 +569,8 @@ Template.prototype = { var appended = ''; var escapeFn = opts.escapeFunction; var ctor; + /** @type {string} */ + var sanitizedFilename = opts.filename ? JSON.stringify(opts.filename) : 'undefined'; if (!this.source) { this.generateSource(); @@ -600,8 +602,7 @@ Template.prototype = { if (opts.compileDebug) { src = 'var __line = 1' + '\n' + ' , __lines = ' + JSON.stringify(this.templateText) + '\n' - + ' , __filename = ' + (opts.filename ? - JSON.stringify(opts.filename) : 'undefined') + ';' + '\n' + + ' , __filename = ' + sanitizedFilename + ';' + '\n' + 'try {' + '\n' + this.source + '} catch (e) {' + '\n' @@ -627,7 +628,7 @@ Template.prototype = { } if (opts.compileDebug && opts.filename) { src = src + '\n' - + '//# sourceURL=' + opts.filename + '\n'; + + '//# sourceURL=' + encodeURI(opts.filename) + '\n'; } try {