summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/handlebars/compiler/compiler.js8
-rw-r--r--spec/qunit_spec.js6
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/handlebars/compiler/compiler.js b/lib/handlebars/compiler/compiler.js
index 7578dd2..1481098 100644
--- a/lib/handlebars/compiler/compiler.js
+++ b/lib/handlebars/compiler/compiler.js
@@ -1035,6 +1035,10 @@ 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);
+ }
+
options = options || {};
var ast = Handlebars.parse(string);
@@ -1043,6 +1047,10 @@ Handlebars.precompile = function(string, 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);
+ }
+
options = options || {};
var compiled;
diff --git a/spec/qunit_spec.js b/spec/qunit_spec.js
index 5c94253..07dde10 100644
--- a/spec/qunit_spec.js
+++ b/spec/qunit_spec.js
@@ -1245,3 +1245,9 @@ test("bug reported by @fat where lambdas weren't being properly resolved", funct
var output = "<strong>This is a slightly more complicated blah.</strong>.\n\nCheck this out:\n\n<ul>\n\n<li class=one>@fat</li>\n\n<li class=two>@dhg</li>\n\n<li class=three>@sayrer</li>\n</ul>.\n\n";
shouldCompileTo(string, data, output);
});
+
+test("Passing falsy values to Handlebars.compile throws an error", function() {
+ shouldThrow(function() {
+ CompilerContext.compile(null);
+ }, "You must pass a string to Handlebars.compile. You passed null");
+});