diff options
author | tomhuda <tomhuda@strobecorp.com> | 2011-05-03 20:38:28 -0700 |
---|---|---|
committer | tomhuda <tomhuda@strobecorp.com> | 2011-05-03 20:38:28 -0700 |
commit | 5d995720069723dbeb270be399e513f54ed3d26d (patch) | |
tree | 4755217d82f3e6dd883394356157785d188d4579 /lib | |
parent | d83e1c74841fb7fc303484e397898195703cef8e (diff) | |
download | handlebars.js-5d995720069723dbeb270be399e513f54ed3d26d.zip handlebars.js-5d995720069723dbeb270be399e513f54ed3d26d.tar.gz handlebars.js-5d995720069723dbeb270be399e513f54ed3d26d.tar.bz2 |
Rename vm.js to compiler.js
Diffstat (limited to 'lib')
-rw-r--r-- | lib/handlebars.js | 2 | ||||
-rw-r--r-- | lib/handlebars/compiler.js (renamed from lib/handlebars/vm.js) | 30 |
2 files changed, 19 insertions, 13 deletions
diff --git a/lib/handlebars.js b/lib/handlebars.js index 2c24dde..b578775 100644 --- a/lib/handlebars.js +++ b/lib/handlebars.js @@ -7,7 +7,7 @@ require("handlebars/ast"); require("handlebars/printer"); require("handlebars/visitor"); -require("handlebars/vm"); +require("handlebars/compiler"); // BEGIN(BROWSER) diff --git a/lib/handlebars/vm.js b/lib/handlebars/compiler.js index 67a9c08..16805f3 100644 --- a/lib/handlebars/vm.js +++ b/lib/handlebars/compiler.js @@ -427,10 +427,12 @@ Handlebars.JavaScriptCompiler = function() {}; container.children = this.environment.children; - return function(context, helpers, partials, data, $depth) { + return function(context, options, $depth) { try { - var args = Array.prototype.slice.call(arguments); - args.unshift(Handlebars); + 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; @@ -693,18 +695,22 @@ Handlebars.JavaScriptCompiler = function() {}; })(Handlebars.Compiler, Handlebars.JavaScriptCompiler); Handlebars.VM = { - programWithDepth: function(fn) { - var args = Array.prototype.slice.call(arguments, 1); + programWithDepth: function(fn, passedHelpers, passedPartials, passedData, $depth) { + var args = Array.prototype.slice.call(arguments, 4); + return function(context, helpers, partials, data) { - args[0] = helpers || args[0]; - args[1] = partials || args[1]; - args[2] = data || args[2]; - return fn.apply(this, [context].concat(args)); + var options = { + helpers: helpers || passedHelpers, + partials: partials || passedPartials, + data: data || passedData + }; + + return fn.apply(this, [context, options].concat(args)); }; }, program: function(fn, helpers, partials, data) { return function(context, h2, p2, d2) { - return fn(context, h2 || helpers, p2 || partials, d2 || data); + return fn(context, {helpers: h2 || helpers, partials: p2 || partials, data: d2 || data}); }; }, noop: function() { return ""; }, @@ -717,10 +723,10 @@ Handlebars.VM = { if(partial === undefined) { throw new Handlebars.Exception("The partial " + name + " could not be found"); } else if(partial instanceof Function) { - return partial(context, helpers, partials); + return partial(context, {helpers: helpers, partials: partials}); } else { partials[name] = Handlebars.VM.compile(partial); - return partials[name](context, helpers, partials); + return partials[name](context, {helpers: helpers, partials: partials}); } } }; |