diff --git a/deps/v8/src/torque/torque-parser.cc b/deps/v8/src/torque/torque-parser.cc index 150b1e931790731..46b4c5c91572676 100644 --- a/deps/v8/src/torque/torque-parser.cc +++ b/deps/v8/src/torque/torque-parser.cc @@ -1836,14 +1836,15 @@ base::Optional MakeNumberLiteralExpression( #if defined(V8_OS_SOLARIS) // stod() on Solaris does not currently support hex strings. Use strtol() // specifically for hex literals until stod() support is available. - if (number.find("0x") || number.find("0X")) { - value = static_cast(strtol(number.c_str(), nullptr, 0)); - } else { + if (number.find("0x") == std::string::npos && + number.find("0X") == std::string::npos) { value = std::stod(number); + } else { + value = static_cast(strtol(number.c_str(), nullptr, 0)); } #else value = std::stod(number); -#endif // !defined(V8_OS_SOLARIS) +#endif // !defined(V8_OS_SOLARIS) } catch (const std::out_of_range&) { Error("double literal out-of-range").Throw(); }