   (assert (> (alength iterators) 0))
   (assert (every? #(= (.-key-len (aget iterators 0)) (.-key-len %)) iterators))
   (if (> (alength iterators) 1)
-    (if (some #(.-end? %) iterators)
+    (if (some #(true? (.-end? %)) iterators)
       (Intersection. iterators true (.-key-len (aget iterators 0)))
       (let [intersection (Intersection. (into-array (sort-by #(.key %) key-compare iterators)) false (.-key-len (aget iterators 0)))]
         (.search intersection 0)

        (aset seek-key moving-key-ix (.key this))
        (.maintain this))
  (up [this]
      (assert (> moving-key-ix 0))
      (aset seek-key moving-key-ix greatest)
      (set! moving-key-ix pinned-key-ix)

  ;; cljs.core.pr_str(cemerick.double_check.quick_check(1000, aurora.btree.iterator_prop)
  (dc/quick-check 5000 (intersection-prop 1))
  ;; cljs.core.pr_str(cemerick.double_check.quick_check(1000, aurora.btree.intersection_prop))
  (dc/quick-check 1000 (trie-tree-prop 1))
  (dc/quick-check 1000 (trie-tree-prop 2))


  (defn f []
