From 87d957fdf126ee217fc55911779909a18bfe9cbf Mon Sep 17 00:00:00 2001 From: lit Date: Fri, 13 Mar 2026 03:26:38 +0800 Subject: [PATCH] Fix #25597; parseFloat lost sign of -NaN (#25598) --- lib/system/jssys.nim | 2 +- lib/system/strmantle.nim | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/system/jssys.nim b/lib/system/jssys.nim index 96f35c3c0c..707fbbf541 100644 --- a/lib/system/jssys.nim +++ b/lib/system/jssys.nim @@ -735,7 +735,7 @@ proc nimParseBiggestFloat(s: openarray[char], number: var BiggestFloat): int {.c if s[i+1] == 'A' or s[i+1] == 'a': if s[i+2] == 'N' or s[i+2] == 'n': if s[i+3] notin IdentChars: - number = NaN + number = if sign: -NaN else: NaN return i+3 return 0 if s[i] == 'I' or s[i] == 'i': diff --git a/lib/system/strmantle.nim b/lib/system/strmantle.nim index 92a8653f2a..793c3c4a35 100644 --- a/lib/system/strmantle.nim +++ b/lib/system/strmantle.nim @@ -117,7 +117,7 @@ proc nimParseBiggestFloat(s: openArray[char], number: var BiggestFloat, if s[i+1] == 'A' or s[i+1] == 'a': if s[i+2] == 'N' or s[i+2] == 'n': if i+3 >= s.len or s[i+3] notin IdentChars: - number = NaN + number = if sign < 0: -NaN else: NaN return i+3 return 0