Добавил поддержку генераторов.
{template *foo(data)}
<div class="bar">
{forEach data => el}
{apply row(el)}
{yield}
{/}
</div>
{/}
Директива yield будет отрендерена как
yeild __RESULT__;
__RESULT__ = '';
т.е. каждый "тик" (вызов next) будет возвращать кусок отрендеренного шаблона.
Зачем я это добавил: у меня в проекте есть места, где данные из БД возвращаются асинхронными чанками из разных сегментов и сейчас мне приходится ждать пока появятся все данные, затем выполнить шаблон (который вернёт огромную строку, и также может надолго залочить поток, т.к. внутри большой цикл) и уже потом отправлять клиенту.
С использованием генератора можно очень легко преобразовать шаблон, чтобы он также возвращал чанки по фрагментам данных, которые приходят из БД и сразу же отправлял их клиенту. В данной схеме нету опасности залочить поток и с точки зрения конечной производительности наблюдается реальный профит.
Также генераторы позволят легко "дробить" тяжёлый шаблон на куски с помощью setImmediate, чтобы не лочить поток.
ЗЫ: напоминаю, что пока, чтобы юзать генераторы в ноде, то нужно запускать её с флагом --harmony.