Merge remote-tracking branch 'origin/5.4' into 5.5
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Tue, 3 Mar 2015 17:21:56 +0000 (18:21 +0100)
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Tue, 3 Mar 2015 17:21:56 +0000 (18:21 +0100)
Conflicts:
src/qml/jsruntime/qv4numberobject.cpp

Change-Id: I4e66a03ef4d99cec192c9da30c028fd8c1f4ac0d

1  2 
src/qml/jsruntime/qv4numberobject.cpp
src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
src/quick/scenegraph/qsgthreadedrenderloop.cpp
src/quick/scenegraph/qsgthreadedrenderloop_p.h
tests/auto/qml/qjsengine/tst_qjsengine.cpp

@@@ -204,11 -202,17 +204,17 @@@ ReturnedValue NumberPrototype::method_t
          str = QString::fromLatin1("NaN");
      else if (qIsInf(v))
          str = QString::fromLatin1(v < 0 ? "-Infinity" : "Infinity");
-     else if (v < 1.e21)
-         str = QString::number(v, 'f', int (fdigits));
-     else
+     else if (v < 1.e21) {
+         char buf[100];
+         double_conversion::StringBuilder builder(buf, sizeof(buf));
+         double_conversion::DoubleToStringConverter::EcmaScriptConverter().ToFixed(v, fdigits, &builder);
+         str = QString::fromLatin1(builder.Finalize());
+         // At some point, the 3rd party double-conversion code should be moved to qtcore.
+         // When that's done, we can use:
+ //        str = QString::number(v, 'f', int (fdigits));
+     } else
 -        return RuntimeHelpers::stringFromNumber(ctx, v)->asReturnedValue();
 -    return ctx->d()->engine->newString(str)->asReturnedValue();
 +        return RuntimeHelpers::stringFromNumber(ctx->engine(), v)->asReturnedValue();
 +    return scope.engine->newString(str)->asReturnedValue();
  }
  
  ReturnedValue NumberPrototype::method_toExponential(CallContext *ctx)
@@@ -174,8 -173,8 +174,9 @@@ private slots
  
      void privateMethods();
  
 +    void engineForObject();
      void intConversion_QTBUG43309();
+     void toFixed();
  
  signals:
      void testSignal();