code: function parseAttributes(dom, attrs, fn) {
        var this$1 = this;
  
        each(attrs, function (attr) {
          if (!attr) { return false }
  
          var name = attr.name;
          var bool = isBoolAttr(name);
          var expr;
  
          if (contains(REF_DIRECTIVES, name) && dom.tagName.toLowerCase() !== YIELD_TAG) {
            expr =  createRefDirective(dom, this$1, name, attr.value);
          } else if (tmpl.hasExpr(attr.value)) {
            expr = {dom: dom, expr: attr.value, attr: name, bool: bool};
          }
  
          fn(attr, expr);
        });
      }
docs: Calls `fn` for every attribute on an element. If that attr has an expression,
  it is also passed to fn.
  @this Tag
  @param   { HTMLElement } dom - dom node to parse
  @param   { Array } attrs - array of attributes
  @param   { Function } fn - callback to exec on any iteration