Skip to content

Commit

Permalink
added option to set compileDebug to false
Browse files Browse the repository at this point in the history
Signed-off-by: Tj Holowaychuk <tj@vision-media.ca>
  • Loading branch information
conancat authored and tj committed Jul 15, 2011
1 parent 7987c87 commit d955560
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 16 deletions.
4 changes: 3 additions & 1 deletion lib/compiler.js
Expand Up @@ -125,7 +125,9 @@ Compiler.prototype = {
*/

visit: function(node){
this.line(node);
if (this.options.compileDebug !== false) {
this.line(node);
}
return this.visitNode(node);
},

Expand Down
39 changes: 24 additions & 15 deletions lib/jade.js
Expand Up @@ -178,12 +178,12 @@ function parse(str, options){
console.log('\n\x1b[1mCompiled Function\x1b[0m:\n\n%s', js.replace(/^/gm, ' '));
}

jadeHelpers= exports.helpers;
Jade = exports;

try {
return ''
+ 'var attrs = jadeHelpers.attrs; \n'
+ 'var escape = jadeHelpers.escape; \n'
+ 'var attrs = Jade.helpers.attrs; \n'
+ 'var escape = Jade.helpers.escape; \n'
+ 'var buf = [];\n'
+ (options.self
? 'var self = locals || {}, __ = __ || locals.__;\n' + js
Expand All @@ -201,6 +201,9 @@ function parse(str, options){
/**
* Compile a `Function` representation of the given jade `str`.
*
* Options:
* - `.compileDebug` Enable/disable debug helpers such as rethrow (`true`)
*
* @param {String} str
* @param {Options} options
* @return {Function}
Expand All @@ -214,18 +217,24 @@ exports.compile = function(str, options){
? JSON.stringify(options.filename)
: 'undefined';

jadeHelpers = exports.helpers;

// Reduce closure madness by injecting some locals
var fn = [
'var __ = { lineno: 1, input: ' + input + ', filename: ' + filename + ' };'
, 'var rethrow = jadeHelpers.rethrow;'
, 'try {'
, parse(String(str), options || {})
, '} catch (err) {'
, ' rethrow(err, __.input, __.filename, __.lineno);'
, '}'
].join('\n');
Jade = exports;

var fn = [];

if (options.compileDebug !== false) {
// Reduce closure madness by injecting some locals
fn = [
'var __ = { lineno: 1, input: ' + input + ', filename: ' + filename + ' };'
, 'var rethrow = Jade.helpers.rethrow;'
, 'try {'
, parse(String(str), options || {})
, '} catch (err) {'
, ' rethrow(err, __.input, __.filename, __.lineno);'
, '}'
].join('\n');
} else {
fn = parse(String(str), options || {});
}

return new Function('locals', fn);
};
Expand Down
6 changes: 6 additions & 0 deletions test/jade.test.js
Expand Up @@ -867,6 +867,12 @@ module.exports = {
assert.equal('<p>bar</p>', fn.call({ foo: 'bar' }));
},

'test .compile() no debug': function(assert){
var fn = jade.compile('p no debug', {compileDebug: false});
assert.equal('<p>no debug</p>', fn());
},


'test null attrs on tag': function(assert){
var tag = new jade.nodes.Tag('a'),
name = 'href',
Expand Down

0 comments on commit d955560

Please sign in to comment.