6#error Internationalization is expected to be enabled.
37#include "unicode/brkiter.h"
64BUILTIN(StringPrototypeLocaleCompareIntl) {
68 static const char*
const kMethod =
"String.prototype.localeCompare";
75 isolate, str1, str2,
args.atOrUndefined(isolate, 2),
78 DCHECK(isolate->has_exception());
84BUILTIN(V8BreakIteratorSupportedLocalesOf) {
91 isolate,
"Intl.v8BreakIterator.supportedLocalesOf",
102 isolate,
"Intl.NumberFormat.supportedLocalesOf",
107 const char*
const method_name =
"Intl.NumberFormat.prototype.formatToParts";
112 if (
args.length() >= 2) {
115 x = isolate->factory()->nan_value();
122BUILTIN(DateTimeFormatPrototypeResolvedOptions) {
123 const char*
const method_name =
124 "Intl.DateTimeFormat.prototype.resolvedOptions";
131 isolate, date_time_format,
145 isolate,
"Intl.DateTimeFormat.supportedLocalesOf",
149BUILTIN(DateTimeFormatPrototypeFormatToParts) {
150 const char*
const method_name =
"Intl.DateTimeFormat.prototype.formatToParts";
153 Factory* factory = isolate->factory();
155 if (!IsJSDateTimeFormat(*date_format_holder)) {
157 isolate, NewTypeError(MessageTemplate::kIncompatibleMethodReceiver,
159 date_format_holder));
165 isolate, dtf,
x,
false, method_name));
170 MaybeDirectHandle<T> (*
F)(
Isolate*, DirectHandle<JSDateTimeFormat>,
171 DirectHandle<Object>, DirectHandle<Object>,
183 if (IsUndefined(*start_date, isolate) || IsUndefined(*end_date, isolate)) {
185 isolate, NewTypeError(MessageTemplate::kInvalidTimeValue));
192 F(isolate, dtf, start_date, end_date, method_name));
196 const char*
const method_name =
"Intl.DateTimeFormat.prototype.formatRange";
199 args, isolate, method_name);
202BUILTIN(DateTimeFormatPrototypeFormatRangeToParts) {
203 const char*
const method_name =
204 "Intl.DateTimeFormat.prototype.formatRangeToParts";
207 args, isolate, method_name);
212DirectHandle<JSFunction> CreateBoundFunction(
Isolate* isolate,
213 DirectHandle<JSObject>
object,
216 isolate->context()->native_context(), isolate);
217 DirectHandle<Context> context = isolate->factory()->NewBuiltinContext(
224 DirectHandle<SharedFunctionInfo> info =
225 isolate->factory()->NewSharedFunctionInfoForBuiltin(
226 isolate->factory()->empty_string(), builtin, len,
kAdapt);
228 return Factory::JSFunctionBuilder{
isolate,
info, context}
229 .set_map(isolate->strict_function_without_prototype_map())
240 DirectHandle<JSAny> constructor,
241 const char* method_name) {
242 isolate->CountUsage(feature);
246 if (IsUndefined(*
args.new_target(), isolate)) {
253 DirectHandle<JSFunction> target =
args.target();
254 DirectHandle<Object> locales =
args.atOrUndefined(isolate, 1);
255 DirectHandle<Object> options =
args.atOrUndefined(isolate, 2);
259 DirectHandle<Map>
map;
266 isolate, format, T::New(isolate, map, locales, options, method_name));
268 if (IsUndefined(*
args.new_target(), isolate)) {
273 DirectHandle<Object> ordinary_has_instance_obj;
275 isolate, ordinary_has_instance_obj,
280 isolate, NewTypeError(MessageTemplate::kIncompatibleMethodReceiver,
281 isolate->factory()->NewStringFromAsciiChecked(
289 PropertyDescriptor desc;
290 desc.set_value(format);
291 desc.set_writable(
false);
292 desc.set_enumerable(
false);
293 desc.set_configurable(
false);
295 isolate, rec, isolate->factory()->intl_fallback_symbol(), &desc,
297 MAYBE_RETURN(success, ReadOnlyRoots(isolate).exception());
298 CHECK(success.FromJust());
314 const char* method_name) {
315 isolate->CountUsage(feature);
318 if (IsUndefined(*
args.new_target(), isolate)) {
320 isolate, NewTypeError(MessageTemplate::kConstructorNotFunction,
321 isolate->factory()->NewStringFromAsciiChecked(
325 DirectHandle<JSFunction> target =
args.target();
328 DirectHandle<Map>
map;
334 DirectHandle<Object> locales =
args.atOrUndefined(isolate, 1);
335 DirectHandle<Object> options =
args.atOrUndefined(isolate, 2);
347 const char* method_name) {
350 if (IsUndefined(*
args.new_target(), isolate)) {
357 DirectHandle<JSFunction> target =
args.target();
359 DirectHandle<Object> locales =
args.atOrUndefined(isolate, 1);
360 DirectHandle<Object> options =
args.atOrUndefined(isolate, 2);
362 DirectHandle<Map>
map;
367 T::New(isolate, map, locales, options, method_name));
377 return DisallowCallConstructor<JSDisplayNames>(
379 "Intl.DisplayNames");
382BUILTIN(DisplayNamesPrototypeResolvedOptions) {
385 "Intl.DisplayNames.prototype.resolvedOptions");
396 isolate,
"Intl.DisplayNames.supportedLocalesOf",
413 return DisallowCallConstructor<JSDurationFormat>(
415 "Intl.DurationFormat");
418BUILTIN(DurationFormatPrototypeResolvedOptions) {
421 "Intl.DurationFormat.prototype.resolvedOptions");
432 isolate,
"Intl.DurationFormat.supportedLocalesOf",
439 "Intl.DurationFormat.prototype.format");
445BUILTIN(DurationFormatPrototypeFormatToParts) {
448 "Intl.DurationFormat.prototype.formatToParts");
459 return LegacyFormatConstructor<JSNumberFormat>(
461 isolate->intl_number_format_function(),
"Intl.NumberFormat");
464BUILTIN(NumberFormatPrototypeResolvedOptions) {
466 const char*
const method_name =
"Intl.NumberFormat.prototype.resolvedOptions";
475 isolate, number_format,
482 const char*
const method_name =
"get Intl.NumberFormat.prototype.format";
492 isolate, number_format,
498 if (!IsUndefined(*bound_format, isolate)) {
499 DCHECK(IsJSFunction(*bound_format));
501 return *bound_format;
505 isolate, number_format, Builtin::kNumberFormatInternalFormatNumber, 1);
508 number_format->set_bound_format(*new_bound_format_function);
511 return *new_bound_format_function;
531 isolate, number_format, value));
536 MaybeDirectHandle<T> (*
F)(
Isolate*, DirectHandle<JSNumberFormat>,
547 Factory* factory = isolate->factory();
549 if (IsUndefined(*
start, isolate)) {
552 NewTypeError(MessageTemplate::kInvalid,
555 if (IsUndefined(*
end, isolate)) {
557 isolate, NewTypeError(MessageTemplate::kInvalid,
565 const char*
const method_name =
"Intl.NumberFormat.prototype.formatRange";
568 args, isolate, method_name);
571BUILTIN(NumberFormatPrototypeFormatRangeToParts) {
572 const char*
const method_name =
573 "Intl.NumberFormat.prototype.formatRangeToParts";
576 args, isolate, method_name);
582 return LegacyFormatConstructor<JSDateTimeFormat>(
584 isolate->intl_date_time_format_function(),
"Intl.DateTimeFormat");
588 const char*
const method_name =
"get Intl.DateTimeFormat.prototype.format";
605 if (!IsUndefined(*bound_format, isolate)) {
606 DCHECK(IsJSFunction(*bound_format));
608 return *bound_format;
612 isolate, format, Builtin::kDateTimeFormatInternalFormat, 1);
615 format->set_bound_format(*new_bound_format_function);
618 return *new_bound_format_function;
636 isolate, date_format_holder,
date,
637 "DateTime Format Functions"));
658 return DisallowCallConstructor<JSListFormat>(
666 "Intl.ListFormat.prototype.resolvedOptions");
677 isolate,
"Intl.ListFormat.supportedLocalesOf",
687 const char* method_name =
"Intl.Locale";
688 if (IsUndefined(*
args.new_target(), isolate)) {
690 isolate, NewTypeError(MessageTemplate::kConstructorNotFunction,
691 isolate->factory()->NewStringFromAsciiChecked(
708 if (!IsString(*tag) && !IsJSReceiver(*tag)) {
710 isolate, NewTypeError(MessageTemplate::kLocaleNotEmpty));
716 if (IsJSLocale(*tag)) {
728 isolate, options_object,
732 isolate,
JSLocale::New(isolate, map, locale_string, options_object));
854BUILTIN(RelativeTimeFormatSupportedLocalesOf) {
862 isolate,
"Intl.RelativeTimeFormat.supportedLocalesOf",
873 "Intl.RelativeTimeFormat.prototype.format");
882BUILTIN(RelativeTimeFormatPrototypeFormatToParts) {
889 "Intl.RelativeTimeFormat.prototype.formatToParts");
986 return DisallowCallConstructor<JSRelativeTimeFormat>(
988 "Intl.RelativeTimeFormat");
991BUILTIN(RelativeTimeFormatPrototypeResolvedOptions) {
994 "Intl.RelativeTimeFormat.prototype.resolvedOptions");
1000 if (!IsSeqOneByteString(maybe_locale)) {
1004 uint8_t* chars = locale->GetChars(no_gc);
1005 if (locale->length() < 2 || !std::isalpha(chars[0]) ||
1006 !std::isalpha(chars[1])) {
1009 if (locale->length() != 2 &&
1010 (locale->length() != 5 || chars[2] !=
'-' || !std::isalpha(chars[3]) ||
1011 !std::isalpha(chars[4]))) {
1014 char first = chars[0] | 0x20;
1015 char second = chars[1] | 0x20;
1016 return (first !=
'a' ||
second !=
'z') && (first !=
'e' ||
second !=
'l') &&
1017 (first !=
'l' ||
second !=
't') && (first !=
't' ||
second !=
'r');
1024 if (IsUndefined(*maybe_locale) ||
IsFastLocale(*maybe_locale)) {
1029 isolate,
string,
true, maybe_locale));
1036 return DisallowCallConstructor<JSPluralRules>(
1038 "Intl.PluralRules");
1044 "Intl.PluralRules.prototype.resolvedOptions");
1054 "Intl.PluralRules.prototype.select");
1064 isolate, plural_rules, number_double));
1073 "Intl.PluralRules.prototype.selectRange");
1078 if (IsUndefined(*
start)) {
1080 isolate, NewTypeError(MessageTemplate::kInvalid,
1081 isolate->factory()->startRange_string(),
start));
1083 if (IsUndefined(*
end)) {
1085 isolate, NewTypeError(MessageTemplate::kInvalid,
1086 isolate->factory()->endRange_string(),
end));
1102 isolate, NewRangeError(MessageTemplate::kInvalid,
1103 isolate->factory()->startRange_string(),
x));
1107 isolate, NewRangeError(MessageTemplate::kInvalid,
1108 isolate->factory()->endRange_string(),
y));
1124 isolate,
"Intl.PluralRules.supportedLocalesOf",
1133 return CallOrConstructConstructor<JSCollator>(
args, isolate,
"Intl.Collator");
1139 "Intl.Collator.prototype.resolvedOptions");
1150 isolate,
"Intl.Collator.supportedLocalesOf",
1155 const char*
const method_name =
"get Intl.Collator.prototype.compare";
1166 if (!IsUndefined(*bound_compare, isolate)) {
1167 DCHECK(IsJSFunction(*bound_compare));
1169 return *bound_compare;
1173 isolate, collator, Builtin::kCollatorInternalCompare, 2);
1176 collator->set_bound_compare(*new_bound_compare_function);
1179 return *new_bound_compare_function;
1209 icu::Collator* icu_collator = collator->icu_collator()->raw();
1217 const char*
const method_name =
"%SegmentIterator.prototype%.next";
1229 return DisallowCallConstructor<JSSegmenter>(
1242 isolate,
"Intl.Segmenter.supportedLocalesOf",
1250 "Intl.Segmenter.prototype.resolvedOptions");
1271 const char*
const method_name =
"%Segments.prototype%.containing";
1287 const char*
const method_name =
"%SegmentIsPrototype%[@@iterator]";
1294 segments->icu_break_iterator()->raw(), segments->granularity()));
1300 return CallOrConstructConstructor<JSV8BreakIterator>(
args, isolate,
1301 "Intl.v8BreakIterator");
1307 "Intl.v8BreakIterator.prototype.resolvedOptions");
1312 const char*
const method_name =
1313 "get Intl.v8BreakIterator.prototype.adoptText";
1320 if (!IsUndefined(*bound_adopt_text, isolate)) {
1321 DCHECK(IsJSFunction(*bound_adopt_text));
1322 return *bound_adopt_text;
1326 isolate, break_iterator, Builtin::kV8BreakIteratorInternalAdoptText, 1);
1327 break_iterator->set_bound_adopt_text(*new_bound_adopt_text_function);
1328 return *new_bound_adopt_text_function;
1350 const char*
const method_name =
"get Intl.v8BreakIterator.prototype.first";
1356 if (!IsUndefined(*bound_first, isolate)) {
1357 DCHECK(IsJSFunction(*bound_first));
1358 return *bound_first;
1362 isolate, break_iterator, Builtin::kV8BreakIteratorInternalFirst, 0);
1363 break_iterator->set_bound_first(*new_bound_first_function);
1364 return *new_bound_first_function;
1380 const char*
const method_name =
"get Intl.v8BreakIterator.prototype.next";
1386 if (!IsUndefined(*bound_next, isolate)) {
1387 DCHECK(IsJSFunction(*bound_next));
1392 isolate, break_iterator, Builtin::kV8BreakIteratorInternalNext, 0);
1393 break_iterator->set_bound_next(*new_bound_next_function);
1394 return *new_bound_next_function;
1409 const char*
const method_name =
"get Intl.v8BreakIterator.prototype.current";
1415 if (!IsUndefined(*bound_current, isolate)) {
1416 DCHECK(IsJSFunction(*bound_current));
1417 return *bound_current;
1421 isolate, break_iterator, Builtin::kV8BreakIteratorInternalCurrent, 0);
1422 break_iterator->set_bound_current(*new_bound_current_function);
1423 return *new_bound_current_function;
1438 const char*
const method_name =
1439 "get Intl.v8BreakIterator.prototype.breakType";
1446 if (!IsUndefined(*bound_break_type, isolate)) {
1447 DCHECK(IsJSFunction(*bound_break_type));
1448 return *bound_break_type;
1452 isolate, break_iterator, Builtin::kV8BreakIteratorInternalBreakType, 0);
1453 break_iterator->set_bound_break_type(*new_bound_break_type_function);
1454 return *new_bound_break_type_function;
#define TO_THIS_STRING(name, method)
#define CHECK_RECEIVER(Type, name, method)
@ kLocaleInfoObsoletedGetters
Handle< String > NewStringFromAsciiChecked(const char *str, AllocationType allocation=AllocationType::kYoung)
Handle< String > NewStringFromStaticChars(const char(&str)[N], AllocationType allocation=AllocationType::kYoung)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > StringLocaleConvertCase(Isolate *isolate, DirectHandle< String > s, bool is_upper, DirectHandle< Object > locales)
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT int CompareStrings(Isolate *isolate, const icu::Collator &collator, DirectHandle< String > s1, DirectHandle< String > s2, CompareStringsOptions compare_strings_options=CompareStringsOptions::kNone)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > Normalize(Isolate *isolate, DirectHandle< String > string, DirectHandle< Object > form_input)
static V8_WARN_UNUSED_RESULT std::optional< int > StringLocaleCompare(Isolate *isolate, DirectHandle< String > s1, DirectHandle< String > s2, DirectHandle< Object > locales, DirectHandle< Object > options, const char *method_name)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSArray > GetCanonicalLocales(Isolate *isolate, DirectHandle< Object > locales)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ConvertToUpper(Isolate *isolate, DirectHandle< String > s)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSArray > SupportedValuesOf(Isolate *isolate, DirectHandle< Object > key)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSObject > SupportedLocalesOf(Isolate *isolate, const char *method_name, const std::set< std::string > &available_locales, DirectHandle< Object > locales_in, DirectHandle< Object > options_in)
static V8_EXPORT_PRIVATE const std::set< std::string > & GetAvailableLocales()
static DirectHandle< JSObject > ResolvedOptions(Isolate *isolate, DirectHandle< JSCollator > collator)
static MaybeDirectHandle< Object > Of(Isolate *isolate, DirectHandle< JSDisplayNames > holder, Handle< Object > code_obj)
static V8_EXPORT_PRIVATE const std::set< std::string > & GetAvailableLocales()
static DirectHandle< JSObject > ResolvedOptions(Isolate *isolate, DirectHandle< JSDisplayNames > format_holder)
static V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT MaybeHandle< Map > GetDerivedMap(Isolate *isolate, DirectHandle< JSFunction > constructor, DirectHandle< JSReceiver > new_target)
static DirectHandle< String > BaseName(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > Region(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > HourCycle(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > Calendar(Isolate *isolate, DirectHandle< JSLocale > locale)
static MaybeDirectHandle< JSLocale > Maximize(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > Language(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSLocale > locale)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSObject > GetTextInfo(Isolate *isolate, DirectHandle< JSLocale > locale)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > GetTimeZones(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > NumberingSystem(Isolate *isolate, DirectHandle< JSLocale > locale)
static MaybeDirectHandle< JSLocale > New(Isolate *isolate, DirectHandle< Map > map, DirectHandle< String > locale, DirectHandle< JSReceiver > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSArray > GetNumberingSystems(Isolate *isolate, DirectHandle< JSLocale > locale)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSObject > GetWeekInfo(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > Script(Isolate *isolate, DirectHandle< JSLocale > locale)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSArray > GetCalendars(Isolate *isolate, DirectHandle< JSLocale > locale)
static MaybeDirectHandle< JSLocale > Minimize(Isolate *isolate, DirectHandle< JSLocale > locale)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSArray > GetHourCycles(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > FirstDayOfWeek(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > Collation(Isolate *isolate, DirectHandle< JSLocale > locale)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSArray > GetCollations(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > CaseFirst(Isolate *isolate, DirectHandle< JSLocale > locale)
static DirectHandle< Object > Numeric(Isolate *isolate, DirectHandle< JSLocale > locale)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ResolvePlural(Isolate *isolate, DirectHandle< JSPluralRules > plural_rules, double number)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ResolvePluralRange(Isolate *isolate, DirectHandle< JSPluralRules > plural_rules, double x, double y)
static DirectHandle< JSObject > ResolvedOptions(Isolate *isolate, DirectHandle< JSPluralRules > plural_rules)
static V8_EXPORT_PRIVATE const std::set< std::string > & GetAvailableLocales()
static V8_WARN_UNUSED_RESULT Maybe< bool > DefineOwnProperty(Isolate *isolate, DirectHandle< JSReceiver > object, DirectHandle< Object > key, PropertyDescriptor *desc, Maybe< ShouldThrow > should_throw)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSReceiver > Next(Isolate *isolate, DirectHandle< JSSegmentIterator > segment_iterator_holder)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSSegmentIterator > Create(Isolate *isolate, DirectHandle< String > input_string, icu::BreakIterator *icu_break_iterator, JSSegmenter::Granularity granularity)
static V8_EXPORT_PRIVATE const std::set< std::string > & GetAvailableLocales()
static V8_WARN_UNUSED_RESULT DirectHandle< JSObject > ResolvedOptions(Isolate *isolate, DirectHandle< JSSegmenter > segmenter_holder)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > Containing(Isolate *isolate, DirectHandle< JSSegments > segments_holder, double n)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSSegments > Create(Isolate *isolate, DirectHandle< JSSegmenter > segmenter, DirectHandle< String > string)
static Tagged< String > BreakType(Isolate *isolate, DirectHandle< JSV8BreakIterator > break_iterator)
static DirectHandle< JSObject > ResolvedOptions(Isolate *isolate, DirectHandle< JSV8BreakIterator > break_iterator)
static DirectHandle< Object > Current(Isolate *isolate, DirectHandle< JSV8BreakIterator > break_iterator)
static V8_EXPORT_PRIVATE const std::set< std::string > & GetAvailableLocales()
static DirectHandle< Object > Next(Isolate *isolate, DirectHandle< JSV8BreakIterator > break_iterator)
static DirectHandle< Object > First(Isolate *isolate, DirectHandle< JSV8BreakIterator > break_iterator)
static void AdoptText(Isolate *isolate, DirectHandle< JSV8BreakIterator > break_iterator, DirectHandle< String > text)
static V8_WARN_UNUSED_RESULT HandleType< String >::MaybeType ToString(Isolate *isolate, HandleType< T > input)
static V8_WARN_UNUSED_RESULT HandleType< Number >::MaybeType ToNumber(Isolate *isolate, HandleType< T > input)
static V8_WARN_UNUSED_RESULT MaybeHandle< Object > OrdinaryHasInstance(Isolate *isolate, DirectHandle< JSAny > callable, DirectHandle< JSAny > object)
static V8_EXPORT_PRIVATE bool BooleanValue(Tagged< Object > obj, IsolateT *isolate)
static double NumberValue(Tagged< Number > obj)
static V8_WARN_UNUSED_RESULT Maybe< double > IntegerValue(Isolate *isolate, HandleType< T > input)
static constexpr Tagged< Smi > FromInt(int value)
static V8_INLINE HandleType< String > Flatten(Isolate *isolate, HandleType< T > string, AllocationType allocation=AllocationType::kYoung)
Handle< SharedFunctionInfo > info
#define ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call)
#define THROW_NEW_ERROR_RETURN_FAILURE(isolate, call)
#define MAYBE_RETURN(call, value)
#define RETURN_RESULT_OR_FAILURE(isolate, call)
#define MAYBE_ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call)
base::Vector< const DirectHandle< Object > > args
DirectHandle< Object > new_target
ZoneVector< RpoNumber > & result
V8_WARN_UNUSED_RESULT Tagged< Object > DateTimeFormatRange(BuiltinArguments args, Isolate *isolate, const char *const method_name)
bool IsNaN(Tagged< Object > obj)
V8_INLINE DirectHandle< T > direct_handle(Tagged< T > object, Isolate *isolate)
constexpr AdaptArguments kAdapt
MaybeDirectHandle< JSReceiver > CoerceOptionsToObject(Isolate *isolate, DirectHandle< Object > options, const char *method_name)
bool IsFastLocale(Tagged< Object > maybe_locale)
V8_EXPORT_PRIVATE void V8_EXPORT_PRIVATE void const char * format
template const char * string
V8_WARN_UNUSED_RESULT Tagged< Object > NumberFormatRange(BuiltinArguments args, Isolate *isolate, const char *const method_name)
!IsContextMap !IsContextMap native_context
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
Maybe< T > Just(const T &t)
#define CHECK_NOT_NULL(val)
#define DCHECK(condition)
#define V8_WARN_UNUSED_RESULT