whole_func_string: function ws(strings, expr) {
    expr = [];
    for (let i = 1; i < arguments.length; i++) {
      expr.push(arguments[i]);
    }
  
    let res = '';
  
    for (let i = 0; i < strings.length; i++) {
      res += strings[i].replace(wsRgxp, ' ') + (i in expr ? expr[i] : '');
    }
  
    return res;
  }
func_code_string: function ws(strings, expr) {
    expr = [];
    for (let i = 1; i < arguments.length; i++) {
      expr.push(arguments[i]);
    }
  
    let res = '';
  
    for (let i = 0; i < strings.length; i++) {
      res += strings[i].replace(wsRgxp, ' ') + (i in expr ? expr[i] : '');
    }
  
    return res;
  }
func_documentation_string: String tag (for ES6 string templates) for truncate starting whitespaces and eol-s
  
  @param {!Array<string>} strings
  @param {...?} expr
  @return {string}