5#ifndef V8_OBJECTS_JS_TEMPORAL_OBJECTS_H_
6#define V8_OBJECTS_JS_TEMPORAL_OBJECTS_H_
18#include "torque-generated/src/objects/js-temporal-objects-tq.inc"
20#define DECLARE_TEMPORAL_INLINE_GETTER_SETTER(field) \
21 inline void set_##field(int32_t field); \
22 inline int32_t field() const;
24#define DECLARE_TEMPORAL_TIME_INLINE_GETTER_SETTER() \
25 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_hour) \
26 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_minute) \
27 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_second) \
28 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_millisecond) \
29 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_microsecond) \
30 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_nanosecond)
32#define DECLARE_TEMPORAL_DATE_INLINE_GETTER_SETTER() \
33 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_year) \
34 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_month) \
35 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_day)
37#define TEMPORAL_UNIMPLEMENTED(T) \
39 printf("TBW %s\n", __PRETTY_FUNCTION__); \
43class JSTemporalPlainDate;
44class JSTemporalPlainMonthDay;
45class JSTemporalPlainYearMonth;
48 :
public TorqueGeneratedJSTemporalCalendar<JSTemporalCalendar, JSObject> {
154 const char* method_name);
156#ifdef V8_INTL_SUPPORT
168 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_CALENDAR_FLAGS()
176 :
public TorqueGeneratedJSTemporalDuration<JSTemporalDuration, JSObject> {
259 :
public TorqueGeneratedJSTemporalInstant<JSTemporalInstant, JSObject> {
358 :
public TorqueGeneratedJSTemporalPlainDate<JSTemporalPlainDate, JSObject> {
465 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
473 :
public TorqueGeneratedJSTemporalPlainDateTime<JSTemporalPlainDateTime,
608 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
609 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_HOUR_MINUTE_SECOND()
610 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_SECOND_PARTS()
619 :
public TorqueGeneratedJSTemporalPlainMonthDay<JSTemporalPlainMonthDay,
671 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
679 :
public TorqueGeneratedJSTemporalPlainTime<JSTemporalPlainTime, JSObject> {
770 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_HOUR_MINUTE_SECOND()
771 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_SECOND_PARTS()
779 :
public TorqueGeneratedJSTemporalPlainYearMonth<JSTemporalPlainYearMonth,
860 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
868 :
public TorqueGeneratedJSTemporalTimeZone<JSTemporalTimeZone, JSObject> {
922 const char* method_name);
926 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_TIME_ZONE_FLAGS()
927 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_TIME_ZONE_SUB_MILLISECONDS()
947 :
public TorqueGeneratedJSTemporalZonedDateTime<JSTemporalZonedDateTime,
1148#define DECLARE_CALENDAR_ABSTRACT_INT_OPERATION(Name) \
1149 V8_WARN_UNUSED_RESULT MaybeDirectHandle<Smi> Calendar##Name( \
1150 Isolate* isolate, DirectHandle<JSReceiver> calendar, \
1151 DirectHandle<JSReceiver> date_like);
1152#define DECLARE_CALENDAR_ABSTRACT_OPERATION(Name) \
1153 V8_WARN_UNUSED_RESULT MaybeDirectHandle<Object> Calendar##Name( \
1154 Isolate* isolate, DirectHandle<JSReceiver> calendar, \
1155 DirectHandle<JSReceiver> date_like);
1169#ifdef V8_INTL_SUPPORT
1174#undef DECLARE_CALENDAR_ABSTRACT_OPERATION
1183 DirectHandle<JSTemporalInstant> instant,
1185 const char* method_name);
1188 Isolate* isolate, DirectHandle<JSReceiver>
calendar,
1189 DirectHandle<String> name, DirectHandle<JSReceiver> temporal_like);
1192 Isolate* isolate, DirectHandle<Object> temporal_calendar_like,
1193 const char* method_name);
1196 Isolate* isolate, DirectHandle<Object> temporal_time_zone_like,
1197 const char* method_name);
1200 Isolate* isolate, DirectHandle<String>
string,
1201 DirectHandle<FixedArray> field_names);
1205 Isolate* isolate, DirectHandle<String>
id);
1208 Isolate* isolate, DirectHandle<JSReceiver>
time_zone,
1209 DirectHandle<JSTemporalPlainDateTime> date_time,
const char* method_name);
1227 double microseconds,
1241 double hours,
double minutes,
1242 double seconds,
double milliseconds,
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > DateAdd(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > date, DirectHandle< Object > durations, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, const char *method_name)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > DaysInWeek(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Year(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > MonthCode(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > MonthsInYear(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > DateFromFields(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > fields, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > DaysInMonth(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > DaysInYear(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Day(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainMonthDay > MonthDayFromFields(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > fields, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > DayOfWeek(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > DateUntil(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > one, DirectHandle< Object > two, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSReceiver > MergeFields(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > fields, DirectHandle< Object > additional_fields)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > WeekOfYear(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalCalendar > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > identifier)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainYearMonth > YearMonthFromFields(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > fields, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > DayOfYear(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Oddball > InLeapYear(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Month(Isolate *isolate, DirectHandle< JSTemporalCalendar > calendar, DirectHandle< Object > temporal_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Negated(Isolate *isolate, DirectHandle< JSTemporalDuration > duration)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToJSON(Isolate *isolate, DirectHandle< JSTemporalDuration > duration)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSTemporalDuration > duration, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Add(Isolate *isolate, DirectHandle< JSTemporalDuration > duration, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > From(Isolate *isolate, DirectHandle< Object > item)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Oddball > Blank(Isolate *isolate, DirectHandle< JSTemporalDuration > duration)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Abs(Isolate *isolate, DirectHandle< JSTemporalDuration > duration)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > years, DirectHandle< Object > months, DirectHandle< Object > weeks, DirectHandle< Object > days, DirectHandle< Object > hours, DirectHandle< Object > minutes, DirectHandle< Object > seconds, DirectHandle< Object > milliseconds, DirectHandle< Object > microseconds, DirectHandle< Object > nanoseconds)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Sign(Isolate *isolate, DirectHandle< JSTemporalDuration > duration)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Subtract(Isolate *isolate, DirectHandle< JSTemporalDuration > duration, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Compare(Isolate *isolate, DirectHandle< Object > one, DirectHandle< Object > two, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > With(Isolate *isolate, DirectHandle< JSTemporalDuration > duration, DirectHandle< Object > temporal_duration_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Round(Isolate *isolate, DirectHandle< JSTemporalDuration > duration, DirectHandle< Object > round_to_obj)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > Total(Isolate *isolate, DirectHandle< JSTemporalDuration > duration, DirectHandle< Object > total_of)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToLocaleString(Isolate *isolate, DirectHandle< JSTemporalDuration > duration, DirectHandle< Object > locales, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > ToZonedDateTime(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > item)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToJSON(Isolate *isolate, DirectHandle< JSTemporalInstant > instant)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > epoch_nanoseconds)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > Subtract(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > temporal_duration_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > ToZonedDateTimeISO(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > item)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Oddball > Equals(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > other)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > Add(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > temporal_duration_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > FromEpochNanoseconds(Isolate *isolate, DirectHandle< Object > epoch_nanoseconds)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > From(Isolate *isolate, DirectHandle< Object > item)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Since(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > Round(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > round_to)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToLocaleString(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > locales, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > FromEpochMilliseconds(Isolate *isolate, DirectHandle< Object > epoch_milliseconds)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > Now(Isolate *isolate)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > FromEpochMicroseconds(Isolate *isolate, DirectHandle< Object > epoch_microseconds)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > FromEpochSeconds(Isolate *isolate, DirectHandle< Object > epoch_seconds)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Compare(Isolate *isolate, DirectHandle< Object > one, DirectHandle< Object > two)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Until(Isolate *isolate, DirectHandle< JSTemporalInstant > instant, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > WithCalendar(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > calendar_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToJSON(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > WithPlainTime(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > temporal_time_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > iso_year, DirectHandle< Object > iso_month, DirectHandle< Object > iso_day, DirectHandle< Object > hour, DirectHandle< Object > minute, DirectHandle< Object > second, DirectHandle< Object > millisecond, DirectHandle< Object > microsecond, DirectHandle< Object > nanosecond, DirectHandle< Object > calendar_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Since(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > Subtract(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > temporal_duration_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Oddball > Equals(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > plain_date, DirectHandle< Object > other)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > ToZonedDateTime(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > temporal_time_zone_like, DirectHandle< Object > options_obj)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > Add(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > temporal_duration_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToLocaleString(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > locales, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Until(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > Round(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > round_to)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > Now(Isolate *isolate, DirectHandle< Object > calendar_like, DirectHandle< Object > temporal_time_zone_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > With(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > temporal_date_time_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > NowISO(Isolate *isolate, DirectHandle< Object > temporal_time_zone_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainYearMonth > ToPlainYearMonth(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > WithPlainDate(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > temporal_date_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainTime > ToPlainTime(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Compare(Isolate *isolate, DirectHandle< Object > one, DirectHandle< Object > two)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > From(Isolate *isolate, DirectHandle< Object > item, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > ToPlainDate(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainMonthDay > ToPlainMonthDay(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSReceiver > GetISOFields(Isolate *isolate, DirectHandle< JSTemporalPlainDateTime > date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Since(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > Subtract(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > temporal_duration_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Until(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Compare(Isolate *isolate, DirectHandle< Object > one, DirectHandle< Object > two)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToJSON(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > iso_year, DirectHandle< Object > iso_month, DirectHandle< Object > iso_day, DirectHandle< Object > calendar_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Oddball > Equals(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > other)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > NowISO(Isolate *isolate, DirectHandle< Object > temporal_time_zone_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainMonthDay > ToPlainMonthDay(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSReceiver > GetISOFields(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > ToZonedDateTime(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > item)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > From(Isolate *isolate, DirectHandle< Object > item, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > With(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > temporal_duration_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > Add(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > temporal_duration_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > Now(Isolate *isolate, DirectHandle< Object > calendar_like, DirectHandle< Object > temporal_time_zone_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > WithCalendar(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > calendar_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > ToPlainDateTime(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > temporal_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainYearMonth > ToPlainYearMonth(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToLocaleString(Isolate *isolate, DirectHandle< JSTemporalPlainDate > plain_date, DirectHandle< Object > locales, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainMonthDay > With(Isolate *isolate, DirectHandle< JSTemporalPlainMonthDay > month_day, DirectHandle< Object > temporal_month_day_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToLocaleString(Isolate *isolate, DirectHandle< JSTemporalPlainMonthDay > plain_date, DirectHandle< Object > locales, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSTemporalPlainMonthDay > month_day, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > ToPlainDate(Isolate *isolate, DirectHandle< JSTemporalPlainMonthDay > month_day, DirectHandle< Object > item)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainMonthDay > From(Isolate *isolate, DirectHandle< Object > item, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToJSON(Isolate *isolate, DirectHandle< JSTemporalPlainMonthDay > month_day)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Oddball > Equals(Isolate *isolate, DirectHandle< JSTemporalPlainMonthDay > month_day, DirectHandle< Object > other)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSReceiver > GetISOFields(Isolate *isolate, DirectHandle< JSTemporalPlainMonthDay > month_day)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainMonthDay > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > iso_month, DirectHandle< Object > iso_day, DirectHandle< Object > calendar_like, DirectHandle< Object > reference_iso_year)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSReceiver > GetISOFields(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Until(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Compare(Isolate *isolate, DirectHandle< Object > one, DirectHandle< Object > two)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > ToPlainDateTime(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > temporal_date)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainTime > Round(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > round_to)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainTime > With(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > temporal_time_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainTime > Subtract(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > temporal_duration_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainTime > NowISO(Isolate *isolate, DirectHandle< Object > temporal_time_zone_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToLocaleString(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > locales, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > ToZonedDateTime(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > item)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainTime > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > hour, DirectHandle< Object > minute, DirectHandle< Object > second, DirectHandle< Object > millisecond, DirectHandle< Object > microsecond, DirectHandle< Object > nanosecond)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToJSON(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainTime > Add(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > temporal_duration_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainTime > From(Isolate *isolate, DirectHandle< Object > item, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Since(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_time, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Oddball > Equals(Isolate *isolate, DirectHandle< JSTemporalPlainTime > plain_date, DirectHandle< Object > other)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainYearMonth > With(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month, DirectHandle< Object > temporal_year_month_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Since(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSReceiver > GetISOFields(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToJSON(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > ToPlainDate(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month, DirectHandle< Object > item)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToLocaleString(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > plain_date, DirectHandle< Object > locales, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Oddball > Equals(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month, DirectHandle< Object > other)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainYearMonth > From(Isolate *isolate, DirectHandle< Object > item, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainYearMonth > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > iso_year, DirectHandle< Object > iso_month, DirectHandle< Object > calendar_like, DirectHandle< Object > reference_iso_day)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainYearMonth > Subtract(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month, DirectHandle< Object > temporal_duration_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Until(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Compare(Isolate *isolate, DirectHandle< Object > one, DirectHandle< Object > two)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainYearMonth > Add(Isolate *isolate, DirectHandle< JSTemporalPlainYearMonth > year_month, DirectHandle< Object > temporal_duration_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalTimeZone > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > identifier)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > GetPlainDateTimeFor(Isolate *isolate, DirectHandle< JSTemporalTimeZone > time_zone, DirectHandle< Object > instance, DirectHandle< Object > calendar_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > GetOffsetNanosecondsFor(Isolate *isolate, DirectHandle< JSTemporalTimeZone > time_zone, DirectHandle< Object > instance)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > GetInstantFor(Isolate *isolate, DirectHandle< JSTemporalTimeZone > time_zone, DirectHandle< Object > dateTime, DirectHandle< Object > options)
static MaybeDirectHandle< Object > ToString(Isolate *isolate, DirectHandle< JSTemporalTimeZone > time_zone, const char *method_name)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalTimeZone > Now(Isolate *isolate)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > GetPreviousTransition(Isolate *isolate, DirectHandle< JSTemporalTimeZone > time_zone, DirectHandle< Object > starting_point)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > GetOffsetStringFor(Isolate *isolate, DirectHandle< JSTemporalTimeZone > time_zone, DirectHandle< Object > instance)
MaybeDirectHandle< String > id(Isolate *isolate) const
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > GetNextTransition(Isolate *isolate, DirectHandle< JSTemporalTimeZone > time_zone, DirectHandle< Object > starting_point)
int64_t offset_nanoseconds() const
int32_t time_zone_index() const
void set_offset_nanoseconds(int64_t offset_nanoseconds)
static constexpr int32_t kUTCTimeZoneIndex
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Since(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > date_time, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToLocaleString(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > locales, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > StartOfDay(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > Subtract(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > temporal_duration_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > WithPlainDate(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > plain_date_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > WithPlainTime(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > plain_time_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToString(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Oddball > Equals(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > other)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< String > ToJSON(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDateTime > ToPlainDateTime(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > With(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > temporal_zoned_date_time_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > NowISO(Isolate *isolate, DirectHandle< Object > temporal_time_zone_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSReceiver > GetISOFields(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > WithCalendar(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > calendar_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainDate > ToPlainDate(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > HoursInDay(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > Add(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > temporal_duration_like, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainYearMonth > ToPlainYearMonth(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainMonthDay > ToPlainMonthDay(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalInstant > ToInstant(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > OffsetNanoseconds(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalPlainTime > ToPlainTime(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< Smi > Compare(Isolate *isolate, DirectHandle< Object > one, DirectHandle< Object > two)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalDuration > Until(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > date_time, DirectHandle< Object > other, DirectHandle< Object > options)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > Constructor(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< Object > epoch_nanoseconds, DirectHandle< Object > time_zone_like, DirectHandle< Object > calendar_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > WithTimeZone(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > time_zone_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > Now(Isolate *isolate, DirectHandle< Object > calendar_like, DirectHandle< Object > temporal_time_zone_like)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > Round(Isolate *isolate, DirectHandle< JSTemporalZonedDateTime > zoned_date_time, DirectHandle< Object > round_to)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< JSTemporalZonedDateTime > From(Isolate *isolate, DirectHandle< Object > item, DirectHandle< Object > options)
DirectHandle< Object > new_target
DirectHandle< Object > calendar
#define DECLARE_TEMPORAL_DATE_INLINE_GETTER_SETTER()
#define DECLARE_CALENDAR_ABSTRACT_OPERATION(Name)
#define DECLARE_TEMPORAL_INLINE_GETTER_SETTER(field)
#define DECLARE_CALENDAR_ABSTRACT_INT_OPERATION(Name)
#define DECLARE_TEMPORAL_TIME_INLINE_GETTER_SETTER()
MaybeDirectHandle< JSTemporalTimeZone > CreateTemporalTimeZone(Isolate *isolate, DirectHandle< String > identifier)
MaybeDirectHandle< Object > InvokeCalendarMethod(Isolate *isolate, DirectHandle< JSReceiver > calendar, DirectHandle< String > name, DirectHandle< JSReceiver > date_like)
MaybeDirectHandle< JSTemporalPlainDateTime > CreateTemporalDateTime(Isolate *isolate, const DateTimeRecord &date_time, DirectHandle< JSReceiver > calendar)
MaybeDirectHandle< JSTemporalInstant > CreateTemporalInstant(Isolate *isolate, DirectHandle< JSFunction > target, DirectHandle< HeapObject > new_target, DirectHandle< BigInt > epoch_nanoseconds)
MaybeDirectHandle< JSTemporalCalendar > GetBuiltinCalendar(Isolate *isolate, DirectHandle< String > id)
MaybeDirectHandle< JSTemporalInstant > BuiltinTimeZoneGetInstantForCompatible(Isolate *isolate, DirectHandle< JSReceiver > time_zone, DirectHandle< JSTemporalPlainDateTime > date_time, const char *method_name)
MaybeDirectHandle< JSReceiver > ToTemporalCalendar(Isolate *isolate, DirectHandle< Object > temporal_calendar_like, const char *method_name)
Maybe< DurationRecord > ToPartialDuration(Isolate *isolate, DirectHandle< Object > temporal_duration_like_obj, const DurationRecord &input)
bool IsValidDuration(Isolate *isolate, const DurationRecord &dur)
MaybeDirectHandle< Oddball > IsInvalidTemporalCalendarField(Isolate *isolate, DirectHandle< String > next_value, DirectHandle< FixedArray > fields_name)
MaybeDirectHandle< JSReceiver > ToTemporalTimeZone(Isolate *isolate, DirectHandle< Object > temporal_time_zone_like, const char *method_name)
DirectHandle< JSTemporalCalendar > GetISO8601Calendar(Isolate *isolate)
MaybeDirectHandle< JSTemporalPlainDateTime > BuiltinTimeZoneGetPlainDateTimeFor(Isolate *isolate, DirectHandle< JSReceiver > time_zone, DirectHandle< JSTemporalInstant > instant, DirectHandle< JSReceiver > calendar, const char *method_name)
constexpr AddrMode Offset
second_parts OffsetMillisecondsOrTimeZoneIndex offset_milliseconds_or_time_zone_index
second_parts offset_milliseconds
#define DECL_BOOLEAN_ACCESSORS(name)
#define DECL_PRINTER(Name)
#define DECL_INT_ACCESSORS(name)
#define TQ_OBJECT_CONSTRUCTORS(Type)
static int32_t Sign(const DurationRecord &dur)
static Maybe< DurationRecord > Create(Isolate *isolate, double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
TimeDurationRecord time_duration
static Maybe< TimeDurationRecord > Create(Isolate *isolate, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
#define V8_WARN_UNUSED_RESULT