code: function updateOpts() {
      var ctx = hasImpl && isLoop ? self : parent || self
  
      // update opts from current DOM attributes
      each(root.attributes, function(el) {
        var val = el.value
        opts[toCamel(el.name)] = tmpl.hasExpr(val) ? tmpl(val, ctx) : val
      })
      // recover those with expressions
      each(Object.keys(attr), function(name) {
        opts[toCamel(name)] = tmpl(attr[name], ctx)
      })
    }
docs: options