Skip to content

Lambda return values are only compiled with immediate context #219

@dpatti

Description

@dpatti

Take this example:

var identity = function(a){ return a; };

var template =
  "{{#one}}" +
    "Two: {{#i}}{{two}}{{/i}}" +
  "{{/one}}";

var context = {
  one: {},
  two: 2,
  i: function(){ 
    return identity;
  }
};

console.log(hogan.compile(template).render(context));

If we run this as above, we get Two:. If we replace the {{#i}}{{two}}{{/i}} section with just {{two}}, we get the expected output of Two: 2. This seems unnatural to me and maybe even under-defined in the mustache spec, but is this the intended behavior?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions