Jelajahi Sumber

[eval] make Std.parseInt return NaN on invalid input

closes #9904
Simon Krajewski 4 tahun lalu
induk
melakukan
395393eb7d
2 mengubah file dengan 9 tambahan dan 1 penghapusan
  1. 1 1
      src/macro/eval/evalStdLib.ml
  2. 8 0
      tests/unit/src/unit/issues/Issue9904.hx

+ 1 - 1
src/macro/eval/evalStdLib.ml

@@ -2171,7 +2171,7 @@ module StdStd = struct
 	)
 
 	let parseFloat = vfun1 (fun v ->
-		try vfloat (Numeric.parse_float (decode_string v)) with _ -> vnull
+		try vfloat (Numeric.parse_float (decode_string v)) with _ -> vfloat Float.nan
 	)
 
 	let random = vfun1 (fun v ->

+ 8 - 0
tests/unit/src/unit/issues/Issue9904.hx

@@ -0,0 +1,8 @@
+package unit.issues;
+
+class Issue9904 extends unit.Test {
+	function test() {
+		f(Std.parseFloat("a") == null);
+		t(Math.isNaN(Std.parseFloat("a")));
+	}
+}