Добрый день!
Столкнулся с тем, что добавление модификатора type: 'password' никак не отражается на разметке блока.
Имею такой bemjson:
{
    block: 'input',
    mods: {width: 'available', 'has-clear': true, type: 'password'},
    name: 'password', 
    placeholder: 'Password',
    tabIndex: 2
}
На выходе получаю такой html:
<span class="input input_width_available input_has-clear input_type_password i-bem input_js_inited" data-bem="{"input":{}}">
    <span class="input__box">
        <input class="input__control i-bem input__control_js_inited" name="password" tabindex="2" placeholder="Password">
    </span>
</span>
Полез смотреть в код элемента 'control' в файле input__control.bemhtml.js, и там вижу следующий код:
block('input').elem('control')(
    tag()('input'),
    addAttrs()(function() {
        var input = this._input,
            attrs = {
                id : input.id,
                name : input.name,
                value : input.val,
                maxlength : input.maxLength,
                tabindex : input.tabIndex,
                placeholder : input.placeholder
            };
        input.autocomplete === false && (attrs.autocomplete = 'off');
        this.mods.disabled && (attrs.disabled = 'disabled');
        return attrs;
    })
);
Я полагал, что код, написанный в input_type_password.bemhtml.js
block('input').mod('type', 'password').elem('control').attrs()(function() {
    return this.extend(applyNext(), { type : 'password' });
});
докинет в контекст выполнения шаблона поле 'type' со значением 'password', и это поле мы дернем в шаблоне элемента 'control' как-нибудь так:
attrs = {
    ...
    type: this.type
}
Объясните, пожалуйста, обращение к этому свойству просто забыли написать или я неправильно понимаю процесс работы шаблонизатора?
И если второе, то как мне сделать так, чтобы этот атрибут всё-таки попал в разметку?