                                  (= "view" (namespace k))
                                  (camelCase (name k)))]
          (aget this "re$view" re-view-var)
-         (get (aget this "re$view" "props") k not-found))))
-
-    ISwap
-    (-swap!
-      ([this f] (.error js/console "[deprecated calling swap! directly on component - use :view/state atom]"))
-      ([this f a] (.error js/console "[deprecated calling swap! directly on component - use :view/state atom]"))
-      ([this f a b] (.error js/console "[deprecated calling swap! directly on component - use :view/state atom]"))
-      ([this f a b xs] (.error js/console "[deprecated calling swap! directly on component - use :view/state atom]")))
-
-    IReset
-    (-reset! [this v] (.error js/console "[deprecated reset! of component - use :view/state atom]"))))
+         (get (aget this "re$view" "props") k not-found))))))
 
 (defn swap-silently!
   "Swap state without causing component to re-render"

    (:initial-state
      :key
      :constructor) f
    (:will-mount :will-unmount :will-receive-state :will-receive-props :will-update)
    (fn [& args]
      (binding [*trigger-state-render* false]
        (this-as this (apply f this args))))
    (if (fn? f)
      (fn [& args]
        (this-as this

  "Return camelCased string, eg. hello-there to helloThere. Does not modify existing case."
  [s]
  (clojure.string/replace s #"-(.)" (fn [[_ match]] (clojure.string/upper-case match))))

(defn dom-node
  "Return DOM node for component"
