<commit_before>(function(Handosntable){
  Handsontable.PasswordRenderer = function (instance, TD, row, col, prop, value, cellProperties) {
    Handsontable.TextRenderer.apply(this, arguments);

    value = TD.innerHTML;

    var hash;
    var hashLength = cellProperties.hashLength || value.length;
    var hashSymbol = cellProperties.hashSymbol || '*';

    for( hash = ''; hash.length < hashLength; hash += hashSymbol);

    instance.view.wt.wtDom.fastInnerText(TD, hash);

  };
})(Handsontable);<commit_msg>Hash symbol can know be any char sequence or even HTML code.<commit_after>(function(Handosntable){
  Handsontable.PasswordRenderer = function (instance, TD, row, col, prop, value, cellProperties) {
    Handsontable.TextRenderer.apply(this, arguments);

    value = TD.innerHTML;

    var hash;
    var hashLength = cellProperties.hashLength || value.length;
    var hashSymbol = cellProperties.hashSymbol || '*';

    for( hash = ''; hash.split(hashSymbol).length - 1 < hashLength; hash += hashSymbol);

    instance.view.wt.wtDom.fastInnerHTML(TD, hash);

  };
})(Handsontable);
{'fraction_non_alphanumeric': 0.13131313131313133, 'fraction_numerical': 0.0009182736455463728, 'mean_word_length': 4.369458128078818, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3377949', 'n_tokens_mistral': 334, 'n_tokens_neox': 318, 'n_words': 75}