Skip to content

1.2.2 Faithful Dispatch

Choose a tag to compare

@theodorejb theodorejb released this 06 Apr 03:52
· 22 commits to master since this release

Changed

  • Better aligned compiler and runtime structure with Handlebars.js, fixing numerous edge cases related to helpers and @data variables.

Fixed

  • ../ expressions inside {{else}} blocks of {{#if}}, {{#unless}}, {{#with}}, and sections invoking blockHelperMissing resolved to the wrong context level.
  • A missing helper called via a @data variable or multi-segment path in a subexpression failed to invoke helperMissing.
  • A non-function context property used as a helper (e.g. {{foo "arg"}} where foo is not a closure) incorrectly called helperMissing rather than throwing a distinct error.
  • No error thrown when calling a missing helper via a multi-segment path with arguments (e.g. {{foo.bar "arg"}}).
  • Closures in context data could not be used as block helpers (e.g. {{#fn}}...{{/fn}} where fn is a closure).
  • Closures in context data or @data variables failed to be passed HelperOptions as the last argument in certain cases.
  • Templates with hash arguments on complex paths (e.g. {{foo.bar arg=val}}) were not compiled correctly.
  • Closures in context data were not invoked when accessed via a multi-segment path (e.g. {{foo.bar}}), or via a literal path (e.g. {{"foo"}}) in knownHelpersOnly mode.
  • @data variables incorrectly took priority over helpers with the same name.
  • knownHelpersOnly was not enforced for @data expressions or complex paths used with arguments.