Closed
Description
it('GH-926: Depths and de-dupe', function() {
var context = {
name: 'foo',
data: [
1
],
notData: [
1
]
};
var template = CompilerContext.compile('{{#if dater}}{{#each data}}{{../name}}{{/each}}{{else}}{{#each notData}}{{../name}}{{/each}}{{/if}}');
var result = template(context);
equals(result, 'foo');
});
Fails due to throw:
TypeError: Cannot read property '1' of undefined
at Object.2 (eval at safeEval (/Users/kpdecker/dev/kpdecker/handlebars.js/spec/env/runtime.js:43:36), <anonymous>:8:41)
at prog (dist/handlebars.runtime.js:563:17)
at Object.<anonymous> (dist/handlebars.runtime.js:288:25)
at Object.4 (eval at safeEval (/Users/kpdecker/dev/kpdecker/handlebars.js/spec/env/runtime.js:43:36), <anonymous>:11:25)
at Object.prog [as inverse] (dist/handlebars.runtime.js:563:17)
at Object.<anonymous> (dist/handlebars.runtime.js:323:24)
at Object.main (eval at safeEval (/Users/kpdecker/dev/kpdecker/handlebars.js/spec/env/runtime.js:43:36), <anonymous>:16:26)
at ret (dist/handlebars.runtime.js:532:32)
at Context.<anonymous> (/Users/kpdecker/dev/kpdecker/handlebars.js/spec/regressions.js:162:18)
at callFn (/Users/kpdecker/dev/kpdecker/handlebars.js/node_modules/mocha/lib/runnable.js:223:21)
It appears that the inverse block is generating a deduped function call that does not pass the depths
parameter and causes things to blow up on execution.