js-on-sx: parseFloat recognises Infinity prefix
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 21s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 21s
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user