diff --git a/dist/handlebars.js b/dist/handlebars.js index 072ae53a..2ee6432c 100644 --- a/dist/handlebars.js +++ b/dist/handlebars.js @@ -1381,10 +1381,7 @@ Handlebars.JavaScriptCompiler = function() {}; var source = this.mergeSource(); if (!this.isChild) { - source = "if (Handlebars.VERSION !== '"+Handlebars.VERSION+"') {\n"+ - "throw 'Template was compiled with "+Handlebars.VERSION+", but runtime is '+Handlebars.VERSION;\n"+ - "}\n"+ - source; + source = "this.compiledVersion = '"+Handlebars.VERSION+"';\n"+source; } if (asObject) { @@ -2126,12 +2123,17 @@ Handlebars.VM = { } }, programWithDepth: Handlebars.VM.programWithDepth, - noop: Handlebars.VM.noop + noop: Handlebars.VM.noop, + compiledVersion: null }; return function(context, options) { options = options || {}; - return templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data); + var result = templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data); + if (container.compiledVersion !== Handlebars.VERSION) { + throw "Template was compiled with "+(container.compiledVersion || 'unknown version')+", but runtime is "+Handlebars.VERSION; + } + return result; }; }, diff --git a/dist/handlebars.runtime.js b/dist/handlebars.runtime.js index 13d0c78e..0a023eae 100644 --- a/dist/handlebars.runtime.js +++ b/dist/handlebars.runtime.js @@ -249,12 +249,17 @@ Handlebars.VM = { } }, programWithDepth: Handlebars.VM.programWithDepth, - noop: Handlebars.VM.noop + noop: Handlebars.VM.noop, + compiledVersion: null }; return function(context, options) { options = options || {}; - return templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data); + var result = templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data); + if (container.compiledVersion !== Handlebars.VERSION) { + throw "Template was compiled with "+(container.compiledVersion || 'unknown version')+", but runtime is "+Handlebars.VERSION; + } + return result; }; }, diff --git a/lib/handlebars/compiler/compiler.js b/lib/handlebars/compiler/compiler.js index b148bbb9..e38f1575 100644 --- a/lib/handlebars/compiler/compiler.js +++ b/lib/handlebars/compiler/compiler.js @@ -539,10 +539,7 @@ Handlebars.JavaScriptCompiler = function() {}; var source = this.mergeSource(); if (!this.isChild) { - source = "if (Handlebars.VERSION !== '"+Handlebars.VERSION+"') {\n"+ - "throw 'Template was compiled with "+Handlebars.VERSION+", but runtime is '+Handlebars.VERSION;\n"+ - "}\n"+ - source; + source = "this.compiledVersion = '"+Handlebars.VERSION+"';\n"+source; } if (asObject) { diff --git a/lib/handlebars/runtime.js b/lib/handlebars/runtime.js index f29efe45..66b550f0 100644 --- a/lib/handlebars/runtime.js +++ b/lib/handlebars/runtime.js @@ -20,12 +20,17 @@ Handlebars.VM = { } }, programWithDepth: Handlebars.VM.programWithDepth, - noop: Handlebars.VM.noop + noop: Handlebars.VM.noop, + compiledVersion: null }; return function(context, options) { options = options || {}; - return templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data); + var result = templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data); + if (container.compiledVersion !== Handlebars.VERSION) { + throw "Template was compiled with "+(container.compiledVersion || 'unknown version')+", but runtime is "+Handlebars.VERSION; + } + return result; }; },