diff options
author | tomhuda <tomhuda@strobecorp.com> | 2011-07-07 23:09:33 -0700 |
---|---|---|
committer | tomhuda <tomhuda@strobecorp.com> | 2011-07-07 23:09:33 -0700 |
commit | 059a80661d132b43abf0a314ccaad32d9172d7f0 (patch) | |
tree | 52d5cf5d5871cdea6a5910368cf580b3c437bf6d /lib/handlebars/compiler.js | |
parent | 37e36bf1371f458212db7ee45a18ed163cd329fb (diff) | |
download | handlebars.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.js | 35 |
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);"); }, |