소스 검색

Fix parsing of empty date string (#1666)

Marko Lahma 1 년 전
부모
커밋
da7cb51e40
2개의 변경된 파일11개의 추가작업 그리고 0개의 파일을 삭제
  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();
         var parsedDate = _engine.Evaluate("moment().format('yyyy')").ToString();
         Assert.Equal(DateTime.Now.Year.ToString(),parsedDate);
         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;
         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
         // 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)
         if ((date[0] == '+'|| date[0] == '-') && date.IndexOf('-', 1) == 7)
         {
         {