function anonymous(locals, escape, include, rethrow /**/) { rethrow = rethrow || function rethrow(err, str, filename, lineno){ var lines = str.split('\n') , start = Math.max(lineno - 3, 0) , end = Math.min(lines.length, lineno + 3); // Error context var context = lines.slice(start, end).map(function (line, i){ var curr = i + start + 1; return (curr == lineno ? ' >> ' : ' ') + curr + '| ' + line; }).join('\n'); // Alter exception message err.path = filename; err.message = (filename || 'ejs') + ':' + lineno + '\n' + context + '\n\n' + err.message; throw err; }; escape = escape || function (markup) { return markup == undefined ? '' : String(markup) .replace(_MATCH_HTML, function(m) { return _ENCODE_HTML_RULES[m] || m; }); }; var _ENCODE_HTML_RULES = { "&": "&" , "<": "<" , ">": ">" , '"': """ , "'": "'" } , _MATCH_HTML = /[&<>'"]/g; ; var __line = 1 , __lines = "Woah look, a <%= thing %>" , __filename = undefined; try { var __output = []; with (locals || {}) { ; __output.push("Woah look, a ") ; __output.push(escape(thing)) } return __output.join(""); } catch (e) { rethrow(e, __lines, __filename, __line); } }