   (or (hiccup-tag? x)
       (ifn? x)))
 
-(defn to-js-val [v]
-  (cond
-   (or (string? v) (number? v)) v
-   (implements? INamed v) (name v)
-   (coll? v) (clj->js v)
-   (ifn? v) (fn [& args] (apply v args))
-   :else v))
-
 
 ;;; Props conversion
 

    (aget o k)))

(defn cached-prop-name [k]
  (if (or (string? k)
          (not (implements? INamed k)))
    k
    (if-let [k' (obj-get prop-name-cache (name k))]
      k'

                 (string/replace class #"\." " "))]
    (assert tag (str "Unknown tag: '" hiccup-tag "'"))
    #js{:name tag
        :id id
        :className class'}))

