Skip to content

Depthed lookups fail when program duplicator runs #926

Closed
@kpdecker

Description

@kpdecker
  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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions