diff options
author | machty <machty@gmail.com> | 2013-02-06 17:51:47 -0500 |
---|---|---|
committer | machty <machty@gmail.com> | 2013-02-07 02:06:17 -0500 |
commit | a48e32bbf6e1c4cf1b22dc61aca7ee6e7448d46c (patch) | |
tree | ef9e5ff18efc96dd0209837cbf72901893d9533f /lib/handlebars/compiler/compiler.js | |
parent | 448e43c41eaec473f3c6a27ad3a833a41f83f996 (diff) | |
download | handlebars.js-a48e32bbf6e1c4cf1b22dc61aca7ee6e7448d46c.zip handlebars.js-a48e32bbf6e1c4cf1b22dc61aca7ee6e7448d46c.tar.gz handlebars.js-a48e32bbf6e1c4cf1b22dc61aca7ee6e7448d46c.tar.bz2 |
Handlebars.parse/precompile/compile can now be passed an already-compiled Handlebars AST.
Diffstat (limited to 'lib/handlebars/compiler/compiler.js')
-rw-r--r-- | lib/handlebars/compiler/compiler.js | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/handlebars/compiler/compiler.js b/lib/handlebars/compiler/compiler.js index e38f157..dd62b2c 100644 --- a/lib/handlebars/compiler/compiler.js +++ b/lib/handlebars/compiler/compiler.js @@ -1221,23 +1221,23 @@ Handlebars.JavaScriptCompiler = function() {}; })(Handlebars.Compiler, Handlebars.JavaScriptCompiler); -Handlebars.precompile = function(string, options) { - if (typeof string !== 'string') { - throw new Handlebars.Exception("You must pass a string to Handlebars.compile. You passed " + string); +Handlebars.precompile = function(input, options) { + if (!input || (typeof input !== 'string' && input.constructor !== Handlebars.AST.ProgramNode)) { + throw new Handlebars.Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + input); } options = options || {}; if (!('data' in options)) { options.data = true; } - var ast = Handlebars.parse(string); + var ast = Handlebars.parse(input); var environment = new Handlebars.Compiler().compile(ast, options); return new Handlebars.JavaScriptCompiler().compile(environment, options); }; -Handlebars.compile = function(string, options) { - if (typeof string !== 'string') { - throw new Handlebars.Exception("You must pass a string to Handlebars.compile. You passed " + string); +Handlebars.compile = function(input, options) { + if (!input || (typeof input !== 'string' && input.constructor !== Handlebars.AST.ProgramNode)) { + throw new Handlebars.Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + input); } options = options || {}; @@ -1246,7 +1246,7 @@ Handlebars.compile = function(string, options) { } var compiled; function compile() { - var ast = Handlebars.parse(string); + var ast = Handlebars.parse(input); var environment = new Handlebars.Compiler().compile(ast, options); var templateSpec = new Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true); return Handlebars.template(templateSpec); |