diff --git a/lib/ejs.js b/lib/ejs.js index 104aadad..aa6322e3 100755 --- a/lib/ejs.js +++ b/lib/ejs.js @@ -578,6 +578,8 @@ Template.prototype = { var escapeFn = opts.escapeFunction; /** @type {FunctionConstructor} */ var ctor; + /** @type {string} */ + var sanitizedFilename = opts.filename ? JSON.stringify(opts.filename) : 'undefined'; if (!this.source) { this.generateSource(); @@ -609,8 +611,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' @@ -636,7 +637,7 @@ Template.prototype = { } if (opts.compileDebug && opts.filename) { src = src + '\n' - + '//# sourceURL=' + opts.filename + '\n'; + + '//# sourceURL=' + sanitizedFilename + '\n'; } try {