summaryrefslogtreecommitdiffstats
path: root/lib/handlebars/compiler.js
diff options
context:
space:
mode:
authortomhuda <tomhuda@strobecorp.com>2011-07-07 23:09:33 -0700
committertomhuda <tomhuda@strobecorp.com>2011-07-07 23:09:33 -0700
commit059a80661d132b43abf0a314ccaad32d9172d7f0 (patch)
tree52d5cf5d5871cdea6a5910368cf580b3c437bf6d /lib/handlebars/compiler.js
parent37e36bf1371f458212db7ee45a18ed163cd329fb (diff)
downloadhandlebars.js-059a80661d132b43abf0a314ccaad32d9172d7f0.zip
handlebars.js-059a80661d132b43abf0a314ccaad32d9172d7f0.tar.gz
handlebars.js-059a80661d132b43abf0a314ccaad32d9172d7f0.tar.bz2
* Remove legacy support for inverse sections as additional parameters.
* Unify inverse and normal block helpers * Make Handlebars.Exception inherit from JS Error
Diffstat (limited to 'lib/handlebars/compiler.js')
-rw-r--r--lib/handlebars/compiler.js35
1 files changed, 10 insertions, 25 deletions
diff --git a/lib/handlebars/compiler.js b/lib/handlebars/compiler.js
index 6f52482..b8a9e04 100644
--- a/lib/handlebars/compiler.js
+++ b/lib/handlebars/compiler.js
@@ -19,7 +19,6 @@ Handlebars.JavaScriptCompiler = function() {};
invokeProgram: 11,
invokePartial: 12,
push: 13,
- invokeInverse: 14,
assignToHash: 15,
pushStringParam: 16
};
@@ -36,7 +35,6 @@ Handlebars.JavaScriptCompiler = function() {};
invokeProgram: 2,
invokePartial: 1,
push: 1,
- invokeInverse: 1,
assignToHash: 1,
pushStringParam: 1
};
@@ -157,10 +155,13 @@ Handlebars.JavaScriptCompiler = function() {};
},
inverse: function(block) {
- this.ID(block.mustache.id);
+ var params = this.setupStackForMustache(block.mustache);
+
var programGuid = this.compileProgram(block.program);
- this.opcode('invokeInverse', programGuid);
+ this.declare('inverse', programGuid);
+
+ this.opcode('invokeProgram', null, params.length);
this.opcode('append');
},
@@ -438,15 +439,11 @@ Handlebars.JavaScriptCompiler = function() {};
container.children = this.environment.children;
return function(context, options, $depth) {
- try {
- options = options || {};
- var args = [Handlebars, context, options.helpers, options.partials, options.data];
- var depth = Array.prototype.slice.call(arguments, 2);
- args = args.concat(depth);
- return container.render.apply(container, args);
- } catch(e) {
- throw e;
- }
+ options = options || {};
+ var args = [Handlebars, context, options.helpers, options.partials, options.data];
+ var depth = Array.prototype.slice.call(arguments, 2);
+ args = args.concat(depth);
+ return container.render.apply(container, args);
};
},
@@ -565,11 +562,6 @@ Handlebars.JavaScriptCompiler = function() {};
params.push('tmp1');
- // TODO: This is legacy behavior. Deprecate and remove.
- if(inverse) {
- params.push(inverse);
- }
-
this.populateCall(params, id, helperId || id, fn);
},
@@ -583,13 +575,6 @@ Handlebars.JavaScriptCompiler = function() {};
fn.call(this, nextStack, helperMissingString, id);
},
- invokeInverse: function(guid) {
- var program = this.programExpression(guid);
-
- var blockMissingParams = ["context", this.topStack(), "this.noop", program];
- this.pushStack("helpers.blockHelperMissing.call(" + blockMissingParams.join(", ") + ")");
- },
-
invokePartial: function(context) {
this.pushStack("this.invokePartial(" + this.nameLookup('partials', context, 'partial') + ", '" + context + "', " + this.popStack() + ", helpers, partials);");
},