Skip to content

Commit 610688c

Browse files
ike709ike709
andauthored
Fix stringifying infinity (#2112)
Co-authored-by: ike709 <ike709@github.com>
1 parent b9bfd6a commit 610688c

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

Content.Tests/DMProject/Broken Tests/Expression/Constants/numeral_inf.dm

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
/proc/RunTest()
3+
var/a = 1#INF
4+
var/b = -1#INF
5+
var/c = -1#IND
6+
ASSERT("[a]" == "inf")
7+
ASSERT("[b]" == "-inf")
8+
ASSERT("[c]" == "nan")

OpenDreamRuntime/DreamValue.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,11 @@ public string Stringify() {
362362
case DreamValueType.Float:
363363
var floatValue = MustGetValueAsFloat();
364364

365+
if (float.IsInfinity(floatValue)) {
366+
var str = float.IsPositiveInfinity(floatValue) ? "inf" : "-inf";
367+
return str;
368+
}
369+
365370
if (floatValue > 16777216f) {
366371
return floatValue.ToString("g6");
367372
}
@@ -371,6 +376,8 @@ public string Stringify() {
371376
return floatValue.ToString("g8");
372377
}
373378

379+
if (float.IsNaN(floatValue)) return "nan";
380+
374381
return floatValue.ToString("g6");
375382

376383
case DreamValueType.DreamResource:

0 commit comments

Comments
 (0)