                   (let [rat (.' c :cljsRatom)]
                     (batch/mark-rendered c)
                     (if (nil? rat)
-                      (ratom/run-in-reaction (get-render c) c "cljsRatom"
+                      (ratom/run-in-reaction #(do-render c) c "cljsRatom"
                                              batch/queue-render rat-opts)
                       (._run rat))))))})
 

(defn shallow-obj-to-map [o]
  (let [ks (js-keys o)
        len (alength ks)]
    (persistent!
     (loop [m (transient {}) i 0]
       (if (< i len)
         (let [k (aget ks i)]
           (recur (assoc! m (keyword k) (aget o k)) (inc i)))
         m)))))

(defn extract-props [v]
  (let [p (nth v 1 nil)]



;;; Rendering

(defn wrap-render [c]
  (let [f (.' c :reagentRender)
