 
 (defn reagent-class? [c]
   (and (fn? c)
-       (some? (.' c :cljsReactClass))))
+       (some? (.' c :prototype.reagentRender))))
 
 (defn do-render-sub [c]
   (let [f (.' c :reagentRender)

          (:name m)))))

(defn wrap-funs [fmap]
  (let [fun-map (if-some [cf (:componentFunction fmap)]
                  (-> fmap
                      (assoc :reagentRender cf)
                      (dissoc :componentFunction))
                  fmap)
        render-fun (:reagentRender fun-map)
        legacy-render (nil? render-fun)
        render-fun (or render-fun
                       (:render fun-map))
        _ (assert (ifn? render-fun)
                  (str "Render must be a function, not "
                       (pr-str render-fun)))
        name (str (or (:displayName fun-map)
                      (fun-name render-fun)))
        name (if (empty? name)
               (str (gensym "reagent"))
               (clojure.string/replace name #"\$" "."))
        fmap (-> fun-map
                 (assoc :cljsLegacyRender legacy-render
                        :displayName name)
                 (add-render render-fun name))]
    (reduce-kv (fn [m k v]
                 (assoc m k (get-wrapper k v name)))
               {} fmap)))

  (merge obligatory fun-map))

(defn add-render [fun-map render-f name]
  (assoc fun-map
         :reagentRender render-f
         :render (:render static-fns)))

(defn fun-name [f]
  (or (and (fn? f)
