5#ifndef V8_NUMBERS_CONVERSIONS_H_
6#define V8_NUMBERS_CONVERSIONS_H_
22class SharedStringAccessGuardIfNeeded;
92 if (!(
x >= INT_MIN))
return INT_MIN;
93 if (
x > INT_MAX)
return INT_MAX;
94 return static_cast<int>(
x);
104 return static_cast<int32_t
>(
x);
113 return static_cast<double>(
x);
120 return static_cast<double>(
x);
156 double empty_string_val = 0);
158 double empty_string_val = 0);
161 double empty_string_val = 0);
186 DirectHandle<String>
string);
193template <
typename IsolateT>
195MaybeHandle<BigInt>
BigIntLiteral(IsolateT* isolate,
const char*
string);
261 double empty_string_val);
268 LocalIsolate* isolate, DirectHandle<String>
object,
269 uint32_t max_length_for_conversion = 23);
273 LocalIsolate* isolate, DirectHandle<String>
object,
int radix);
282 Tagged<String> string, SharedStringAccessGuardIfNeeded& access_guard);
#define EXPORT_TEMPLATE_DECLARE(export)
ZoneVector< RpoNumber > & result
FunctionLiteral * literal
V8_INLINE Dest bit_cast(Source const &source)
bool IsUint32Double(double value)
uint32_t DoubleToUint32(double x)
int32_t DoubleToInt32_NoInline(double x)
constexpr uint64_t kFP64SignMask
std::optional< double > TryStringToDouble(LocalIsolate *isolate, DirectHandle< String > object, uint32_t max_length_for_conversion)
constexpr int kDoubleToPrecisionMaxChars
uint32_t PositiveNumberToUint32(Tagged< Object > number)
constexpr uint32_t kFP32SubnormalThresholdOfFP16
bool DoubleToUint32IfEqualToSelf(double value, uint32_t *uint32_value)
double OctalStringToDouble(base::Vector< const uint8_t > str)
bool DoubleToSmiInteger(double value, int *smi_int_value)
double FlatStringToDouble(Tagged< String > string, ConversionFlag flag, double empty_string_val)
bool IsSmiDouble(double value)
constexpr uint64_t kFP64ExponentBias
double HexStringToDouble(base::Vector< const uint8_t > str)
double StringToInt(Isolate *isolate, DirectHandle< String > string, int radix)
unsigned int FastD2UI(double x)
constexpr uint32_t kFP32MinFP16ZeroRepresentable
int64_t NumberToInt64(Tagged< Object > number)
Tagged(T object) -> Tagged< T >
bool IsSpecialIndex(Tagged< String > string)
double DoubleToInteger(double x)
bool IsInt32Double(double value)
std::string_view IntToStringView(int n, base::Vector< char > buffer)
MaybeHandle< BigInt > BigIntLiteral(IsolateT *isolate, const char *string)
constexpr int kFP16MantissaBits
double ImplicitOctalStringToDouble(base::Vector< const uint8_t > str)
constexpr uint64_t kFP64Infinity
double BinaryStringToDouble(base::Vector< const uint8_t > str)
constexpr uint64_t kFP16InfinityAndNaNInfimum
std::string_view DoubleToExponentialStringView(double value, int f, base::Vector< char > buffer)
constexpr int kDoubleToRadixMaxChars
uint32_t NumberToUint32(Tagged< Object > number)
int64_t DoubleToInt64(double x)
int32_t NumberToInt32(Tagged< Object > number)
constexpr int kDoubleToFixedMaxDigitsBeforePoint
constexpr int kFP64ExponentBits
constexpr uint16_t kFP16Infinity
constexpr uint32_t kFP32MaxFP16Representable
int32_t DoubleToInt32(double x)
constexpr uint64_t kFP16DenormalThreshold
constexpr uint64_t kFP64To16RoundingAddend
constexpr uint32_t kFP32WithoutSignMask
float DoubleToFloat32_NoInline(double x)
float DoubleToFloat32(double x)
@ ALLOW_NON_DECIMAL_PREFIX
constexpr int kDoubleToStringMinBufferSize
constexpr int kDoubleToFixedMaxChars
uint16_t DoubleToFloat16(double value)
double FastUI2D(unsigned x)
static bool IsMinusZero(double value)
constexpr int kFP64MantissaBits
std::string_view DoubleToStringView(double v, base::Vector< char > buffer)
std::optional< double > TryStringToInt(LocalIsolate *isolate, DirectHandle< String > object, int radix)
uint64_t PositiveNumberToUint64(Tagged< Object > number)
constexpr uint16_t kFP16qNaN
std::string_view DoubleToRadixStringView(double value, int radix, base::Vector< char > buffer)
uint64_t DoubleToUint64(double x)
constexpr int kDoubleToExponentialMaxChars
size_t NumberToSize(Tagged< Object > number)
std::string_view DoubleToFixedStringView(double value, int f, base::Vector< char > buffer)
constexpr uint64_t kFP64To16RebiasExponentAndRound
bool TryNumberToSize(Tagged< Object > number, size_t *result)
std::string_view DoubleToPrecisionStringView(double value, int p, base::Vector< char > buffer)
int FastD2IChecked(double x)
constexpr int kMaxFractionDigits
double StringToDouble(const char *str, ConversionFlag flags, double empty_string_val)
constexpr uint64_t kFP16MinExponent
MaybeHandle< BigInt > StringToBigInt(Isolate *isolate, DirectHandle< String > string)
std::unique_ptr< char[]> BigIntLiteralToDecimal(LocalIsolate *isolate, base::Vector< const uint8_t > literal)
constexpr uint64_t kFP64To16DenormalMagic
#define DCHECK(condition)
#define V8_EXPORT_PRIVATE