28  if (IsJSPrimitiveWrapper(*value)) {
 
   33        isolate, NewTypeError(MessageTemplate::kNotGeneric,
 
   34                              isolate->factory()->NewStringFromAsciiChecked(
 
   35                                  "Number.prototype.toExponential"),
 
   36                              isolate->factory()->Number_string()));
 
   41  double fraction_digits_number;
 
   43      isolate, fraction_digits_number,
 
   46  if (std::isnan(value_number)) 
return ReadOnlyRoots(isolate).NaN_string();
 
   47  if (std::isinf(value_number)) {
 
   48    return (value_number < 0.0) ? 
ReadOnlyRoots(isolate).minus_Infinity_string()
 
   51  if (fraction_digits_number < 0.0 ||
 
   54        isolate, NewRangeError(MessageTemplate::kNumberFormatRange,
 
   55                               isolate->factory()->NewStringFromAsciiChecked(
 
   58  int const f = IsUndefined(*
args.atOrUndefined(isolate, 1), isolate)
 
   60                    : 
static_cast<int>(fraction_digits_number);
 
   65      isolate->factory()->NewStringFromAsciiChecked(str);
 
 
   76  if (IsJSPrimitiveWrapper(*value)) {
 
   81        isolate, NewTypeError(MessageTemplate::kNotGeneric,
 
   82                              isolate->factory()->NewStringFromAsciiChecked(
 
   83                                  "Number.prototype.toFixed"),
 
   84                              isolate->factory()->Number_string()));
 
   89  double fraction_digits_number;
 
   91      isolate, fraction_digits_number,
 
   95  if (fraction_digits_number < 0.0 ||
 
   98        isolate, NewRangeError(MessageTemplate::kNumberFormatRange,
 
   99                               isolate->factory()->NewStringFromAsciiChecked(
 
  100                                   "toFixed() digits")));
 
  103  if (std::isnan(value_number)) 
return ReadOnlyRoots(isolate).NaN_string();
 
  104  if (std::isinf(value_number)) {
 
  105    return (value_number < 0.0) ? 
ReadOnlyRoots(isolate).minus_Infinity_string()
 
  111      value_number, 
static_cast<int>(fraction_digits_number), buffer);
 
  113      isolate->factory()->NewStringFromAsciiChecked(str);
 
 
  120  const char* method_name = 
"Number.prototype.toLocaleString";
 
  127  if (IsJSPrimitiveWrapper(*value)) {
 
  134        NewTypeError(MessageTemplate::kNotGeneric,
 
  135                     isolate->factory()->NewStringFromAsciiChecked(method_name),
 
  136                     isolate->factory()->Number_string()));
 
  139#ifdef V8_INTL_SUPPORT 
  143                                 args.atOrUndefined(isolate, 2), method_name));
 
  146  return *isolate->factory()->NumberToString(value);
 
 
  157  if (IsJSPrimitiveWrapper(*value)) {
 
  162        isolate, NewTypeError(MessageTemplate::kNotGeneric,
 
  163                              isolate->factory()->NewStringFromAsciiChecked(
 
  164                                  "Number.prototype.toPrecision"),
 
  165                              isolate->factory()->Number_string()));
 
  171    return *isolate->factory()->NumberToString(value);
 
  175  double precision_number;
 
  179  if (std::isnan(value_number)) 
return ReadOnlyRoots(isolate).NaN_string();
 
  180  if (std::isinf(value_number)) {
 
  181    return (value_number < 0.0) ? 
ReadOnlyRoots(isolate).minus_Infinity_string()
 
  186        isolate, NewRangeError(MessageTemplate::kToPrecisionFormatRange));
 
  191      value_number, 
static_cast<int>(precision_number), buffer);
 
  193      isolate->factory()->NewStringFromAsciiChecked(str);
 
 
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > NumberToLocaleString(Isolate *isolate, Handle< Object > num, DirectHandle< Object > locales, DirectHandle< Object > options, const char *method_name)
static double NumberValue(Tagged< Number > obj)
static V8_WARN_UNUSED_RESULT Maybe< double > IntegerValue(Isolate *isolate, HandleType< T > input)
#define THROW_NEW_ERROR_RETURN_FAILURE(isolate, call)
#define RETURN_RESULT_OR_FAILURE(isolate, call)
#define MAYBE_ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call)
base::Vector< const DirectHandle< Object > > args
ZoneVector< RpoNumber > & result
constexpr Vector< T > ArrayVector(T(&arr)[N])
V8_INLINE IndirectHandle< T > handle(Tagged< T > object, Isolate *isolate)
constexpr int kDoubleToPrecisionMaxChars
bool IsNumber(Tagged< Object > obj)
V8_INLINE DirectHandle< T > direct_handle(Tagged< T > object, Isolate *isolate)
std::string_view DoubleToExponentialStringView(double value, int f, base::Vector< char > buffer)
constexpr int kDoubleToFixedMaxChars
constexpr int kDoubleToExponentialMaxChars
std::string_view DoubleToFixedStringView(double value, int f, base::Vector< char > buffer)
std::string_view DoubleToPrecisionStringView(double value, int p, base::Vector< char > buffer)
constexpr int kMaxFractionDigits
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)