diff --git a/lib/js/runtime.sx b/lib/js/runtime.sx index d4f44c36..ecfd6c87 100644 --- a/lib/js/runtime.sx +++ b/lib/js/runtime.sx @@ -2291,8 +2291,13 @@ (fn (v) (let - ((n (if (number? v) v (js-to-number v)))) - (if (>= n 0) (floor n) (- 0 (floor (- 0 n))))))) + ((n (js-to-number v))) + (cond + ((js-number-is-nan n) 0) + ((= n (js-infinity-value)) 0) + ((= n (- 0 (js-infinity-value))) 0) + ((>= n 0) (floor n)) + (else (- 0 (floor (- 0 n)))))))) (define dict-has? (fn (d k) (contains? (keys d) k)))