Fix string to number conversion
authorLars Knoll <lars.knoll@digia.com>
Thu, 13 Dec 2012 00:53:13 +0000 (01:53 +0100)
committerSimon Hausmann <simon.hausmann@digia.com>
Wed, 12 Dec 2012 23:05:20 +0000 (00:05 +0100)
Change-Id: Ib261bc61a5fd6ed99292a5021b173330b2fd96e7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
qmljs_runtime.cpp

index 1768cbf..21aa1c2 100644 (file)
@@ -434,7 +434,8 @@ int __qmljs_string_length(ExecutionContext *, String *string)
 
 double __qmljs_string_to_number(ExecutionContext *, String *string)
 {
-    const QString s = string->toQString();
+    QString s = string->toQString();
+    s = s.trimmed();
     if (s.startsWith(QLatin1String("0x")) || s.startsWith(QLatin1String("0X")))
         return s.toLong(0, 16);
     bool ok;
@@ -443,8 +444,10 @@ double __qmljs_string_to_number(ExecutionContext *, String *string)
     const char *end = 0;
     double d = qstrtod(begin, &end, &ok);
     if (end - begin != ba.size()) {
-        if (ba == "Infinity")
+        if (ba == "Infinity" || ba == "+Infinity")
             d = INFINITY;
+        else if (ba == "-Infinity")
+            d = -INFINITY;
         else
             d = nan("");
     }