Replace qIsNaN usage with std::isnan, which is often faster.

Change-Id: Ie4d16fcdb575ca168d5b58978c5a510acf0cd1ca
std::isnan is often a compiler intrinsic.
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
Erik Verbruggen 2012-11-28 13:47:20 +01:00 committed by Lars Knoll
parent 803f57d538
commit 97a281d4b3
2 changed files with 34 additions and 34 deletions

View File

@ -68,7 +68,7 @@ static inline Value callFunction(ExecutionContext *context, Value thisObject, Fu
QString numberToString(double num, int radix = 10) QString numberToString(double num, int radix = 10)
{ {
if (qIsNaN(num)) { if (std::isnan(num)) {
return QStringLiteral("NaN"); return QStringLiteral("NaN");
} else if (qIsInf(num)) { } else if (qIsInf(num)) {
return QLatin1String(num < 0 ? "-Infinity" : "Infinity"); return QLatin1String(num < 0 ? "-Infinity" : "Infinity");

View File

@ -436,7 +436,7 @@ static inline double ParseString(const QString &s)
*/ */
static inline QDateTime ToDateTime(double t, Qt::TimeSpec spec) static inline QDateTime ToDateTime(double t, Qt::TimeSpec spec)
{ {
if (qIsNaN(t)) if (std::isnan(t))
return QDateTime(); return QDateTime();
if (spec == Qt::LocalTime) if (spec == Qt::LocalTime)
t = LocalTime(t); t = LocalTime(t);
@ -452,7 +452,7 @@ static inline QDateTime ToDateTime(double t, Qt::TimeSpec spec)
static inline QString ToString(double t) static inline QString ToString(double t)
{ {
if (qIsNaN(t)) if (std::isnan(t))
return QStringLiteral("Invalid Date"); return QStringLiteral("Invalid Date");
QString str = ToDateTime(t, Qt::LocalTime).toString() + QStringLiteral(" GMT"); QString str = ToDateTime(t, Qt::LocalTime).toString() + QStringLiteral(" GMT");
double tzoffset = LocalTZA + DaylightSavingTA(t); double tzoffset = LocalTZA + DaylightSavingTA(t);
@ -472,7 +472,7 @@ static inline QString ToString(double t)
static inline QString ToUTCString(double t) static inline QString ToUTCString(double t)
{ {
if (qIsNaN(t)) if (std::isnan(t))
return QStringLiteral("Invalid Date"); return QStringLiteral("Invalid Date");
return ToDateTime(t, Qt::UTC).toString() + QStringLiteral(" GMT"); return ToDateTime(t, Qt::UTC).toString() + QStringLiteral(" GMT");
} }
@ -863,7 +863,7 @@ Value StringPrototype::method_lastIndexOf(ExecutionContext *ctx)
Value posArg = ctx->argument(1); Value posArg = ctx->argument(1);
double position = __qmljs_to_number(posArg, ctx); double position = __qmljs_to_number(posArg, ctx);
if (qIsNaN(position)) if (std::isnan(position))
position = +qInf(); position = +qInf();
else else
position = trunc(position); position = trunc(position);
@ -969,10 +969,10 @@ Value StringPrototype::method_substring(ExecutionContext *ctx)
if (ctx->argumentCount() > 1) if (ctx->argumentCount() > 1)
end = ctx->argument(1).toInteger(ctx); end = ctx->argument(1).toInteger(ctx);
if (qIsNaN(start) || start < 0) if (std::isnan(start) || start < 0)
start = 0; start = 0;
if (qIsNaN(end) || end < 0) if (std::isnan(end) || end < 0)
end = 0; end = 0;
if (start > length) if (start > length)
@ -1086,7 +1086,7 @@ Value NumberPrototype::method_toString(ExecutionContext *ctx)
} }
double num = thisObject->value.asDouble(); double num = thisObject->value.asDouble();
if (qIsNaN(num)) { if (std::isnan(num)) {
return Value::fromString(ctx, QStringLiteral("NaN")); return Value::fromString(ctx, QStringLiteral("NaN"));
} else if (qIsInf(num)) { } else if (qIsInf(num)) {
return Value::fromString(ctx, QLatin1String(num < 0 ? "-Infinity" : "Infinity")); return Value::fromString(ctx, QLatin1String(num < 0 ? "-Infinity" : "Infinity"));
@ -1158,12 +1158,12 @@ Value NumberPrototype::method_toFixed(ExecutionContext *ctx)
if (ctx->argumentCount() > 0) if (ctx->argumentCount() > 0)
fdigits = ctx->argument(0).toInteger(ctx); fdigits = ctx->argument(0).toInteger(ctx);
if (qIsNaN(fdigits)) if (std::isnan(fdigits))
fdigits = 0; fdigits = 0;
double v = thisObject->value.asDouble(); double v = thisObject->value.asDouble();
QString str; QString str;
if (qIsNaN(v)) if (std::isnan(v))
str = QString::fromLatin1("NaN"); str = QString::fromLatin1("NaN");
else if (qIsInf(v)) else if (qIsInf(v))
str = QString::fromLatin1(v < 0 ? "-Infinity" : "Infinity"); str = QString::fromLatin1(v < 0 ? "-Infinity" : "Infinity");
@ -2067,7 +2067,7 @@ Value DatePrototype::method_getTime(ExecutionContext *ctx)
Value DatePrototype::method_getYear(ExecutionContext *ctx) Value DatePrototype::method_getYear(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = YearFromTime(LocalTime(t)) - 1900; t = YearFromTime(LocalTime(t)) - 1900;
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2075,7 +2075,7 @@ Value DatePrototype::method_getYear(ExecutionContext *ctx)
Value DatePrototype::method_getFullYear(ExecutionContext *ctx) Value DatePrototype::method_getFullYear(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = YearFromTime(LocalTime(t)); t = YearFromTime(LocalTime(t));
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2083,7 +2083,7 @@ Value DatePrototype::method_getFullYear(ExecutionContext *ctx)
Value DatePrototype::method_getUTCFullYear(ExecutionContext *ctx) Value DatePrototype::method_getUTCFullYear(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = YearFromTime(t); t = YearFromTime(t);
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2091,7 +2091,7 @@ Value DatePrototype::method_getUTCFullYear(ExecutionContext *ctx)
Value DatePrototype::method_getMonth(ExecutionContext *ctx) Value DatePrototype::method_getMonth(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = MonthFromTime(LocalTime(t)); t = MonthFromTime(LocalTime(t));
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2099,7 +2099,7 @@ Value DatePrototype::method_getMonth(ExecutionContext *ctx)
Value DatePrototype::method_getUTCMonth(ExecutionContext *ctx) Value DatePrototype::method_getUTCMonth(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = MonthFromTime(t); t = MonthFromTime(t);
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2107,7 +2107,7 @@ Value DatePrototype::method_getUTCMonth(ExecutionContext *ctx)
Value DatePrototype::method_getDate(ExecutionContext *ctx) Value DatePrototype::method_getDate(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = DateFromTime(LocalTime(t)); t = DateFromTime(LocalTime(t));
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2115,7 +2115,7 @@ Value DatePrototype::method_getDate(ExecutionContext *ctx)
Value DatePrototype::method_getUTCDate(ExecutionContext *ctx) Value DatePrototype::method_getUTCDate(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = DateFromTime(t); t = DateFromTime(t);
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2123,7 +2123,7 @@ Value DatePrototype::method_getUTCDate(ExecutionContext *ctx)
Value DatePrototype::method_getDay(ExecutionContext *ctx) Value DatePrototype::method_getDay(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = WeekDay(LocalTime(t)); t = WeekDay(LocalTime(t));
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2131,7 +2131,7 @@ Value DatePrototype::method_getDay(ExecutionContext *ctx)
Value DatePrototype::method_getUTCDay(ExecutionContext *ctx) Value DatePrototype::method_getUTCDay(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = WeekDay(t); t = WeekDay(t);
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2139,7 +2139,7 @@ Value DatePrototype::method_getUTCDay(ExecutionContext *ctx)
Value DatePrototype::method_getHours(ExecutionContext *ctx) Value DatePrototype::method_getHours(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = HourFromTime(LocalTime(t)); t = HourFromTime(LocalTime(t));
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2147,7 +2147,7 @@ Value DatePrototype::method_getHours(ExecutionContext *ctx)
Value DatePrototype::method_getUTCHours(ExecutionContext *ctx) Value DatePrototype::method_getUTCHours(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = HourFromTime(t); t = HourFromTime(t);
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2155,7 +2155,7 @@ Value DatePrototype::method_getUTCHours(ExecutionContext *ctx)
Value DatePrototype::method_getMinutes(ExecutionContext *ctx) Value DatePrototype::method_getMinutes(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = MinFromTime(LocalTime(t)); t = MinFromTime(LocalTime(t));
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2163,7 +2163,7 @@ Value DatePrototype::method_getMinutes(ExecutionContext *ctx)
Value DatePrototype::method_getUTCMinutes(ExecutionContext *ctx) Value DatePrototype::method_getUTCMinutes(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = MinFromTime(t); t = MinFromTime(t);
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2171,7 +2171,7 @@ Value DatePrototype::method_getUTCMinutes(ExecutionContext *ctx)
Value DatePrototype::method_getSeconds(ExecutionContext *ctx) Value DatePrototype::method_getSeconds(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = SecFromTime(LocalTime(t)); t = SecFromTime(LocalTime(t));
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2179,7 +2179,7 @@ Value DatePrototype::method_getSeconds(ExecutionContext *ctx)
Value DatePrototype::method_getUTCSeconds(ExecutionContext *ctx) Value DatePrototype::method_getUTCSeconds(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = SecFromTime(t); t = SecFromTime(t);
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2187,7 +2187,7 @@ Value DatePrototype::method_getUTCSeconds(ExecutionContext *ctx)
Value DatePrototype::method_getMilliseconds(ExecutionContext *ctx) Value DatePrototype::method_getMilliseconds(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = msFromTime(LocalTime(t)); t = msFromTime(LocalTime(t));
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2195,7 +2195,7 @@ Value DatePrototype::method_getMilliseconds(ExecutionContext *ctx)
Value DatePrototype::method_getUTCMilliseconds(ExecutionContext *ctx) Value DatePrototype::method_getUTCMilliseconds(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = msFromTime(t); t = msFromTime(t);
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2203,7 +2203,7 @@ Value DatePrototype::method_getUTCMilliseconds(ExecutionContext *ctx)
Value DatePrototype::method_getTimezoneOffset(ExecutionContext *ctx) Value DatePrototype::method_getTimezoneOffset(ExecutionContext *ctx)
{ {
double t = getThisDate(ctx); double t = getThisDate(ctx);
if (! qIsNaN(t)) if (! std::isnan(t))
t = (t - LocalTime(t)) / msPerMinute; t = (t - LocalTime(t)) / msPerMinute;
return Value::fromDouble(t); return Value::fromDouble(t);
} }
@ -2393,13 +2393,13 @@ Value DatePrototype::method_setYear(ExecutionContext *ctx)
ctx->throwTypeError(); ctx->throwTypeError();
double t = self->value.asDouble(); double t = self->value.asDouble();
if (qIsNaN(t)) if (std::isnan(t))
t = 0; t = 0;
else else
t = LocalTime(t); t = LocalTime(t);
double year = ctx->argument(0).toNumber(ctx); double year = ctx->argument(0).toNumber(ctx);
double r; double r;
if (qIsNaN(year)) { if (std::isnan(year)) {
r = qSNaN(); r = qSNaN();
} else { } else {
if ((Value::toInteger(year) >= 0) && (Value::toInteger(year) <= 99)) if ((Value::toInteger(year) >= 0) && (Value::toInteger(year) <= 99))
@ -2833,7 +2833,7 @@ Value MathObject::method_max(ExecutionContext *ctx)
double mx = -qInf(); double mx = -qInf();
for (unsigned i = 0; i < ctx->argumentCount(); ++i) { for (unsigned i = 0; i < ctx->argumentCount(); ++i) {
double x = ctx->argument(i).toNumber(ctx); double x = ctx->argument(i).toNumber(ctx);
if (x > mx || qIsNaN(x)) if (x > mx || std::isnan(x))
mx = x; mx = x;
} }
return Value::fromDouble(mx); return Value::fromDouble(mx);
@ -2845,7 +2845,7 @@ Value MathObject::method_min(ExecutionContext *ctx)
for (unsigned i = 0; i < ctx->argumentCount(); ++i) { for (unsigned i = 0; i < ctx->argumentCount(); ++i) {
double x = ctx->argument(i).toNumber(ctx); double x = ctx->argument(i).toNumber(ctx);
if ((x == 0 && mx == x && copySign(1.0, x) == -1.0) if ((x == 0 && mx == x && copySign(1.0, x) == -1.0)
|| (x < mx) || qIsNaN(x)) { || (x < mx) || std::isnan(x)) {
mx = x; mx = x;
} }
} }
@ -2857,12 +2857,12 @@ Value MathObject::method_pow(ExecutionContext *ctx)
double x = ctx->argument(0).toNumber(ctx); double x = ctx->argument(0).toNumber(ctx);
double y = ctx->argument(1).toNumber(ctx); double y = ctx->argument(1).toNumber(ctx);
if (qIsNaN(y)) if (std::isnan(y))
return Value::fromDouble(qSNaN()); return Value::fromDouble(qSNaN());
if (y == 0) { if (y == 0) {
return Value::fromDouble(1); return Value::fromDouble(1);
} else if (((x == 1) || (x == -1)) && qIsInf(y)) { } else if (((x == 1) || (x == -1)) && std::isinf(y)) {
return Value::fromDouble(qSNaN()); return Value::fromDouble(qSNaN());
} else if (((x == 0) && copySign(1.0, x) == 1.0) && (y < 0)) { } else if (((x == 0) && copySign(1.0, x) == 1.0) && (y < 0)) {
return Value::fromDouble(qInf()); return Value::fromDouble(qInf());