summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/handlebars/base.js3
-rw-r--r--spec/partials.js19
2 files changed, 16 insertions, 6 deletions
diff --git a/lib/handlebars/base.js b/lib/handlebars/base.js
index 19139b6..cec2937 100644
--- a/lib/handlebars/base.js
+++ b/lib/handlebars/base.js
@@ -47,6 +47,9 @@ HandlebarsEnvironment.prototype = {
if (toString.call(name) === objectType) {
Utils.extend(this.partials, name);
} else {
+ if (typeof partial === 'undefined') {
+ throw new Exception('Attempting to register a partial as undefined');
+ }
this.partials[name] = partial;
}
},
diff --git a/spec/partials.js b/spec/partials.js
index 9c0be40..c5b8fdc 100644
--- a/spec/partials.js
+++ b/spec/partials.js
@@ -41,11 +41,18 @@ describe('partials', function() {
it("rendering undefined partial throws an exception", function() {
shouldThrow(function() {
- var template = CompilerContext.compile("{{> whatever}}");
- template();
+ var template = CompilerContext.compile("{{> whatever}}");
+ template();
}, Handlebars.Exception, 'The partial whatever could not be found');
});
+ it("registering undefined partial throws an exception", function() {
+ shouldThrow(function() {
+ var undef;
+ handlebarsEnv.registerPartial('undefined_test', undef);
+ }, Handlebars.Exception, 'Attempting to register a partial as undefined');
+ });
+
it("rendering template partial in vm mode throws an exception", function() {
shouldThrow(function() {
var template = CompilerContext.compile("{{> whatever}}");
@@ -64,10 +71,10 @@ describe('partials', function() {
});
it("GH-14: a partial preceding a selector", function() {
- var string = "Dudes: {{>dude}} {{another_dude}}";
- var dude = "{{name}}";
- var hash = {name:"Jeepers", another_dude:"Creepers"};
- shouldCompileToWithPartials(string, [hash, {}, {dude:dude}], true, "Dudes: Jeepers Creepers", "Regular selectors can follow a partial");
+ var string = "Dudes: {{>dude}} {{another_dude}}";
+ var dude = "{{name}}";
+ var hash = {name:"Jeepers", another_dude:"Creepers"};
+ shouldCompileToWithPartials(string, [hash, {}, {dude:dude}], true, "Dudes: Jeepers Creepers", "Regular selectors can follow a partial");
});
it("Partials with slash paths", function() {