Bladeren bron

Fix bug in number to string conversion. (#369)

Fixes #362
RhinoDevel 8 jaren geleden
bovenliggende
commit
458698df5c
2 gewijzigde bestanden met toevoegingen van 12 en 1 verwijderingen
  1. 11 0
      Jint.Tests/Runtime/EngineTests.cs
  2. 1 1
      Jint/Native/Number/NumberPrototype.cs

+ 11 - 0
Jint.Tests/Runtime/EngineTests.cs

@@ -1880,5 +1880,16 @@ namespace Jint.Tests.Runtime
 
 			Assert.True(result);
         }
+	
+        [Fact]
+        public void ShouldStringifyNumWithoutV8DToA()
+        {
+	    // 53.6841659 cannot be converted by V8's DToA => "old" DToA code will be used.
+	
+            var engine = new Engine();
+            Native.JsValue val = engine.Execute("JSON.stringify(53.6841659)").GetCompletionValue();
+
+            Assert.True(val.AsString() == "53.6841659");
+        }
 	}
 }

+ 1 - 1
Jint/Native/Number/NumberPrototype.cs

@@ -295,7 +295,7 @@ namespace Jint.Native.Number
             // 123.4 s=1234, k=4, n=3
             // 1234000 s = 1234, k=4, n=7
             string s = null;
-            var rFormat = m.ToString("r");
+            var rFormat = m.ToString("r", CultureInfo.InvariantCulture);
             if (rFormat.IndexOf("e", StringComparison.OrdinalIgnoreCase) == -1)
             {
                 s = rFormat.Replace(".", "").TrimStart('0').TrimEnd('0');