v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
js-temporal-objects.h
Go to the documentation of this file.
1// Copyright 2021 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_OBJECTS_JS_TEMPORAL_OBJECTS_H_
6#define V8_OBJECTS_JS_TEMPORAL_OBJECTS_H_
7
9#include "src/heap/factory.h"
10#include "src/objects/objects.h"
11
12// Has to be the last include (doesn't have include guards):
14
15namespace v8 {
16namespace internal {
17
18#include "torque-generated/src/objects/js-temporal-objects-tq.inc"
19
20#define DECLARE_TEMPORAL_INLINE_GETTER_SETTER(field) \
21 inline void set_##field(int32_t field); \
22 inline int32_t field() const;
23
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)
31
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)
36
37#define TEMPORAL_UNIMPLEMENTED(T) \
38 { \
39 printf("TBW %s\n", __PRETTY_FUNCTION__); \
40 UNIMPLEMENTED(); \
41 }
42
43class JSTemporalPlainDate;
44class JSTemporalPlainMonthDay;
45class JSTemporalPlainYearMonth;
46
48 : public TorqueGeneratedJSTemporalCalendar<JSTemporalCalendar, JSObject> {
49 public:
50 // #sec-temporal.calendar
55
56 // #sec-temporal.calendar.prototype.year
59 DirectHandle<Object> temporal_date_like);
60
61 // #sec-temporal.calendar.prototype.dateadd
65 DirectHandle<Object> options);
66
67 // #sec-temporal.calendar.prototype.daysinyear
70 DirectHandle<Object> temporal_date_like);
71
72 // #sec-temporal.calendar.prototype.dayofweek
75 DirectHandle<Object> temporal_date_like);
76
77 // #sec-temporal.calendar.prototype.dayofyear
80 DirectHandle<Object> temporal_date_like);
81
82 // #sec-temporal.calendar.prototype.monthsinyear
85 DirectHandle<Object> temporal_date_like);
86
87 // #sec-temporal.calendar.prototype.inleapyear
90 DirectHandle<Object> temporal_date_like);
91
92 // #sec-temporal.calendar.prototype.dateuntil
96 DirectHandle<Object> options);
97
98 // #sec-temporal.calendar.prototype.daysinmonth
101 DirectHandle<Object> temporal_date_like);
102
103 // #sec-temporal.calendar.prototype.daysinweek
106 DirectHandle<Object> temporal_date_like);
107
108 // #sec-temporal.calendar.prototype.datefromfields
112
113 // #sec-temporal.calendar.prototype.monthdayfromfields
118
119 // #sec-temporal.calendar.prototype.yearmonthfromfields
124 DirectHandle<Object> options);
125
126 // #sec-temporal.calendar.prototype.mergefields
129 DirectHandle<Object> fields, DirectHandle<Object> additional_fields);
130
131 // #sec-temporal.calendar.prototype.monthcode
134 DirectHandle<Object> temporal_date_like);
135
136 // #sec-temporal.calendar.prototype.month
139 DirectHandle<Object> temporal_date_like);
140
141 // #sec-temporal.calendar.prototype.day
144 DirectHandle<Object> temporal_date_like);
145
146 // #sec-temporal.calendar.prototype.weekofyear
149 DirectHandle<Object> temporal_date_like);
150
151 // #sec-temporal.calendar.prototype.tostring
154 const char* method_name);
155
156#ifdef V8_INTL_SUPPORT
159 DirectHandle<Object> temporal_date_like);
160
163 DirectHandle<Object> temporal_date_like);
164#endif // V8_INTL_SUPPORT
165
167
168 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_CALENDAR_FLAGS()
169
170 DECL_INT_ACCESSORS(calendar_index)
171
173};
174
176 : public TorqueGeneratedJSTemporalDuration<JSTemporalDuration, JSObject> {
177 public:
178 // #sec-temporal.duration
185 DirectHandle<Object> milliseconds,
186 DirectHandle<Object> microseconds,
188
189 // #sec-temporal.duration.compare
192 DirectHandle<Object> options);
193
194 // #sec-temporal.duration.from
196 Isolate* isolate, DirectHandle<Object> item);
197
198 // #sec-get-temporal.duration.prototype.sign
200 Isolate* isolate, DirectHandle<JSTemporalDuration> duration);
201
202 // #sec-get-temporal.duration.prototype.blank
204 Isolate* isolate, DirectHandle<JSTemporalDuration> duration);
205
206 // #sec-temporal.duration.prototype.negated
208 Isolate* isolate, DirectHandle<JSTemporalDuration> duration);
209
210 // #sec-temporal.duration.prototype.abs
212 Isolate* isolate, DirectHandle<JSTemporalDuration> duration);
213
214 // #sec-temporal.duration.prototype.add
216 Isolate* isolate, DirectHandle<JSTemporalDuration> duration,
218
219 // #sec-temporal.duration.prototype.subtract
221 Isolate* isolate, DirectHandle<JSTemporalDuration> duration,
223
224 // #sec-temporal.duration.prototype.round
226 Isolate* isolate, DirectHandle<JSTemporalDuration> duration,
227 DirectHandle<Object> round_to_obj);
228
229 // #sec-temporal.duration.prototype.total
231 Isolate* isolate, DirectHandle<JSTemporalDuration> duration,
232 DirectHandle<Object> total_of);
233
234 // #sec-temporal.duration.prototype.tojson
236 Isolate* isolate, DirectHandle<JSTemporalDuration> duration);
237
238 // #sec-temporal.duration.prototype.tolocalestring
240 Isolate* isolate, DirectHandle<JSTemporalDuration> duration,
242
243 // #sec-temporal.duration.prototype.tostring
245 Isolate* isolate, DirectHandle<JSTemporalDuration> duration,
246 DirectHandle<Object> options);
247
248 // #sec-temporal.duration.prototype.with
250 Isolate* isolate, DirectHandle<JSTemporalDuration> duration,
251 DirectHandle<Object> temporal_duration_like);
252
254
256};
257
259 : public TorqueGeneratedJSTemporalInstant<JSTemporalInstant, JSObject> {
260 public:
261 // #sec-temporal-instant-constructor
263 Isolate* isolate, DirectHandle<JSFunction> target,
265 DirectHandle<Object> epoch_nanoseconds);
266
267 // #sec-temporal.now.instant
269 Isolate* isolate);
270
271 // #sec-temporal.instant.fromepochseconds
273 FromEpochSeconds(Isolate* isolate, DirectHandle<Object> epoch_seconds);
274
275 // #sec-temporal.instant.fromepochmilliseconds
279
280 // #sec-temporal.instant.fromepochmicroseconds
283 DirectHandle<Object> epoch_microseconds);
284
285 // #sec-temporal.instant.fromepochnanoeconds
288 DirectHandle<Object> epoch_nanoseconds);
289
290 // #sec-temporal.instant.prototype.round
293 DirectHandle<Object> round_to);
294
295 // #sec-temporal.instant.from
297 Isolate* isolate, DirectHandle<Object> item);
298
299 // #sec-temporal.instant.prototype.tozoneddatetime
303
304 // #sec-temporal.instant.prototype.tozoneddatetimeiso
308
309 // #sec-temporal.instant.compare
312
313 // #sec-temporal.instant.prototype.equals
317
318 // #sec-temporal.instant.prototype.add
321 DirectHandle<Object> temporal_duration_like);
322
323 // #sec-temporal.instant.prototype.subtract
326 DirectHandle<Object> temporal_duration_like);
327
328 // #sec-temporal.instant.prototype.tojson
330 Isolate* isolate, DirectHandle<JSTemporalInstant> instant);
331
332 // #sec-temporal.instant.prototype.tolocalestring
336
337 // #sec-temporal.instant.prototype.tostring
340 DirectHandle<Object> options);
341
342 // #sec-temporal.instant.prototype.until
346
347 // #sec-temporal.instant.prototype.since
351
353
355};
356
358 : public TorqueGeneratedJSTemporalPlainDate<JSTemporalPlainDate, JSObject> {
359 public:
360 // #sec-temporal-createtemporaldate
364 DirectHandle<Object> iso_year, DirectHandle<Object> iso_month,
365 DirectHandle<Object> iso_day, DirectHandle<Object> calendar_like);
366
367 // #sec-temporal.plaindate.compare
370
371 // #sec-temporal.plaindate.prototype.equals
373 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date,
375
376 // #sec-temporal.plaindate.prototype.withcalendar
379 DirectHandle<Object> calendar_like);
380
381 // #sec-temporal.plaindate.prototype.toplaindatetime
383 ToPlainDateTime(Isolate* isolate,
385 DirectHandle<Object> temporal_time);
386
387 // #sec-temporal.plaindate.prototype.with
389 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date,
390 DirectHandle<Object> temporal_duration_like,
391 DirectHandle<Object> options);
392
393 // #sec-temporal.plaindate.from
395 Isolate* isolate, DirectHandle<Object> item,
396 DirectHandle<Object> options);
397
398 // #sec-temporal.plaindate.prototype.add
400 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date,
401 DirectHandle<Object> temporal_duration_like,
402 DirectHandle<Object> options);
403
404 // #sec-temporal.plaindate.prototype.subtract
406 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date,
407 DirectHandle<Object> temporal_duration_like,
408 DirectHandle<Object> options);
409
410 // #sec-temporal.plaindate.prototype.until
412 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date,
414
415 // #sec-temporal.plaindate.prototype.since
417 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date,
419
420 // #sec-temporal.plaindate.prototype.getisofields
422 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date);
423
424 // #sec-temporal.plaindate.prototype.toplainyearmonth
426 ToPlainYearMonth(Isolate* isolate,
428
429 // #sec-temporal.plaindate.prototype.toplainmonthday
431 ToPlainMonthDay(Isolate* isolate,
433
434 // #sec-temporal.plaindate.prototype.tozoneddatetime
436 ToZonedDateTime(Isolate* isolate,
439
440 // #sec-temporal.now.plaindate
442 Isolate* isolate, DirectHandle<Object> calendar_like,
443 DirectHandle<Object> temporal_time_zone_like);
444
445 // #sec-temporal.now.plaindateiso
447 Isolate* isolate, DirectHandle<Object> temporal_time_zone_like);
448
449 // #sec-temporal.plaindate.prototype.tostring
451 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date,
452 DirectHandle<Object> options);
453
454 // #sec-temporal.plaindate.prototype.tojson
456 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date);
457
458 // #sec-temporal.plaindate.prototype.tolocalestring
460 Isolate* isolate, DirectHandle<JSTemporalPlainDate> plain_date,
462
464
465 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
466
468
470};
471
473 : public TorqueGeneratedJSTemporalPlainDateTime<JSTemporalPlainDateTime,
474 JSObject> {
475 public:
476 // #sec-temporal-createtemporaldatetime
480 DirectHandle<Object> iso_year, DirectHandle<Object> iso_month,
485 DirectHandle<Object> calendar_like);
486
487 // #sec-temporal.plaindatetime.prototype.withplaintime
489 WithPlainTime(Isolate* isolate,
491 DirectHandle<Object> temporal_time_like);
492
493 // #sec-temporal.plaindatetime.prototype.withcalendar
495 WithCalendar(Isolate* isolate,
497 DirectHandle<Object> calendar_like);
498
499 // #sec-temporal.plaindatetime.from
501 Isolate* isolate, DirectHandle<Object> item,
502 DirectHandle<Object> options);
503
504 // #sec-temporal.plaindatetime.compare
507
508 // #sec-temporal.plaindatetime.prototype.equals
512
513 // #sec-temporal.plaindatetime.prototype.toplainyearmonth
515 ToPlainYearMonth(Isolate* isolate,
517
518 // #sec-temporal.plaindatetime.prototype.toplainmonthday
520 ToPlainMonthDay(Isolate* isolate,
522
523 // #sec-temporal.plaintime.prototype.tozoneddatetime
525 ToZonedDateTime(Isolate* isolate,
527 DirectHandle<Object> temporal_time_zone_like,
528 DirectHandle<Object> options_obj);
529
530 // #sec-temporal.plaindatetime.prototype.withplaindate
532 WithPlainDate(Isolate* isolate,
534 DirectHandle<Object> temporal_date_date_like);
535
536 // #sec-temporal.plaindatetime.prototype.getisofields
539
540 // #sec-temporal.plaindatetime.prototype.with
543 DirectHandle<Object> temporal_date_time_like,
544 DirectHandle<Object> options);
545
546 // #sec-temporal.plaindatetime.prototype.tojson
549
550 // #sec-temporal.plaindatetime.prototype.tolocalestring
554
555 // #sec-temporal.plaindatetime.prototype.tostring
558 DirectHandle<Object> options);
559
560 // #sec-temporal.plaindatetime.prototype.round
563 DirectHandle<Object> round_to);
564
565 // #sec-temporal.plaindatetime.prototype.until
569
570 // #sec-temporal.plaindatetime.prototype.since
574
575 // #sec-temporal.plaindatetime.prototype.add
578 DirectHandle<Object> temporal_duration_like,
579 DirectHandle<Object> options);
580
581 // #sec-temporal.plaindatetime.prototype.subtract
584 DirectHandle<Object> temporal_duration_like,
585 DirectHandle<Object> options);
586
587 // #sec-temporal.now.plaindatetime
589 Isolate* isolate, DirectHandle<Object> calendar_like,
590 DirectHandle<Object> temporal_time_zone_like);
591
592 // #sec-temporal.now.plaindatetimeiso
594 NowISO(Isolate* isolate, DirectHandle<Object> temporal_time_zone_like);
595
596 // #sec-temporal.plaindatetime.prototype.toplaindate
598 ToPlainDate(Isolate* isolate,
600
601 // #sec-temporal.plaindatetime.prototype.toplaintime
603 ToPlainTime(Isolate* isolate,
605
607
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()
611
614
616};
617
619 : public TorqueGeneratedJSTemporalPlainMonthDay<JSTemporalPlainMonthDay,
620 JSObject> {
621 public:
622 // ##sec-temporal.plainmonthday
627 DirectHandle<Object> calendar_like,
628 DirectHandle<Object> reference_iso_year);
629
630 // #sec-temporal.plainmonthday.from
632 Isolate* isolate, DirectHandle<Object> item,
633 DirectHandle<Object> options);
634
635 // #sec-temporal.plainmonthday.prototype.equals
639
640 // #sec-temporal.plainmonthday.prototype.with
643 DirectHandle<Object> temporal_month_day_like,
644 DirectHandle<Object> options);
645
646 // #sec-temporal.plainmonthday.prototype.toplaindate
650
651 // #sec-temporal.plainmonthday.prototype.getisofields
654
655 // #sec-temporal.plainmonthday.prototype.tostring
658 DirectHandle<Object> options);
659
660 // #sec-temporal.plainmonthday.prototype.tojson
663
664 // #sec-temporal.plainmonthday.prototype.tolocalestring
668
670
671 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
672
674
676};
677
679 : public TorqueGeneratedJSTemporalPlainTime<JSTemporalPlainTime, JSObject> {
680 public:
681 // #sec-temporal-plaintime-constructor
689
690 // #sec-temporal.plaintime.compare
693
694 // #sec-temporal.plaintime.prototype.equals
696 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_date,
698
699 // #sec-temporal.plaintime.from
701 Isolate* isolate, DirectHandle<Object> item,
702 DirectHandle<Object> options);
703
704 // #sec-temporal.plaintime.prototype.tozoneddatetime
706 ToZonedDateTime(Isolate* isolate,
709
710 // #sec-temporal.plaintime.prototype.add
712 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time,
713 DirectHandle<Object> temporal_duration_like);
714
715 // #sec-temporal.plaintime.prototype.subtract
717 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time,
718 DirectHandle<Object> temporal_duration_like);
719
720 // #sec-temporal.plaintime.prototype.until
722 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time,
724
725 // #sec-temporal.plaintime.prototype.since
727 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time,
729
730 // #sec-temporal.plaintime.prototype.round
732 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time,
733 DirectHandle<Object> round_to);
734
735 // #sec-temporal.plaintime.prototype.getisofields
737 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time);
738
739 // #sec-temporal.plaintime.prototype.toplaindatetime
741 ToPlainDateTime(Isolate* isolate,
743 DirectHandle<Object> temporal_date);
744
745 // #sec-temporal.plaintime.prototype.with
747 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time,
748 DirectHandle<Object> temporal_time_like, DirectHandle<Object> options);
749
750 // #sec-temporal.now.plaintimeiso
752 Isolate* isolate, DirectHandle<Object> temporal_time_zone_like);
753
754 // #sec-temporal.plaintime.prototype.tojson
756 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time);
757
758 // #sec-temporal.plaintime.prototype.tostring
760 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time,
761 DirectHandle<Object> options);
762
763 // #sec-temporal.plaintime.prototype.tolocalestring
765 Isolate* isolate, DirectHandle<JSTemporalPlainTime> plain_time,
767
769
770 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_HOUR_MINUTE_SECOND()
771 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_SECOND_PARTS()
772
774
776};
777
779 : public TorqueGeneratedJSTemporalPlainYearMonth<JSTemporalPlainYearMonth,
780 JSObject> {
781 public:
782 // ##sec-temporal.plainyearmonth
786 DirectHandle<Object> iso_year, DirectHandle<Object> iso_month,
787 DirectHandle<Object> calendar_like,
788 DirectHandle<Object> reference_iso_day);
789
790 // #sec-temporal.plainyearmonth.from
792 Isolate* isolate, DirectHandle<Object> item,
793 DirectHandle<Object> options);
794
795 // #sec-temporal.plainyearmonth.compare
798
799 // #sec-temporal.plainyearmonth.prototype.equals
803
804 // #sec-temporal.plainyearmonth.prototype.with
807 DirectHandle<Object> temporal_year_month_like,
808 DirectHandle<Object> options);
809
810 // #sec-temporal.plainyearmonth.prototype.toplaindate
812 ToPlainDate(Isolate* isolate,
815
816 // #sec-temporal.plainyearmonth.prototype.getisofields
819
820 // #sec-temporal.plainyearmonth.prototype.add
823 DirectHandle<Object> temporal_duration_like,
824 DirectHandle<Object> options);
825
826 // #sec-temporal.plainyearmonth.prototype.subtract
829 DirectHandle<Object> temporal_duration_like,
830 DirectHandle<Object> options);
831
832 // #sec-temporal.plainyearmonth.prototype.until
836
837 // #sec-temporal.plaindyearmonth.prototype.since
841
842 // #sec-temporal.plainyearmonth.prototype.tostring
845 DirectHandle<Object> options);
846
847 // #sec-temporal.plainyearmonth.prototype.tojson
850
851 // #sec-temporal.plainyearmonth.prototype.tolocalestring
855
856 // Abstract Operations
857
859
860 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
861
863
865};
866
868 : public TorqueGeneratedJSTemporalTimeZone<JSTemporalTimeZone, JSObject> {
869 public:
870 // #sec-temporal.now.timezone
872 Isolate* isolate);
873
874 // #sec-temporal.timezone
879
880 // #sec-temporal.timezone.prototype.getinstantfor
884
885 // #sec-temporal.timezone.prototype.getplaindatetimefor
889 DirectHandle<Object> instance,
890 DirectHandle<Object> calendar_like);
891
892 // #sec-temporal.timezone.prototype.getnexttransition
895 DirectHandle<Object> starting_point);
896
897 // #sec-temporal.timezone.prototype.getprevioustransition
900 DirectHandle<Object> starting_point);
901
902 // #sec-temporal.timezone.prototype.getpossibleinstantsfor
906 DirectHandle<Object> date_time);
907
908 // #sec-temporal.timezone.prototype.getoffsetnanosecondsfor
912 DirectHandle<Object> instance);
913
914 // #sec-temporal.timezone.prototype.getoffsetstringfor
917 DirectHandle<Object> instance);
918
919 // #sec-temporal.timezone.prototype.tostring
922 const char* method_name);
923
925
926 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_TIME_ZONE_FLAGS()
927 DEFINE_TORQUE_GENERATED_JS_TEMPORAL_TIME_ZONE_SUB_MILLISECONDS()
928
929 DECL_BOOLEAN_ACCESSORS(is_offset)
931
933 DECLARE_TEMPORAL_INLINE_GETTER_SETTER(offset_sub_milliseconds)
934
935 int32_t time_zone_index() const;
936 static constexpr int32_t kUTCTimeZoneIndex = 0;
937
938 int64_t offset_nanoseconds() const;
940
941 MaybeDirectHandle<String> id(Isolate* isolate) const;
942
944};
945
947 : public TorqueGeneratedJSTemporalZonedDateTime<JSTemporalZonedDateTime,
948 JSObject> {
949 public:
950 // #sec-temporal.zoneddatetime
954 DirectHandle<Object> epoch_nanoseconds,
955 DirectHandle<Object> time_zone_like,
956 DirectHandle<Object> calendar_like);
957
958 // #sec-temporal.zoneddatetime.from
960 Isolate* isolate, DirectHandle<Object> item,
961 DirectHandle<Object> options);
962
963 // #sec-temporal.zoneddatetime.compare
966
967 // #sec-temporal.zoneddatetime.prototype.equals
969 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time,
971
972 // #sec-temporal.zoneddatetime.prototype.with
974 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time,
975 DirectHandle<Object> temporal_zoned_date_time_like,
976 DirectHandle<Object> options);
977
978 // #sec-temporal.zoneddatetime.prototype.withcalendar
980 WithCalendar(Isolate* isolate,
982 DirectHandle<Object> calendar_like);
983
984 // #sec-temporal.zoneddatetime.prototype.withplaindate
986 WithPlainDate(Isolate* isolate,
988 DirectHandle<Object> plain_date_like);
989
990 // #sec-temporal.zoneddatetime.prototype.withplaintime
992 WithPlainTime(Isolate* isolate,
994 DirectHandle<Object> plain_time_like);
995
996 // #sec-temporal.zoneddatetime.prototype.withtimezone
998 WithTimeZone(Isolate* isolate,
1000 DirectHandle<Object> time_zone_like);
1001
1002 // #sec-get-temporal.zoneddatetime.prototype.hoursinday
1004 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time);
1005
1006 // #sec-temporal.zoneddatetime.prototype.round
1008 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time,
1009 DirectHandle<Object> round_to);
1010
1011 // #sec-temporal.zoneddatetime.prototype.until
1015
1016 // #sec-temporal.zoneddatetime.prototype.since
1020
1021 // #sec-temporal.zoneddatetime.prototype.add
1023 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time,
1024 DirectHandle<Object> temporal_duration_like,
1025 DirectHandle<Object> options);
1026
1027 // #sec-temporal.zoneddatetime.prototype.subtract
1029 Subtract(Isolate* isolate,
1031 DirectHandle<Object> temporal_duration_like,
1032 DirectHandle<Object> options);
1033
1034 // #sec-temporal.zoneddatetime.prototype.getisofields
1036 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time);
1037
1038 // #sec-temporal.zoneddatetime.prototype.toplainyearmonth
1040 ToPlainYearMonth(Isolate* isolate,
1042
1043 // #sec-temporal.zoneddatetime.prototype.toplainmonthday
1045 ToPlainMonthDay(Isolate* isolate,
1047
1048 // #sec-temporal.now.zoneddatetime
1050 Isolate* isolate, DirectHandle<Object> calendar_like,
1051 DirectHandle<Object> temporal_time_zone_like);
1052
1053 // #sec-temporal.now.zoneddatetimeiso
1055 NowISO(Isolate* isolate, DirectHandle<Object> temporal_time_zone_like);
1056
1057 // #sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds
1059 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time);
1060
1061 // #sec-get-temporal.zoneddatetime.prototype.offset
1063 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time);
1064
1065 // #sec-temporal.zoneddatetime.prototype.startofday
1067 StartOfDay(Isolate* isolate,
1069
1070 // #sec-temporal.zoneddatetime.prototype.toinstant
1072 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time);
1073
1074 // #sec-temporal.zoneddatetime.prototype.toplaindate
1076 ToPlainDate(Isolate* isolate,
1078
1079 // #sec-temporal.zoneddatetime.prototype.toplaintime
1081 ToPlainTime(Isolate* isolate,
1083
1084 // #sec-temporal.zoneddatetime.prototype.toplaindatetime
1086 ToPlainDateTime(Isolate* isolate,
1088
1089 // #sec-temporal.zoneddatetime.prototype.tojson
1091 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time);
1092
1093 // #sec-temporal.zoneddatetime.prototype.tolocalestring
1095 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time,
1097
1098 // #sec-temporal.zoneddatetime.prototype.tostring
1100 Isolate* isolate, DirectHandle<JSTemporalZonedDateTime> zoned_date_time,
1101 DirectHandle<Object> options);
1102
1104
1106};
1107
1108namespace temporal {
1109
1111 int32_t year;
1112 int32_t month;
1113 int32_t day;
1114};
1115
1117 int32_t hour;
1118 int32_t minute;
1119 int32_t second;
1122 int32_t nanosecond;
1123};
1124
1129
1130// #sec-temporal-createtemporaldatetime
1132CreateTemporalDateTime(Isolate* isolate, const DateTimeRecord& date_time,
1134
1135// #sec-temporal-createtemporaltimezone
1138
1139// #sec-temporal-createtemporalinstant
1143 DirectHandle<BigInt> epoch_nanoseconds);
1145CreateTemporalInstant(Isolate* isolate, DirectHandle<BigInt> epoch_nanoseconds);
1146
1147// #sec-temporal-calendaryear
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);
1168
1169#ifdef V8_INTL_SUPPORT
1172#endif // V8_INTL_SUPPORT
1173
1174#undef DECLARE_CALENDAR_ABSTRACT_OPERATION
1175
1176// #sec-temporal-getiso8601calendar
1177DirectHandle<JSTemporalCalendar> GetISO8601Calendar(Isolate* isolate);
1178
1179// #sec-temporal-builtintimezonegetplaindatetimefor
1180V8_WARN_UNUSED_RESULT MaybeDirectHandle<JSTemporalPlainDateTime>
1181BuiltinTimeZoneGetPlainDateTimeFor(Isolate* isolate,
1182 DirectHandle<JSReceiver> time_zone,
1183 DirectHandle<JSTemporalInstant> instant,
1184 DirectHandle<JSReceiver> calendar,
1185 const char* method_name);
1186
1187V8_WARN_UNUSED_RESULT MaybeDirectHandle<Object> InvokeCalendarMethod(
1188 Isolate* isolate, DirectHandle<JSReceiver> calendar,
1189 DirectHandle<String> name, DirectHandle<JSReceiver> temporal_like);
1190
1191V8_WARN_UNUSED_RESULT MaybeDirectHandle<JSReceiver> ToTemporalCalendar(
1192 Isolate* isolate, DirectHandle<Object> temporal_calendar_like,
1193 const char* method_name);
1194
1195V8_WARN_UNUSED_RESULT MaybeDirectHandle<JSReceiver> ToTemporalTimeZone(
1196 Isolate* isolate, DirectHandle<Object> temporal_time_zone_like,
1197 const char* method_name);
1198
1199V8_WARN_UNUSED_RESULT MaybeDirectHandle<Oddball> IsInvalidTemporalCalendarField(
1200 Isolate* isolate, DirectHandle<String> string,
1201 DirectHandle<FixedArray> field_names);
1202
1203// #sec-temporal-getbuiltincalendar
1204V8_WARN_UNUSED_RESULT MaybeDirectHandle<JSTemporalCalendar> GetBuiltinCalendar(
1205 Isolate* isolate, DirectHandle<String> id);
1206
1207MaybeDirectHandle<JSTemporalInstant> BuiltinTimeZoneGetInstantForCompatible(
1208 Isolate* isolate, DirectHandle<JSReceiver> time_zone,
1209 DirectHandle<JSTemporalPlainDateTime> date_time, const char* method_name);
1210
1211// For Intl.DurationFormat
1212
1213// #sec-temporal-time-duration-records
1215 double days;
1216 double hours;
1217 double minutes;
1218 double seconds;
1222
1223 // #sec-temporal-createtimedurationrecord
1224 static Maybe<TimeDurationRecord> Create(Isolate* isolate, double days,
1225 double hours, double minutes,
1226 double seconds, double milliseconds,
1227 double microseconds,
1228 double nanoseconds);
1229};
1230
1231// #sec-temporal-duration-records
1232// Cannot reuse DateDurationRecord here due to duplicate days.
1234 double years;
1235 double months;
1236 double weeks;
1238 // #sec-temporal-createdurationrecord
1239 static Maybe<DurationRecord> Create(Isolate* isolate, double years,
1240 double months, double weeks, double days,
1241 double hours, double minutes,
1242 double seconds, double milliseconds,
1243 double microseconds, double nanoseconds);
1244
1245 static int32_t Sign(const DurationRecord& dur);
1246};
1247
1248// #sec-temporal-topartialduration
1250 Isolate* isolate, DirectHandle<Object> temporal_duration_like_obj,
1251 const DurationRecord& input);
1252
1253// #sec-temporal-isvalidduration
1254bool IsValidDuration(Isolate* isolate, const DurationRecord& dur);
1255
1256} // namespace temporal
1257} // namespace internal
1258} // namespace v8
1260#endif // V8_OBJECTS_JS_TEMPORAL_OBJECTS_H_
#define one
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)
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
Definition execution.cc:75
double epoch_milliseconds
double hour
double second
double minute
double nanosecond
double years
double months
double weeks
double days
double microsecond
TimeZoneRecord time_zone
DirectHandle< Object > calendar
double millisecond
DateRecord date
#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)
static Maybe< TimeDurationRecord > Create(Isolate *isolate, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
Symbol identifier
#define V8_WARN_UNUSED_RESULT
Definition v8config.h:671