       (symbol? x)))
 
 (defn hiccup-tag? [x]
-  (or (keyword? x)
-      (symbol? x)
+  (or (named? x)
       (string? x)))
 
 (defn valid-tag? [x]

(def tag-name-cache #js{})

(defn cached-parse [x]
  (if-let [s (obj-get tag-name-cache (name x))]
    s
    (aset tag-name-cache (name x) (parse-tag x))))


    (aget o k)))

(defn cached-prop-name [k]
  (if (named? k)
    (if-some [k' (obj-get prop-name-cache (name k))]
      k'
      (aset prop-name-cache (name k)
            (util/dash-to-camel k)))
    k))

(defn convert-prop-value [x]
  (cond (or (string? x) (number? x) (fn? x)) x
