Handlebars-Net / Handlebars.Net

A real .NET Handlebars engine
MIT License
1.24k stars 214 forks source link

.length no longer works #457

Closed andycnguyen closed 2 years ago

andycnguyen commented 3 years ago

Describe the bug

Calling .length on string data in a template throws HandlebarsUndefinedBindingException (or returns an empty string).

Expected behavior:

Calling .length on string data outputs the length of that string, as it does in HandlebarsJS.

Test to reproduce

[Fact]
public void StringLength()
{
    var handlebars = Handlebars.Create();
    var render = handlebars.Compile("{{str.length}}");
    object data = new { str = "string" };

    var actual = render(data);
    Assert.Equal("6", actual);
}

Other related info

This feature previously worked. I discovered the current problem when attempting to upgrade from 1.11.5.0 to 2.0.8.0.