Sfoglia il codice sorgente

Fix parsing of empty date string (#1666)

Marko Lahma 1 anno fa
parent
commit
da7cb51e40
2 ha cambiato i file con 11 aggiunte e 0 eliminazioni
  1. 6 0
      Jint.Tests/Runtime/DateTests.cs
  2. 5 0
      Jint/Runtime/DefaultTimeSystem.cs

+ 6 - 0
Jint.Tests/Runtime/DateTests.cs

@@ -107,4 +107,10 @@ public class DateTests
         var parsedDate = _engine.Evaluate("moment().format('yyyy')").ToString();
         Assert.Equal(DateTime.Now.Year.ToString(),parsedDate);
     }
+
+    [Fact]
+    public void CanParseEmptyDate()
+    {
+        Assert.True(double.IsNaN(_engine.Evaluate("Date.parse('')").AsNumber()));
+    }
 }

+ 5 - 0
Jint/Runtime/DefaultTimeSystem.cs

@@ -57,6 +57,11 @@ public class DefaultTimeSystem : ITimeSystem
     {
         epochMilliseconds = long.MinValue;
 
+        if (string.IsNullOrEmpty(date))
+        {
+            return false;
+        }
+
         // special check for large years that always require + or - in front and have 6 digit year
         if ((date[0] == '+'|| date[0] == '-') && date.IndexOf('-', 1) == 7)
         {