Update specs and code so that the function passed to block helpers has the same API as regular compiled templates

This commit is contained in:
tomhuda
2011-05-04 00:03:50 -07:00
parent 81071dd22c
commit 60040e60fb
3 changed files with 19 additions and 11 deletions
+16 -8
View File
@@ -695,22 +695,30 @@ Handlebars.JavaScriptCompiler = function() {};
})(Handlebars.Compiler, Handlebars.JavaScriptCompiler);
Handlebars.VM = {
programWithDepth: function(fn, passedHelpers, passedPartials, passedData, $depth) {
programWithDepth: function(fn, helpers, partials, data, $depth) {
var args = Array.prototype.slice.call(arguments, 4);
return function(context, helpers, partials, data) {
var options = {
helpers: helpers || passedHelpers,
partials: partials || passedPartials,
data: data || passedData
return function(context, options) {
options = options || {};
options = {
helpers: options.helpers || helpers,
partials: options.partials || partials,
data: options.data || data
};
return fn.apply(this, [context, options].concat(args));
};
},
program: function(fn, helpers, partials, data) {
return function(context, h2, p2, d2) {
return fn(context, {helpers: h2 || helpers, partials: p2 || partials, data: d2 || data});
return function(context, options) {
options = options || {};
return fn(context, {
helpers: options.helpers || helpers,
partials: options.partials || partials,
data: options.data || data
});
};
},
noop: function() { return ""; },