(function() { var jslitmus, _, doU, doT, data = { f1: 1, f2: 2, f3: 3, f4: "http://bebedo.com/laura"}, snippet = "

Just static text

\

Here is a simple {{=it.f1}}

\
test {{=it.f2}}\
{{=it.f3}}
\
{{!it.f4}}
\
"; if (typeof module !== 'undefined' && module.exports) { runTests(); } else { window.onload = runTestsInBrowser; } function testsetup(snippet) { // doU with 'it' var doUCompiled = doU.template(snippet); // doT with 'it' var doTCompiledParam = doT.template(snippet); // doT with 'this' var doTCompiled = doT.template(snippet.replace(/=it\./g, '=this.').replace(/{{!it\./g, '{{!this.')); // doT with 'it' and append = false doT.templateSettings.append = false; var doTCompiledNoAppend = doT.template(snippet); jslitmus.test('doU.js', function() { doUCompiled(data); }); jslitmus.test('doU.js - looping', function(count) { while (count--) { doUCompiled(data); } }); jslitmus.test('doT.js - using this', function() { doTCompiled.call(data); }); jslitmus.test('doT.js - using this - looping', function(count) { while (count--) { doTCompiled.call(data); } }); jslitmus.test('doT.js - using it', function() { doTCompiledParam(data); }); jslitmus.test('doT.js - using it - looping', function(count) { while (count--) { doTCompiledParam(data); } }); jslitmus.test('doT.js - append off', function() { doTCompiledNoAppend(data); }); jslitmus.test('doT.js - append off - looping', function(count) { while (count--) { doTCompiledNoAppend(data); } }); } function runTests() { //var util = require('util'); jslitmus = require('./jslitmus.js'); doU = require('./templating/doU.js'); doT = require('./templating/doT.js'); var passOne = 0; console.log("*** Small template length: " + snippet.length); testsetup(snippet); // Log the test results jslitmus.on('complete', function(test) { //console.log(util.inspect(process.memoryUsage())); console.log(test.toString()); }); // 'all_complete' fires when all tests have finished. jslitmus.on('all_complete', function() { switch (passOne) { case 0: passOne++; for(var i=0; i<5; i++) { snippet += snippet; } console.log("*** Medium template length: " + snippet.length); break; case 1: passOne++; for(var i=0; i<3; i++) { snippet += snippet; } console.log("*** Large template length: " + snippet.length); break; default: return; } jslitmus.clearAll(); testsetup(snippet); jslitmus.runAll(); }); // Run it! jslitmus.runAll(); } function runTestsInBrowser() { jslitmus = window.jslitmus;doU = window.doU;doT = window.doT; var resultTmpl = doT.template("

Template length : {{=it.size}}

"); var currentSet = document.getElementById('small'); testsetup(snippet); // 'complete' fires for each test when it finishes. jslitmus.on('complete', function(test) { // Output test results currentSet.innerHTML += test + '
'; }); // 'all_complete' fires when all tests have finished. jslitmus.on('all_complete', function() { // Get the results image URL var url = jslitmus.getGoogleChart(); if (currentSet.id === 'small') { currentSet.innerHTML += resultTmpl({size: snippet.length, url: url}); setTimeout(function() { jslitmus.clearAll(); currentSet = document.getElementById('large'); for(var i=0; i<8; i++) { snippet += snippet; } testsetup(snippet); jslitmus.runAll(); }, 10); } else { currentSet.innerHTML += resultTmpl({size: snippet.length, url: url}); } }); // Run it! jslitmus.runAll(); } })();