js-on-sx: parseFloat recognises Infinity prefix
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 21s

This commit is contained in:
2026-05-09 03:13:21 +00:00
parent e5709c5aec
commit a6793fa656
2 changed files with 29 additions and 5 deletions

View File

@@ -4505,11 +4505,33 @@
js-parse-float-prefix
(fn
(s)
(let
((end (js-float-prefix-end s 0 false false false)))
(cond
((= end 0) (js-nan-value))
(else (js-parse-num-safe (js-string-slice s 0 end)))))))
(cond
((js-float-has-infinity-prefix? s 0)
(js-infinity-value))
((and
(>= (len s) 1)
(= (char-at s 0) "+")
(js-float-has-infinity-prefix? s 1))
(js-infinity-value))
((and
(>= (len s) 1)
(= (char-at s 0) "-")
(js-float-has-infinity-prefix? s 1))
(- 0 (js-infinity-value)))
(else
(let
((end (js-float-prefix-end s 0 false false false)))
(cond
((= end 0) (js-nan-value))
(else (js-parse-num-safe (js-string-slice s 0 end)))))))))
(define
js-float-has-infinity-prefix?
(fn
(s i)
(and
(>= (len s) (+ i 8))
(= (js-string-slice s i (+ i 8)) "Infinity"))))
(define
js-float-prefix-end