                    (.maintain! this max-keys)
                    true)
                  (loop [node (aget children (+ ix 1))]
-                   (if (.-children node)
+                   (if (not (nil? (.-children node)))
                      (recur (aget (.-children node) 0))
                      (do
                        (aset keys ix (aget (.-keys node) 0))

         (dotimes [i (alength iterators)]
           (let [iterator (aget iterators i)]
             (.reset iterator)
             (when (.end? iterator)
               (set! end? true))))
         (dotimes [i (alength seek-key)]
           (aset seek-key i least))

              #js [key val child])
            #js [key val])))
  (maintain! [this max-keys]
             (assert (not (nil? max-keys)))
             (when-not (nil? parent)
               (let [min-keys (js/Math.floor (/ max-keys 2))]
                 (when-not (nil? children)
