cljs.math/next-up

functionsince v1.11.50Edit
(next-up d)

Source docstring:
Returns the adjacent double of d in the direction of ##Inf.
If d is ##NaN => ##NaN
If d is ##Inf => ##Inf
If d is zero => Number/MIN_VALUE
See: https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#nextUp-double-
Source code @ clojurescript:src/main/cljs/cljs/math.cljs
(defn ^number next-up
  {:added "1.11.10"}
  [d]
  ;; Use a single conditional and handle the likely cases first
  (if (< d js/Number.POSITIVE_INFINITY)
    (let [a (js/ArrayBuffer. 8)
          f (js/Float64Array. a)
          i (js/Uint32Array. a)
          ;; Add +0.0 to get rid of a -0.0 (+0.0 + -0.0 => +0.0)
          _ (aset f 0 (+ d 0.0))
          ht (aget i HI)
          lt (aget i LO)
          [hr lr] (if (zero? (bit-and ht INT32-NON-SIGN-BIT))
                    (add64 ht lt 0 1)
                    (add64 ht lt 0xFFFFFFFF 0xFFFFFFFF))]
      (aset i HI hr)
      (aset i LO lr)
      (aget f 0))
    ;; d is NaN or +Infinity
    d))