diff options
-rw-r--r-- | lib/handlebars/base.js | 3 | ||||
-rw-r--r-- | spec/partials.js | 19 |
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() { |