summaryrefslogtreecommitdiffstats
path: root/lib/handlebars/compiler
diff options
context:
space:
mode:
authorkpdecker <kpdecker@gmail.com>2015-09-23 21:17:57 -0500
committerkpdecker <kpdecker@gmail.com>2015-09-23 21:17:57 -0500
commitfffb5a985f8ff7cd75f2c16b37b69f7ddd3ba9a0 (patch)
treef43a388545445d40e0187db7993c9bf30c4507dd /lib/handlebars/compiler
parent08781798f564a68abee11c74e2b98272657b2a56 (diff)
downloadhandlebars.js-fffb5a985f8ff7cd75f2c16b37b69f7ddd3ba9a0.zip
handlebars.js-fffb5a985f8ff7cd75f2c16b37b69f7ddd3ba9a0.tar.gz
handlebars.js-fffb5a985f8ff7cd75f2c16b37b69f7ddd3ba9a0.tar.bz2
Fix iteration over undefined values
Allow for iteration on undefined values, but special case undefined and null to prevent rendering errors when not running in strict mode. Fixes #1093
Diffstat (limited to 'lib/handlebars/compiler')
-rw-r--r--lib/handlebars/compiler/javascript-compiler.js5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/handlebars/compiler/javascript-compiler.js b/lib/handlebars/compiler/javascript-compiler.js
index d0f206c..bd48e9b 100644
--- a/lib/handlebars/compiler/javascript-compiler.js
+++ b/lib/handlebars/compiler/javascript-compiler.js
@@ -984,13 +984,14 @@ JavaScriptCompiler.prototype = {
setupHelper: function(paramSize, name, blockHelper) {
let params = [],
paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper);
- let foundHelper = this.nameLookup('helpers', name, 'helper');
+ let foundHelper = this.nameLookup('helpers', name, 'helper'),
+ callContext = this.aliasable(`${this.contextName(0)} != null ? ${this.contextName(0)} : {}`);
return {
params: params,
paramsInit: paramsInit,
name: foundHelper,
- callParams: [this.contextName(0)].concat(params)
+ callParams: [callContext].concat(params)
};
},