summaryrefslogtreecommitdiffstats
path: root/lib/handlebars/compiler/compiler.js
diff options
context:
space:
mode:
authorkpdecker <kpdecker@gmail.com>2011-07-30 11:23:24 -0500
committerkpdecker <kpdecker@gmail.com>2011-07-30 11:23:24 -0500
commit59f5331db47c4c6dce1cb82d05f25d08362b14b2 (patch)
tree7591e3da5eed7a35cf57f19684a91af857cde0a1 /lib/handlebars/compiler/compiler.js
parent74bd8cac602dff27123eb94ea7e9522deb498c70 (diff)
downloadhandlebars.js-59f5331db47c4c6dce1cb82d05f25d08362b14b2.zip
handlebars.js-59f5331db47c4c6dce1cb82d05f25d08362b14b2.tar.gz
handlebars.js-59f5331db47c4c6dce1cb82d05f25d08362b14b2.tar.bz2
Phase 2 of precompiled extraction:
Use string representations to pass around the function context
Diffstat (limited to 'lib/handlebars/compiler/compiler.js')
-rw-r--r--lib/handlebars/compiler/compiler.js18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/handlebars/compiler/compiler.js b/lib/handlebars/compiler/compiler.js
index 75f852d..7739f9d 100644
--- a/lib/handlebars/compiler/compiler.js
+++ b/lib/handlebars/compiler/compiler.js
@@ -409,17 +409,19 @@ Handlebars.JavaScriptCompiler = function() {};
if(params.length === 4 && !this.environment.usePartial) { params.pop(); }
- params.push(this.source.join("\n"));
+ var functionSource = 'function(' + params.join(',') + ') {\n ' + this.source.join("\n ") + '}';
- var fn = Function.apply(this, params);
- fn.displayName = "Handlebars.js";
+ Handlebars.log(Handlebars.logger.DEBUG, functionSource + "\n\n");
- Handlebars.log(Handlebars.logger.DEBUG, fn.toString() + "\n\n");
+ var script = ['{\n fn: ', functionSource, ',\n children: [\n '],
+ children = this.environment.children;
+ for (var i = 0, len = children.length; i < len; i++) {
+ script.push(children[i]);
+ if (i < len-1) { script.push(',\n'); }
+ }
+ script.push('\n ]\n}');
- return {
- fn: fn,
- children: this.environment.children
- };
+ return script.join('');
},
appendContent: function(content) {