use fpclassify to test a float number is zero or nan

This commit is contained in:
cmlchen 2019-06-21 09:40:33 +08:00 committed by Jordan Bayles
parent 5510f14a71
commit b7feb2d493

View File

@ -853,8 +853,8 @@ bool Value::asBool() const {
case uintValue:
return value_.uint_ ? true : false;
case realValue:
// This is kind of strange. Not recommended.
return (value_.real_ != 0.0) ? true : false;
// According to JavaScript language zero or NaN is regarded as false
return std::fpclassify(value_.real_) != FP_ZERO && std::fpclassify(value_.real_) != FP_NAN
default:
break;
}