            (fn [next-props next-state]
              (this-as this
                (let [old-state @(state this)
-                     new-state @(aget next-state ":rum/state")]
+                     new-state @(gobj/get next-state ":rum/state")]
                  (or (some #(% old-state new-state) should-update) false)))))
          :componentWillUpdate
          (when-not (empty? will-update)
            (fn [_ next-state]
              (this-as this
-               (let [new-state (aget next-state ":rum/state")]
+               (let [new-state (gobj/get next-state ":rum/state")]
                  (vswap! new-state call-all will-update)))))
          :render
          (fn []

      (merge class-props)
      (->> (util/filter-vals some?))
      (clj->js)
      (js/React.createClass))))


(defn- build-ctor [render mixins display-name]
  (let [class  (build-class render mixins display-name)

  (:require
    [cljsjs.react]
    [cljsjs.react.dom]
    [goog :as goog]
    [goog.object :as gobj]
    [sablono.core]
    [rum.cursor :as cursor]
    [rum.util :as util :refer [collect collect* call-all]]
