     f))
 
 (defn- get-wrapper [key f name]
-  ;; (when (and name (fn? f) (nil? (aget f "displayName")))
-  ;;   (aset f "displayName" (str name key)))
   (let [wrap (custom-wrapper key f)]
     (when (and wrap f)
       (assert (fn? f)

      ;; reset! doesn't call -notifyWatches unless -watches is set
      (set! (.-watches C) {})
      (when f
        (set! (.-cljsOldState C) (merge (aget "state" C)
                                        #_(.-state C) (f C)))))

    :componentWillReceiveProps
    (fn [C props]

;; tricky. The upside is that we don't have to do any allocations.

(defn- args-of [C]
  (-> C (aget "props") .-cljsArgs))

(defn- props-in-args [args]
  (let [p (nth args 1 nil)]
