Reland "[Temporal] Part 1 - Skeleton"

This is a reland of 0adc1410b1

1. Fork out test/mjsunit/temporal/function-exist.js test
to test/mjsunit/temporal/function-exist-no-i18n.js and mark
 function-exist FAIL in no_i18n build.

Original change's description:
> [Temporal] Part 1 - Skeleton
>
> 1. Expose all the functions to empty buildins.
> 2. Wire up basic structure of classes and internal slots.
>
> Design Doc: https://docs.google.com/document/d/1Huu2OUlmveBh4wjgx0D7ouC9O9vSdiZWaRK3OwkQZU0/
>
> This is just a CL to establish a skeleton for Temporal.
> The Temporal is very big. The prototype CL is in
> https://chromium-review.googlesource.com/c/v8/v8/+/2967755
> but too big to be reviewed so I break up the basic structure here first.
>
> Cq-Include-Trybots: luci.v8.try:v8_linux64_bazel
> Bug: v8:11544
> Change-Id: I10d09e3c2530e5b1a6ba60014a2294e138879ff3
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3092561
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#76819}

Bug: v8:11544
Change-Id: I60eaface94ba9b3408cb235cd1ae425151a36732
Cq-Include-Trybots: luci.v8.try:v8_linux64_bazel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3160324
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77303}
This commit is contained in:
Frank Tang 2021-10-07 14:22:29 -07:00
parent 50d3de0204
commit 77e713f533
26 changed files with 3428 additions and 303 deletions

View File

@ -805,6 +805,7 @@ filegroup(
"src/objects/js-proxy.tq",
"src/objects/js-regexp-string-iterator.tq",
"src/objects/js-regexp.tq",
"src/objects/js-temporal-objects.tq",
"src/objects/js-weak-refs.tq",
"src/objects/literal-objects.tq",
"src/objects/map.tq",
@ -999,6 +1000,7 @@ filegroup(
"src/builtins/builtins-sharedarraybuffer.cc",
"src/builtins/builtins-string.cc",
"src/builtins/builtins-symbol.cc",
"src/builtins/builtins-temporal.cc",
"src/builtins/builtins-trace.cc",
"src/builtins/builtins-typed-array.cc",
"src/builtins/builtins-utils-inl.h",
@ -1577,6 +1579,8 @@ filegroup(
"src/objects/js-regexp-string-iterator.h",
"src/objects/js-regexp.cc",
"src/objects/js-regexp.h",
"src/objects/js-temporal-objects.h",
"src/objects/js-temporal-objects-inl.h",
"src/objects/js-weak-refs.h",
"src/objects/js-weak-refs-inl.h",
"src/objects/keys.cc",

View File

@ -1745,6 +1745,7 @@ torque_files = [
"src/objects/js-proxy.tq",
"src/objects/js-regexp-string-iterator.tq",
"src/objects/js-regexp.tq",
"src/objects/js-temporal-objects.tq",
"src/objects/js-weak-refs.tq",
"src/objects/literal-objects.tq",
"src/objects/map.tq",
@ -3142,6 +3143,8 @@ v8_header_set("v8_internal_headers") {
"src/objects/js-regexp.h",
"src/objects/js-segments-inl.h",
"src/objects/js-segments.h",
"src/objects/js-temporal-objects-inl.h",
"src/objects/js-temporal-objects.h",
"src/objects/js-weak-refs-inl.h",
"src/objects/js-weak-refs.h",
"src/objects/keys.h",
@ -3993,6 +3996,7 @@ v8_source_set("v8_base_without_compiler") {
"src/builtins/builtins-sharedarraybuffer.cc",
"src/builtins/builtins-string.cc",
"src/builtins/builtins-symbol.cc",
"src/builtins/builtins-temporal.cc",
"src/builtins/builtins-trace.cc",
"src/builtins/builtins-typed-array.cc",
"src/builtins/builtins-weak-refs.cc",

View File

@ -1044,7 +1044,579 @@ namespace internal {
\
/* CallAsyncModule* are spec anonymyous functions */ \
CPP(CallAsyncModuleFulfilled) \
CPP(CallAsyncModuleRejected)
CPP(CallAsyncModuleRejected) \
\
/* Temporal */ \
/* Temporal #sec-temporal.now.timezone */ \
CPP(TemporalNowTimeZone) \
/* Temporal #sec-temporal.now.instant */ \
CPP(TemporalNowInstant) \
/* Temporal #sec-temporal.now.plaindatetime */ \
CPP(TemporalNowPlainDateTime) \
/* Temporal #sec-temporal.now.plaindatetimeiso */ \
CPP(TemporalNowPlainDateTimeISO) \
/* Temporal #sec-temporal.now.zoneddatetime */ \
CPP(TemporalNowZonedDateTime) \
/* Temporal #sec-temporal.now.zoneddatetimeiso */ \
CPP(TemporalNowZonedDateTimeISO) \
/* Temporal #sec-temporal.now.plaindate */ \
CPP(TemporalNowPlainDate) \
/* Temporal #sec-temporal.now.plaindateiso */ \
CPP(TemporalNowPlainDateISO) \
/* There are no Temporal.now.plainTime */ \
/* See https://github.com/tc39/proposal-temporal/issues/1540 */ \
/* Temporal #sec-temporal.now.plaintimeiso */ \
CPP(TemporalNowPlainTimeISO) \
\
/* Temporal.PlaneDate */ \
/* Temporal #sec-temporal.plaindate */ \
CPP(TemporalPlainDateConstructor) \
/* Temporal #sec-temporal.plaindate.from */ \
CPP(TemporalPlainDateFrom) \
/* Temporal #sec-temporal.plaindate.compare */ \
CPP(TemporalPlainDateCompare) \
/* Temporal #sec-get-temporal.plaindate.prototype.calendar */ \
CPP(TemporalPlainDatePrototypeCalendar) \
/* Temporal #sec-get-temporal.plaindate.prototype.year */ \
CPP(TemporalPlainDatePrototypeYear) \
/* Temporal #sec-get-temporal.plaindate.prototype.month */ \
CPP(TemporalPlainDatePrototypeMonth) \
/* Temporal #sec-get-temporal.plaindate.prototype.monthcode */ \
CPP(TemporalPlainDatePrototypeMonthCode) \
/* Temporal #sec-get-temporal.plaindate.prototype.day */ \
CPP(TemporalPlainDatePrototypeDay) \
/* Temporal #sec-get-temporal.plaindate.prototype.dayofweek */ \
CPP(TemporalPlainDatePrototypeDayOfWeek) \
/* Temporal #sec-get-temporal.plaindate.prototype.dayofyear */ \
CPP(TemporalPlainDatePrototypeDayOfYear) \
/* Temporal #sec-get-temporal.plaindate.prototype.weekofyear */ \
CPP(TemporalPlainDatePrototypeWeekOfYear) \
/* Temporal #sec-get-temporal.plaindate.prototype.daysinweek */ \
CPP(TemporalPlainDatePrototypeDaysInWeek) \
/* Temporal #sec-get-temporal.plaindate.prototype.daysinmonth */ \
CPP(TemporalPlainDatePrototypeDaysInMonth) \
/* Temporal #sec-get-temporal.plaindate.prototype.daysinyear */ \
CPP(TemporalPlainDatePrototypeDaysInYear) \
/* Temporal #sec-get-temporal.plaindate.prototype.monthsinyear */ \
CPP(TemporalPlainDatePrototypeMonthsInYear) \
/* Temporal #sec-get-temporal.plaindate.prototype.inleapyear */ \
CPP(TemporalPlainDatePrototypeInLeapYear) \
/* Temporal #sec-temporal.plaindate.prototype.toplainyearmonth */ \
CPP(TemporalPlainDatePrototypeToPlainYearMonth) \
/* Temporal #sec-temporal.plaindate.prototype.toplainmonthday */ \
CPP(TemporalPlainDatePrototypeToPlainMonthDay) \
/* Temporal #sec-temporal.plaindate.prototype.getisofields */ \
CPP(TemporalPlainDatePrototypeGetISOFields) \
/* Temporal #sec-temporal.plaindate.prototype.add */ \
CPP(TemporalPlainDatePrototypeAdd) \
/* Temporal #sec-temporal.plaindate.prototype.substract */ \
CPP(TemporalPlainDatePrototypeSubtract) \
/* Temporal #sec-temporal.plaindate.prototype.with */ \
CPP(TemporalPlainDatePrototypeWith) \
/* Temporal #sec-temporal.plaindate.prototype.withcalendar */ \
CPP(TemporalPlainDatePrototypeWithCalendar) \
/* Temporal #sec-temporal.plaindate.prototype.until */ \
CPP(TemporalPlainDatePrototypeUntil) \
/* Temporal #sec-temporal.plaindate.prototype.since */ \
CPP(TemporalPlainDatePrototypeSince) \
/* Temporal #sec-temporal.plaindate.prototype.equals */ \
CPP(TemporalPlainDatePrototypeEquals) \
/* Temporal #sec-temporal.plaindate.prototype.toplaindatetime */ \
CPP(TemporalPlainDatePrototypeToPlainDateTime) \
/* Temporal #sec-temporal.plaindate.prototype.tozoneddatetime */ \
CPP(TemporalPlainDatePrototypeToZonedDateTime) \
/* Temporal #sec-temporal.plaindate.prototype.tostring */ \
CPP(TemporalPlainDatePrototypeToString) \
/* Temporal #sec-temporal.plaindate.prototype.tojson */ \
CPP(TemporalPlainDatePrototypeToJSON) \
/* Temporal #sec-temporal.plaindate.prototype.valueof */ \
CPP(TemporalPlainDatePrototypeValueOf) \
\
/* Temporal.PlaneTime */ \
/* Temporal #sec-temporal.plaintime */ \
CPP(TemporalPlainTimeConstructor) \
/* Temporal #sec-temporal.plaintime.from */ \
CPP(TemporalPlainTimeFrom) \
/* Temporal #sec-temporal.plaintime.compare */ \
CPP(TemporalPlainTimeCompare) \
/* Temporal #sec-get-temporal.plaintime.prototype.calendar */ \
CPP(TemporalPlainTimePrototypeCalendar) \
/* Temporal #sec-get-temporal.plaintime.prototype.hour */ \
CPP(TemporalPlainTimePrototypeHour) \
/* Temporal #sec-get-temporal.plaintime.prototype.minute */ \
CPP(TemporalPlainTimePrototypeMinute) \
/* Temporal #sec-get-temporal.plaintime.prototype.second */ \
CPP(TemporalPlainTimePrototypeSecond) \
/* Temporal #sec-get-temporal.plaintime.prototype.millisecond */ \
CPP(TemporalPlainTimePrototypeMillisecond) \
/* Temporal #sec-get-temporal.plaintime.prototype.microsecond */ \
CPP(TemporalPlainTimePrototypeMicrosecond) \
/* Temporal #sec-get-temporal.plaintime.prototype.nanoseond */ \
CPP(TemporalPlainTimePrototypeNanosecond) \
/* Temporal #sec-temporal.plaintime.prototype.add */ \
CPP(TemporalPlainTimePrototypeAdd) \
/* Temporal #sec-temporal.plaintime.prototype.subtract */ \
CPP(TemporalPlainTimePrototypeSubtract) \
/* Temporal #sec-temporal.plaintime.prototype.with */ \
CPP(TemporalPlainTimePrototypeWith) \
/* Temporal #sec-temporal.plaintime.prototype.until */ \
CPP(TemporalPlainTimePrototypeUntil) \
/* Temporal #sec-temporal.plaintime.prototype.since */ \
CPP(TemporalPlainTimePrototypeSince) \
/* Temporal #sec-temporal.plaintime.prototype.round */ \
CPP(TemporalPlainTimePrototypeRound) \
/* Temporal #sec-temporal.plaintime.prototype.equals */ \
CPP(TemporalPlainTimePrototypeEquals) \
/* Temporal #sec-temporal.plaintime.prototype.toplaindatetime */ \
CPP(TemporalPlainTimePrototypeToPlainDateTime) \
/* Temporal #sec-temporal.plaintime.prototype.tozoneddatetime */ \
CPP(TemporalPlainTimePrototypeToZonedDateTime) \
/* Temporal #sec-temporal.plaintime.prototype.getisofields */ \
CPP(TemporalPlainTimePrototypeGetISOFields) \
/* Temporal #sec-temporal.plaintime.prototype.tostring */ \
CPP(TemporalPlainTimePrototypeToString) \
/* Temporal #sec-temporal.plaindtimeprototype.tojson */ \
CPP(TemporalPlainTimePrototypeToJSON) \
/* Temporal #sec-temporal.plaintime.prototype.valueof */ \
CPP(TemporalPlainTimePrototypeValueOf) \
\
/* Temporal.PlaneDateTime */ \
/* Temporal #sec-temporal.plaindatetime */ \
CPP(TemporalPlainDateTimeConstructor) \
/* Temporal #sec-temporal.plaindatetime.from */ \
CPP(TemporalPlainDateTimeFrom) \
/* Temporal #sec-temporal.plaindatetime.compare */ \
CPP(TemporalPlainDateTimeCompare) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.calendar */ \
CPP(TemporalPlainDateTimePrototypeCalendar) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.year */ \
CPP(TemporalPlainDateTimePrototypeYear) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.month */ \
CPP(TemporalPlainDateTimePrototypeMonth) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.monthcode */ \
CPP(TemporalPlainDateTimePrototypeMonthCode) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.day */ \
CPP(TemporalPlainDateTimePrototypeDay) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.hour */ \
CPP(TemporalPlainDateTimePrototypeHour) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.minute */ \
CPP(TemporalPlainDateTimePrototypeMinute) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.second */ \
CPP(TemporalPlainDateTimePrototypeSecond) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.millisecond */ \
CPP(TemporalPlainDateTimePrototypeMillisecond) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.microsecond */ \
CPP(TemporalPlainDateTimePrototypeMicrosecond) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.nanosecond */ \
CPP(TemporalPlainDateTimePrototypeNanosecond) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.dayofweek */ \
CPP(TemporalPlainDateTimePrototypeDayOfWeek) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.dayofyear */ \
CPP(TemporalPlainDateTimePrototypeDayOfYear) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.weekofyear */ \
CPP(TemporalPlainDateTimePrototypeWeekOfYear) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.daysinweek */ \
CPP(TemporalPlainDateTimePrototypeDaysInWeek) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.daysinmonth */ \
CPP(TemporalPlainDateTimePrototypeDaysInMonth) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.daysinyear */ \
CPP(TemporalPlainDateTimePrototypeDaysInYear) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.monthsinyear */ \
CPP(TemporalPlainDateTimePrototypeMonthsInYear) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.inleapyear */ \
CPP(TemporalPlainDateTimePrototypeInLeapYear) \
/* Temporal #sec-temporal.plaindatetime.prototype.with */ \
CPP(TemporalPlainDateTimePrototypeWith) \
/* Temporal #sec-temporal.plaindatetime.prototype.withplainTime */ \
CPP(TemporalPlainDateTimePrototypeWithPlainTime) \
/* Temporal #sec-temporal.plaindatetime.prototype.withplainDate */ \
CPP(TemporalPlainDateTimePrototypeWithPlainDate) \
/* Temporal #sec-temporal.plaindatetime.prototype.withcalendar */ \
CPP(TemporalPlainDateTimePrototypeWithCalendar) \
/* Temporal #sec-temporal.plaindatetime.prototype.add */ \
CPP(TemporalPlainDateTimePrototypeAdd) \
/* Temporal #sec-temporal.plaindatetime.prototype.subtract */ \
CPP(TemporalPlainDateTimePrototypeSubtract) \
/* Temporal #sec-temporal.plaindatetime.prototype.until */ \
CPP(TemporalPlainDateTimePrototypeUntil) \
/* Temporal #sec-temporal.plaindatetime.prototype.since */ \
CPP(TemporalPlainDateTimePrototypeSince) \
/* Temporal #sec-temporal.plaindatetime.prototype.round */ \
CPP(TemporalPlainDateTimePrototypeRound) \
/* Temporal #sec-temporal.plaindatetime.prototype.equals */ \
CPP(TemporalPlainDateTimePrototypeEquals) \
/* Temporal #sec-temporal.plaindatetime.prototype.tostring */ \
CPP(TemporalPlainDateTimePrototypeToString) \
/* Temporal #sec-temporal.plainddatetimeprototype.tojson */ \
CPP(TemporalPlainDateTimePrototypeToJSON) \
/* Temporal #sec-temporal.plaindatetime.prototype.valueof */ \
CPP(TemporalPlainDateTimePrototypeValueOf) \
/* Temporal #sec-temporal.plaindatetime.prototype.tozoneddatetime */ \
CPP(TemporalPlainDateTimePrototypeToZonedDateTime) \
/* Temporal #sec-temporal.plaindatetime.prototype.toplaindate */ \
CPP(TemporalPlainDateTimePrototypeToPlainDate) \
/* Temporal #sec-temporal.plaindatetime.prototype.toplainyearmonth */ \
CPP(TemporalPlainDateTimePrototypeToPlainYearMonth) \
/* Temporal #sec-temporal.plaindatetime.prototype.toplainmonthday */ \
CPP(TemporalPlainDateTimePrototypeToPlainMonthDay) \
/* Temporal #sec-temporal.plaindatetime.prototype.toplaintime */ \
CPP(TemporalPlainDateTimePrototypeToPlainTime) \
/* Temporal #sec-temporal.plaindatetime.prototype.getisofields */ \
CPP(TemporalPlainDateTimePrototypeGetISOFields) \
\
/* Temporal.ZonedDateTime */ \
/* Temporal #sec-temporal.zoneddatetime */ \
CPP(TemporalZonedDateTimeConstructor) \
/* Temporal #sec-temporal.zoneddatetime.from */ \
CPP(TemporalZonedDateTimeFrom) \
/* Temporal #sec-temporal.zoneddatetime.compare */ \
CPP(TemporalZonedDateTimeCompare) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.calendar */ \
CPP(TemporalZonedDateTimePrototypeCalendar) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.timezone */ \
CPP(TemporalZonedDateTimePrototypeTimeZone) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.year */ \
CPP(TemporalZonedDateTimePrototypeYear) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.month */ \
CPP(TemporalZonedDateTimePrototypeMonth) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.monthcode */ \
CPP(TemporalZonedDateTimePrototypeMonthCode) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.day */ \
CPP(TemporalZonedDateTimePrototypeDay) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.hour */ \
CPP(TemporalZonedDateTimePrototypeHour) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.minute */ \
CPP(TemporalZonedDateTimePrototypeMinute) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.second */ \
CPP(TemporalZonedDateTimePrototypeSecond) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.millisecond */ \
CPP(TemporalZonedDateTimePrototypeMillisecond) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.microsecond */ \
CPP(TemporalZonedDateTimePrototypeMicrosecond) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.nanosecond */ \
CPP(TemporalZonedDateTimePrototypeNanosecond) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochsecond */ \
CPP(TemporalZonedDateTimePrototypeEpochSeconds) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochmilliseconds */ \
CPP(TemporalZonedDateTimePrototypeEpochMilliseconds) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochmicroseconds */ \
CPP(TemporalZonedDateTimePrototypeEpochMicroseconds) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochnanoseconds */ \
CPP(TemporalZonedDateTimePrototypeEpochNanoseconds) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.dayofweek */ \
CPP(TemporalZonedDateTimePrototypeDayOfWeek) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.dayofyear */ \
CPP(TemporalZonedDateTimePrototypeDayOfYear) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.weekofyear */ \
CPP(TemporalZonedDateTimePrototypeWeekOfYear) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.hoursinday */ \
CPP(TemporalZonedDateTimePrototypeHoursInDay) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.daysinweek */ \
CPP(TemporalZonedDateTimePrototypeDaysInWeek) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.daysinmonth */ \
CPP(TemporalZonedDateTimePrototypeDaysInMonth) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.daysinyear */ \
CPP(TemporalZonedDateTimePrototypeDaysInYear) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.monthsinyear */ \
CPP(TemporalZonedDateTimePrototypeMonthsInYear) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.inleapyear */ \
CPP(TemporalZonedDateTimePrototypeInLeapYear) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds */ \
CPP(TemporalZonedDateTimePrototypeOffsetNanoseconds) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.offset */ \
CPP(TemporalZonedDateTimePrototypeOffset) \
/* Temporal #sec-temporal.zoneddatetime.prototype.with */ \
CPP(TemporalZonedDateTimePrototypeWith) \
/* Temporal #sec-temporal.zoneddatetime.prototype.withplaintime */ \
CPP(TemporalZonedDateTimePrototypeWithPlainTime) \
/* Temporal #sec-temporal.zoneddatetime.prototype.withplaindate */ \
CPP(TemporalZonedDateTimePrototypeWithPlainDate) \
/* Temporal #sec-temporal.zoneddatetime.prototype.withtimezone */ \
CPP(TemporalZonedDateTimePrototypeWithTimeZone) \
/* Temporal #sec-temporal.zoneddatetime.prototype.withcalendar */ \
CPP(TemporalZonedDateTimePrototypeWithCalendar) \
/* Temporal #sec-temporal.zoneddatetime.prototype.add */ \
CPP(TemporalZonedDateTimePrototypeAdd) \
/* Temporal #sec-temporal.zoneddatetime.prototype.subtract */ \
CPP(TemporalZonedDateTimePrototypeSubtract) \
/* Temporal #sec-temporal.zoneddatetime.prototype.until */ \
CPP(TemporalZonedDateTimePrototypeUntil) \
/* Temporal #sec-temporal.zoneddatetime.prototype.since */ \
CPP(TemporalZonedDateTimePrototypeSince) \
/* Temporal #sec-temporal.zoneddatetime.prototype.round */ \
CPP(TemporalZonedDateTimePrototypeRound) \
/* Temporal #sec-temporal.zoneddatetime.prototype.equals */ \
CPP(TemporalZonedDateTimePrototypeEquals) \
/* Temporal #sec-temporal.zoneddatetime.prototype.tostring */ \
CPP(TemporalZonedDateTimePrototypeToString) \
/* Temporal #sec-temporal.zonedddatetimeprototype.tojson */ \
CPP(TemporalZonedDateTimePrototypeToJSON) \
/* Temporal #sec-temporal.zoneddatetime.prototype.valueof */ \
CPP(TemporalZonedDateTimePrototypeValueOf) \
/* Temporal #sec-temporal.zoneddatetime.prototype.startofday */ \
CPP(TemporalZonedDateTimePrototypeStartOfDay) \
/* Temporal #sec-temporal.zoneddatetime.prototype.toinstant */ \
CPP(TemporalZonedDateTimePrototypeToInstant) \
/* Temporal #sec-temporal.zoneddatetime.prototype.toplaindate */ \
CPP(TemporalZonedDateTimePrototypeToPlainDate) \
/* Temporal #sec-temporal.zoneddatetime.prototype.toplaintime */ \
CPP(TemporalZonedDateTimePrototypeToPlainTime) \
/* Temporal #sec-temporal.zoneddatetime.prototype.toplaindatetime */ \
CPP(TemporalZonedDateTimePrototypeToPlainDateTime) \
/* Temporal #sec-temporal.zoneddatetime.prototype.toplainyearmonth */ \
CPP(TemporalZonedDateTimePrototypeToPlainYearMonth) \
/* Temporal #sec-temporal.zoneddatetime.prototype.toplainmonthday */ \
CPP(TemporalZonedDateTimePrototypeToPlainMonthDay) \
/* Temporal #sec-temporal.zoneddatetime.prototype.getisofields */ \
CPP(TemporalZonedDateTimePrototypeGetISOFields) \
\
/* Temporal.Duration */ \
/* Temporal #sec-temporal.duration */ \
CPP(TemporalDurationConstructor) \
/* Temporal #sec-temporal.duration.from */ \
CPP(TemporalDurationFrom) \
/* Temporal #sec-temporal.duration.compare */ \
CPP(TemporalDurationCompare) \
/* Temporal #sec-get-temporal.duration.prototype.years */ \
CPP(TemporalDurationPrototypeYears) \
/* Temporal #sec-get-temporal.duration.prototype.months */ \
CPP(TemporalDurationPrototypeMonths) \
/* Temporal #sec-get-temporal.duration.prototype.weeks */ \
CPP(TemporalDurationPrototypeWeeks) \
/* Temporal #sec-get-temporal.duration.prototype.days */ \
CPP(TemporalDurationPrototypeDays) \
/* Temporal #sec-get-temporal.duration.prototype.hours */ \
CPP(TemporalDurationPrototypeHours) \
/* Temporal #sec-get-temporal.duration.prototype.minutes */ \
CPP(TemporalDurationPrototypeMinutes) \
/* Temporal #sec-get-temporal.duration.prototype.seconds */ \
CPP(TemporalDurationPrototypeSeconds) \
/* Temporal #sec-get-temporal.duration.prototype.milliseconds */ \
CPP(TemporalDurationPrototypeMilliseconds) \
/* Temporal #sec-get-temporal.duration.prototype.microseconds */ \
CPP(TemporalDurationPrototypeMicroseconds) \
/* Temporal #sec-get-temporal.duration.prototype.nanoseconds */ \
CPP(TemporalDurationPrototypeNanoseconds) \
/* Temporal #sec-get-temporal.duration.prototype.sign */ \
CPP(TemporalDurationPrototypeSign) \
/* Temporal #sec-get-temporal.duration.prototype.blank */ \
CPP(TemporalDurationPrototypeBlank) \
/* Temporal #sec-temporal.duration.prototype.with */ \
CPP(TemporalDurationPrototypeWith) \
/* Temporal #sec-temporal.duration.prototype.negated */ \
CPP(TemporalDurationPrototypeNegated) \
/* Temporal #sec-temporal.duration.prototype.abs */ \
CPP(TemporalDurationPrototypeAbs) \
/* Temporal #sec-temporal.duration.prototype.add */ \
CPP(TemporalDurationPrototypeAdd) \
/* Temporal #sec-temporal.duration.prototype.subtract */ \
CPP(TemporalDurationPrototypeSubtract) \
/* Temporal #sec-temporal.duration.prototype.round */ \
CPP(TemporalDurationPrototypeRound) \
/* Temporal #sec-temporal.duration.prototype.total */ \
CPP(TemporalDurationPrototypeTotal) \
/* Temporal #sec-temporal.duration.prototype.tostring */ \
CPP(TemporalDurationPrototypeToString) \
/* Temporal #sec-temporal.duration.tojson */ \
CPP(TemporalDurationPrototypeToJSON) \
/* Temporal #sec-temporal.duration.prototype.valueof */ \
CPP(TemporalDurationPrototypeValueOf) \
\
/* Temporal.Instant */ \
/* Temporal #sec-temporal.instant */ \
CPP(TemporalInstantConstructor) \
/* Temporal #sec-temporal.instant.from */ \
CPP(TemporalInstantFrom) \
/* Temporal #sec-temporal.instant.fromepochseconds */ \
CPP(TemporalInstantFromEpochSeconds) \
/* Temporal #sec-temporal.instant.fromepochmilliseconds */ \
CPP(TemporalInstantFromEpochMilliseconds) \
/* Temporal #sec-temporal.instant.fromepochmicroseconds */ \
CPP(TemporalInstantFromEpochMicroseconds) \
/* Temporal #sec-temporal.instant.fromepochnanoseconds */ \
CPP(TemporalInstantFromEpochNanoseconds) \
/* Temporal #sec-temporal.instant.compare */ \
CPP(TemporalInstantCompare) \
/* Temporal #sec-get-temporal.instant.prototype.epochseconds */ \
CPP(TemporalInstantPrototypeEpochSeconds) \
/* Temporal #sec-get-temporal.instant.prototype.epochmilliseconds */ \
CPP(TemporalInstantPrototypeEpochMilliseconds) \
/* Temporal #sec-get-temporal.instant.prototype.epochmicroseconds */ \
CPP(TemporalInstantPrototypeEpochMicroseconds) \
/* Temporal #sec-get-temporal.instant.prototype.epochnanoseconds */ \
CPP(TemporalInstantPrototypeEpochNanoseconds) \
/* Temporal #sec-temporal.instant.prototype.add */ \
CPP(TemporalInstantPrototypeAdd) \
/* Temporal #sec-temporal.instant.prototype.subtract */ \
CPP(TemporalInstantPrototypeSubtract) \
/* Temporal #sec-temporal.instant.prototype.until */ \
CPP(TemporalInstantPrototypeUntil) \
/* Temporal #sec-temporal.instant.prototype.since */ \
CPP(TemporalInstantPrototypeSince) \
/* Temporal #sec-temporal.instant.prototype.round */ \
CPP(TemporalInstantPrototypeRound) \
/* Temporal #sec-temporal.instant.prototype.equals */ \
CPP(TemporalInstantPrototypeEquals) \
/* Temporal #sec-temporal.instant.prototype.tostring */ \
CPP(TemporalInstantPrototypeToString) \
/* Temporal #sec-temporal.instant.tojson */ \
CPP(TemporalInstantPrototypeToJSON) \
/* Temporal #sec-temporal.instant.prototype.valueof */ \
CPP(TemporalInstantPrototypeValueOf) \
/* Temporal #sec-temporal.instant.prototype.tozoneddatetime */ \
CPP(TemporalInstantPrototypeToZonedDateTime) \
/* Temporal #sec-temporal.instant.prototype.tozoneddatetimeiso */ \
CPP(TemporalInstantPrototypeToZonedDateTimeISO) \
\
/* Temporal.PlainYearMonth */ \
/* Temporal #sec-temporal.plainyearmonth */ \
CPP(TemporalPlainYearMonthConstructor) \
/* Temporal #sec-temporal.plainyearmonth.from */ \
CPP(TemporalPlainYearMonthFrom) \
/* Temporal #sec-temporal.plainyearmonth.compare */ \
CPP(TemporalPlainYearMonthCompare) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.calendar */ \
CPP(TemporalPlainYearMonthPrototypeCalendar) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.year */ \
CPP(TemporalPlainYearMonthPrototypeYear) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.month */ \
CPP(TemporalPlainYearMonthPrototypeMonth) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.monthcode */ \
CPP(TemporalPlainYearMonthPrototypeMonthCode) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.daysinyear */ \
CPP(TemporalPlainYearMonthPrototypeDaysInYear) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.daysinmonth */ \
CPP(TemporalPlainYearMonthPrototypeDaysInMonth) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.monthsinyear */ \
CPP(TemporalPlainYearMonthPrototypeMonthsInYear) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.inleapyear */ \
CPP(TemporalPlainYearMonthPrototypeInLeapYear) \
/* Temporal #sec-temporal.plainyearmonth.prototype.with */ \
CPP(TemporalPlainYearMonthPrototypeWith) \
/* Temporal #sec-temporal.plainyearmonth.prototype.add */ \
CPP(TemporalPlainYearMonthPrototypeAdd) \
/* Temporal #sec-temporal.plainyearmonth.prototype.subtract */ \
CPP(TemporalPlainYearMonthPrototypeSubtract) \
/* Temporal #sec-temporal.plainyearmonth.prototype.until */ \
CPP(TemporalPlainYearMonthPrototypeUntil) \
/* Temporal #sec-temporal.plainyearmonth.prototype.since */ \
CPP(TemporalPlainYearMonthPrototypeSince) \
/* Temporal #sec-temporal.plainyearmonth.prototype.equals */ \
CPP(TemporalPlainYearMonthPrototypeEquals) \
/* Temporal #sec-temporal.plainyearmonth.tostring */ \
CPP(TemporalPlainYearMonthPrototypeToString) \
/* Temporal #sec-temporal.plainyearmonth.tojson */ \
CPP(TemporalPlainYearMonthPrototypeToJSON) \
/* Temporal #sec-temporal.plainyearmonth.prototype.valueof */ \
CPP(TemporalPlainYearMonthPrototypeValueOf) \
/* Temporal #sec-temporal.plainyearmonth.prototype.toplaindate */ \
CPP(TemporalPlainYearMonthPrototypeToPlainDate) \
/* Temporal #sec-temporal.plainyearmonth.prototype.getisofields */ \
CPP(TemporalPlainYearMonthPrototypeGetISOFields) \
\
/* Temporal.PlainMonthDay */ \
/* Temporal #sec-temporal.plainmonthday */ \
CPP(TemporalPlainMonthDayConstructor) \
/* Temporal #sec-temporal.plainmonthday.from */ \
CPP(TemporalPlainMonthDayFrom) \
/* There are no compare for PlainMonthDay */ \
/* See https://github.com/tc39/proposal-temporal/issues/1547 */ \
/* Temporal #sec-get-temporal.plainmonthday.prototype.calendar */ \
CPP(TemporalPlainMonthDayPrototypeCalendar) \
/* Temporal #sec-get-temporal.plainmonthday.prototype.monthcode */ \
CPP(TemporalPlainMonthDayPrototypeMonthCode) \
/* Temporal #sec-get-temporal.plainmonthday.prototype.day */ \
CPP(TemporalPlainMonthDayPrototypeDay) \
/* Temporal #sec-temporal.plainmonthday.prototype.with */ \
CPP(TemporalPlainMonthDayPrototypeWith) \
/* Temporal #sec-temporal.plainmonthday.prototype.equals */ \
CPP(TemporalPlainMonthDayPrototypeEquals) \
/* Temporal #sec-temporal.plainmonthday.prototype.tostring */ \
CPP(TemporalPlainMonthDayPrototypeToString) \
/* Temporal #sec-temporal.plainmonthday.tojson */ \
CPP(TemporalPlainMonthDayPrototypeToJSON) \
/* Temporal #sec-temporal.plainmonthday.prototype.valueof */ \
CPP(TemporalPlainMonthDayPrototypeValueOf) \
/* Temporal #sec-temporal.plainmonthday.prototype.toplaindate */ \
CPP(TemporalPlainMonthDayPrototypeToPlainDate) \
/* Temporal #sec-temporal.plainmonthday.prototype.getisofields */ \
CPP(TemporalPlainMonthDayPrototypeGetISOFields) \
\
/* Temporal.TimeZone */ \
/* Temporal #sec-temporal.timezone */ \
CPP(TemporalTimeZoneConstructor) \
/* Temporal #sec-temporal.timezone.from */ \
CPP(TemporalTimeZoneFrom) \
/* Temporal #sec-get-temporal.timezone.prototype.id */ \
CPP(TemporalTimeZonePrototypeId) \
/* Temporal #sec-temporal.timezone.prototype.getoffsetnanosecondsfor */ \
CPP(TemporalTimeZonePrototypeGetOffsetNanosecondsFor) \
/* Temporal #sec-temporal.timezone.prototype.getoffsetstringfor */ \
CPP(TemporalTimeZonePrototypeGetOffsetStringFor) \
/* Temporal #sec-temporal.timezone.prototype.getplaindatetimefor */ \
CPP(TemporalTimeZonePrototypeGetPlainDateTimeFor) \
/* Temporal #sec-temporal.timezone.prototype.getinstantfor */ \
CPP(TemporalTimeZonePrototypeGetInstantFor) \
/* Temporal #sec-temporal.timezone.prototype.getpossibleinstantsfor */ \
CPP(TemporalTimeZonePrototypeGetPossibleInstantsFor) \
/* Temporal #sec-temporal.timezone.prototype.getnexttransition */ \
CPP(TemporalTimeZonePrototypeGetNextTransition) \
/* Temporal #sec-temporal.timezone.prototype.getprevioustransition */ \
CPP(TemporalTimeZonePrototypeGetPreviousTransition) \
/* Temporal #sec-temporal.timezone.prototype.tostring */ \
CPP(TemporalTimeZonePrototypeToString) \
/* Temporal #sec-temporal.timezone.prototype.tojson */ \
CPP(TemporalTimeZonePrototypeToJSON) \
\
/* Temporal.Calendar */ \
/* Temporal #sec-temporal.calendar */ \
CPP(TemporalCalendarConstructor) \
/* Temporal #sec-temporal.calendar.from */ \
CPP(TemporalCalendarFrom) \
/* Temporal #sec-get-temporal.calendar.prototype.id */ \
CPP(TemporalCalendarPrototypeId) \
/* Temporal #sec-temporal.calendar.prototype.datefromfields */ \
CPP(TemporalCalendarPrototypeDateFromFields) \
/* Temporal #sec-temporal.calendar.prototype.yearmonthfromfields */ \
CPP(TemporalCalendarPrototypeYearMonthFromFields) \
/* Temporal #sec-temporal.calendar.prototype.monthdayfromfields */ \
CPP(TemporalCalendarPrototypeMonthDayFromFields) \
/* Temporal #sec-temporal.calendar.prototype.dateadd */ \
CPP(TemporalCalendarPrototypeDateAdd) \
/* Temporal #sec-temporal.calendar.prototype.dateuntil */ \
CPP(TemporalCalendarPrototypeDateUntil) \
/* Temporal #sec-temporal.calendar.prototype.year */ \
CPP(TemporalCalendarPrototypeYear) \
/* Temporal #sec-temporal.calendar.prototype.month */ \
CPP(TemporalCalendarPrototypeMonth) \
/* Temporal #sec-temporal.calendar.prototype.monthcode */ \
CPP(TemporalCalendarPrototypeMonthCode) \
/* Temporal #sec-temporal.calendar.prototype.day */ \
CPP(TemporalCalendarPrototypeDay) \
/* Temporal #sec-temporal.calendar.prototype.dayofweek */ \
CPP(TemporalCalendarPrototypeDayOfWeek) \
/* Temporal #sec-temporal.calendar.prototype.dayofyear */ \
CPP(TemporalCalendarPrototypeDayOfYear) \
/* Temporal #sec-temporal.calendar.prototype.weekofyear */ \
CPP(TemporalCalendarPrototypeWeekOfYear) \
/* Temporal #sec-temporal.calendar.prototype.daysinweek */ \
CPP(TemporalCalendarPrototypeDaysInWeek) \
/* Temporal #sec-temporal.calendar.prototype.daysinmonth */ \
CPP(TemporalCalendarPrototypeDaysInMonth) \
/* Temporal #sec-temporal.calendar.prototype.daysinyear */ \
CPP(TemporalCalendarPrototypeDaysInYear) \
/* Temporal #sec-temporal.calendar.prototype.monthsinyear */ \
CPP(TemporalCalendarPrototypeMonthsInYear) \
/* Temporal #sec-temporal.calendar.prototype.inleapyear */ \
CPP(TemporalCalendarPrototypeInLeapYear) \
/* Temporal #sec-temporal.calendar.prototype.fields */ \
CPP(TemporalCalendarPrototypeFields) \
/* Temporal #sec-temporal.calendar.prototype.mergefields */ \
CPP(TemporalCalendarPrototypeMergeFields) \
/* Temporal #sec-temporal.calendar.prototype.tostring */ \
CPP(TemporalCalendarPrototypeToString) \
/* Temporal #sec-temporal.calendar.prototype.tojson */ \
CPP(TemporalCalendarPrototypeToJSON)
#define BUILTIN_LIST_BASE(CPP, TFJ, TFC, TFS, TFH, ASM) \
BUILTIN_LIST_BASE_TIER0(CPP, TFJ, TFC, TFS, TFH, ASM) \
@ -1203,6 +1775,45 @@ namespace internal {
/* ES #sec-string.prototype.touppercase */ \
CPP(StringPrototypeToUpperCaseIntl) \
TFS(StringToLowerCaseIntl, kString) \
\
/* Temporal */ \
/* Temporal #sec-temporal.calendar.prototype.era */ \
CPP(TemporalCalendarPrototypeEra) \
/* Temporal #sec-temporal.calendar.prototype.erayear */ \
CPP(TemporalCalendarPrototypeEraYear) \
/* Temporal #sec-temporal.duration.prototype.tolocalestring */ \
CPP(TemporalDurationPrototypeToLocaleString) \
/* Temporal #sec-temporal.instant.prototype.tolocalestring */ \
CPP(TemporalInstantPrototypeToLocaleString) \
/* Temporal #sec-get-temporal.plaindate.prototype.era */ \
CPP(TemporalPlainDatePrototypeEra) \
/* Temporal #sec-get-temporal.plaindate.prototype.erayear */ \
CPP(TemporalPlainDatePrototypeEraYear) \
/* Temporal #sec-temporal.plaindate.prototype.tolocalestring */ \
CPP(TemporalPlainDatePrototypeToLocaleString) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.era */ \
CPP(TemporalPlainDateTimePrototypeEra) \
/* Temporal #sec-get-temporal.plaindatetime.prototype.erayear */ \
CPP(TemporalPlainDateTimePrototypeEraYear) \
/* Temporal #sec-temporal.plaindatetime.prototype.tolocalestring */ \
CPP(TemporalPlainDateTimePrototypeToLocaleString) \
/* Temporal #sec-temporal.plainmonthday.prototype.tolocalestring */ \
CPP(TemporalPlainMonthDayPrototypeToLocaleString) \
/* Temporal #sec-temporal.plaintime.prototype.tolocalestring */ \
CPP(TemporalPlainTimePrototypeToLocaleString) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.era */ \
CPP(TemporalPlainYearMonthPrototypeEra) \
/* Temporal #sec-get-temporal.plainyearmonth.prototype.erayear */ \
CPP(TemporalPlainYearMonthPrototypeEraYear) \
/* Temporal #sec-temporal.plainyearmonth.prototype.tolocalestring */ \
CPP(TemporalPlainYearMonthPrototypeToLocaleString) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.era */ \
CPP(TemporalZonedDateTimePrototypeEra) \
/* Temporal #sec-get-temporal.zoneddatetime.prototype.erayear */ \
CPP(TemporalZonedDateTimePrototypeEraYear) \
/* Temporal #sec-temporal.zoneddatetime.prototype.tolocalestring */ \
CPP(TemporalZonedDateTimePrototypeToLocaleString) \
\
CPP(V8BreakIteratorConstructor) \
CPP(V8BreakIteratorInternalAdoptText) \
CPP(V8BreakIteratorInternalBreakType) \

View File

@ -0,0 +1,631 @@
// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/builtins/builtins-utils-inl.h"
#include "src/builtins/builtins.h"
#include "src/objects/bigint.h"
#include "src/objects/js-temporal-objects-inl.h"
namespace v8 {
namespace internal {
#define TO_BE_IMPLEMENTED(id) \
BUILTIN(id) { \
HandleScope scope(isolate); \
UNIMPLEMENTED(); \
}
/* Temporal #sec-temporal.now.timezone */
TO_BE_IMPLEMENTED(TemporalNowTimeZone)
/* Temporal #sec-temporal.now.instant */
TO_BE_IMPLEMENTED(TemporalNowInstant)
/* Temporal #sec-temporal.now.plaindatetime */
TO_BE_IMPLEMENTED(TemporalNowPlainDateTime)
/* Temporal #sec-temporal.now.plaindatetimeiso */
TO_BE_IMPLEMENTED(TemporalNowPlainDateTimeISO)
/* Temporal #sec-temporal.now.zoneddatetime */
TO_BE_IMPLEMENTED(TemporalNowZonedDateTime)
/* Temporal #sec-temporal.now.zoneddatetimeiso */
TO_BE_IMPLEMENTED(TemporalNowZonedDateTimeISO)
/* Temporal #sec-temporal.now.plaindate */
TO_BE_IMPLEMENTED(TemporalNowPlainDate)
/* Temporal #sec-temporal.now.plaindateiso */
TO_BE_IMPLEMENTED(TemporalNowPlainDateISO)
/* There are no Temporal.now.plainTime */
/* See https://github.com/tc39/proposal-temporal/issues/1540 */
/* Temporal #sec-temporal.now.plaintimeiso */
TO_BE_IMPLEMENTED(TemporalNowPlainTimeISO)
/* Temporal.PlaneDate */
/* Temporal #sec-temporal.plaindate */
TO_BE_IMPLEMENTED(TemporalPlainDateConstructor)
/* Temporal #sec-temporal.plaindate.from */
TO_BE_IMPLEMENTED(TemporalPlainDateFrom)
/* Temporal #sec-temporal.plaindate.compare */
TO_BE_IMPLEMENTED(TemporalPlainDateCompare)
/* Temporal #sec-get-temporal.plaindate.prototype.calendar */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeCalendar)
/* Temporal #sec-get-temporal.plaindate.prototype.year */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeYear)
/* Temporal #sec-get-temporal.plaindate.prototype.month */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeMonth)
/* Temporal #sec-get-temporal.plaindate.prototype.monthcode */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeMonthCode)
/* Temporal #sec-get-temporal.plaindate.prototype.day */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeDay)
/* Temporal #sec-get-temporal.plaindate.prototype.dayofweek */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeDayOfWeek)
/* Temporal #sec-get-temporal.plaindate.prototype.dayofyear */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeDayOfYear)
/* Temporal #sec-get-temporal.plaindate.prototype.weekofyear */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeWeekOfYear)
/* Temporal #sec-get-temporal.plaindate.prototype.daysinweek */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeDaysInWeek)
/* Temporal #sec-get-temporal.plaindate.prototype.daysinmonth */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeDaysInMonth)
/* Temporal #sec-get-temporal.plaindate.prototype.daysinyear */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeDaysInYear)
/* Temporal #sec-get-temporal.plaindate.prototype.monthsinyear */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeMonthsInYear)
/* Temporal #sec-get-temporal.plaindate.prototype.inleapyear */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeInLeapYear)
/* Temporal #sec-temporal.plaindate.prototype.toplainyearmonth */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeToPlainYearMonth)
/* Temporal #sec-temporal.plaindate.prototype.toplainmonthday */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeToPlainMonthDay)
/* Temporal #sec-temporal.plaindate.prototype.getisofields */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeGetISOFields)
/* Temporal #sec-temporal.plaindate.prototype.add */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeAdd)
/* Temporal #sec-temporal.plaindate.prototype.substract */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeSubtract)
/* Temporal #sec-temporal.plaindate.prototype.with */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeWith)
/* Temporal #sec-temporal.plaindate.prototype.withcalendar */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeWithCalendar)
/* Temporal #sec-temporal.plaindate.prototype.until */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeUntil)
/* Temporal #sec-temporal.plaindate.prototype.since */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeSince)
/* Temporal #sec-temporal.plaindate.prototype.equals */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeEquals)
/* Temporal #sec-temporal.plaindate.prototype.toplaindatetime */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeToPlainDateTime)
/* Temporal #sec-temporal.plaindate.prototype.tozoneddatetime */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeToZonedDateTime)
/* Temporal #sec-temporal.plaindate.prototype.tostring */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeToString)
/* Temporal #sec-temporal.plaindate.prototype.tojson */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeToJSON)
/* Temporal #sec-temporal.plaindate.prototype.valueof */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeValueOf)
/* Temporal.PlaneTime */
/* Temporal #sec-temporal.plaintime */
TO_BE_IMPLEMENTED(TemporalPlainTimeConstructor)
/* Temporal #sec-temporal.plaintime.from */
TO_BE_IMPLEMENTED(TemporalPlainTimeFrom)
/* Temporal #sec-temporal.plaintime.compare */
TO_BE_IMPLEMENTED(TemporalPlainTimeCompare)
/* Temporal #sec-get-temporal.plaintime.prototype.calendar */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeCalendar)
/* Temporal #sec-get-temporal.plaintime.prototype.hour */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeHour)
/* Temporal #sec-get-temporal.plaintime.prototype.minute */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeMinute)
/* Temporal #sec-get-temporal.plaintime.prototype.second */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeSecond)
/* Temporal #sec-get-temporal.plaintime.prototype.millisecond */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeMillisecond)
/* Temporal #sec-get-temporal.plaintime.prototype.microsecond */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeMicrosecond)
/* Temporal #sec-get-temporal.plaintime.prototype.nanoseond */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeNanosecond)
/* Temporal #sec-temporal.plaintime.prototype.add */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeAdd)
/* Temporal #sec-temporal.plaintime.prototype.subtract */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeSubtract)
/* Temporal #sec-temporal.plaintime.prototype.with */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeWith)
/* Temporal #sec-temporal.plaintime.prototype.until */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeUntil)
/* Temporal #sec-temporal.plaintime.prototype.since */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeSince)
/* Temporal #sec-temporal.plaintime.prototype.round */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeRound)
/* Temporal #sec-temporal.plaintime.prototype.equals */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeEquals)
/* Temporal #sec-temporal.plaintime.prototype.toplaindatetime */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeToPlainDateTime)
/* Temporal #sec-temporal.plaintime.prototype.tozoneddatetime */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeToZonedDateTime)
/* Temporal #sec-temporal.plaintime.prototype.getisofields */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeGetISOFields)
/* Temporal #sec-temporal.plaintime.prototype.tostring */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeToString)
/* Temporal #sec-temporal.plaindtimeprototype.tojson */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeToJSON)
/* Temporal #sec-temporal.plaintime.prototype.valueof */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeValueOf)
/* Temporal.PlaneDateTime */
/* Temporal #sec-temporal.plaindatetime */
TO_BE_IMPLEMENTED(TemporalPlainDateTimeConstructor)
/* Temporal #sec-temporal.plaindatetime.from */
TO_BE_IMPLEMENTED(TemporalPlainDateTimeFrom)
/* Temporal #sec-temporal.plaindatetime.compare */
TO_BE_IMPLEMENTED(TemporalPlainDateTimeCompare)
/* Temporal #sec-get-temporal.plaindatetime.prototype.calendar */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeCalendar)
/* Temporal #sec-get-temporal.plaindatetime.prototype.year */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeYear)
/* Temporal #sec-get-temporal.plaindatetime.prototype.month */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeMonth)
/* Temporal #sec-get-temporal.plaindatetime.prototype.monthcode */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeMonthCode)
/* Temporal #sec-get-temporal.plaindatetime.prototype.day */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeDay)
/* Temporal #sec-get-temporal.plaindatetime.prototype.hour */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeHour)
/* Temporal #sec-get-temporal.plaindatetime.prototype.minute */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeMinute)
/* Temporal #sec-get-temporal.plaindatetime.prototype.second */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeSecond)
/* Temporal #sec-get-temporal.plaindatetime.prototype.millisecond */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeMillisecond)
/* Temporal #sec-get-temporal.plaindatetime.prototype.microsecond */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeMicrosecond)
/* Temporal #sec-get-temporal.plaindatetime.prototype.nanosecond */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeNanosecond)
/* Temporal #sec-get-temporal.plaindatetime.prototype.dayofweek */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeDayOfWeek)
/* Temporal #sec-get-temporal.plaindatetime.prototype.dayofyear */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeDayOfYear)
/* Temporal #sec-get-temporal.plaindatetime.prototype.weekofyear */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeWeekOfYear)
/* Temporal #sec-get-temporal.plaindatetime.prototype.daysinweek */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeDaysInWeek)
/* Temporal #sec-get-temporal.plaindatetime.prototype.daysinmonth */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeDaysInMonth)
/* Temporal #sec-get-temporal.plaindatetime.prototype.daysinyear */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeDaysInYear)
/* Temporal #sec-get-temporal.plaindatetime.prototype.monthsinyear */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeMonthsInYear)
/* Temporal #sec-get-temporal.plaindatetime.prototype.inleapyear */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeInLeapYear)
/* Temporal #sec-temporal.plaindatetime.prototype.with */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeWith)
/* Temporal #sec-temporal.plaindatetime.prototype.withplainTime */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeWithPlainTime)
/* Temporal #sec-temporal.plaindatetime.prototype.withplainDate */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeWithPlainDate)
/* Temporal #sec-temporal.plaindatetime.prototype.withcalendar */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeWithCalendar)
/* Temporal #sec-temporal.plaindatetime.prototype.add */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeAdd)
/* Temporal #sec-temporal.plaindatetime.prototype.subtract */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeSubtract)
/* Temporal #sec-temporal.plaindatetime.prototype.until */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeUntil)
/* Temporal #sec-temporal.plaindatetime.prototype.since */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeSince)
/* Temporal #sec-temporal.plaindatetime.prototype.round */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeRound)
/* Temporal #sec-temporal.plaindatetime.prototype.equals */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeEquals)
/* Temporal #sec-temporal.plaindatetime.prototype.tostring */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeToString)
/* Temporal #sec-temporal.plainddatetimeprototype.tojson */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeToJSON)
/* Temporal #sec-temporal.plaindatetime.prototype.valueof */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeValueOf)
/* Temporal #sec-temporal.plaindatetime.prototype.tozoneddatetime */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeToZonedDateTime)
/* Temporal #sec-temporal.plaindatetime.prototype.toplaindate */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeToPlainDate)
/* Temporal #sec-temporal.plaindatetime.prototype.toplainyearmonth */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeToPlainYearMonth)
/* Temporal #sec-temporal.plaindatetime.prototype.toplainmonthday */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeToPlainMonthDay)
/* Temporal #sec-temporal.plaindatetime.prototype.toplaintime */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeToPlainTime)
/* Temporal #sec-temporal.plaindatetime.prototype.getisofields */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeGetISOFields)
/* Temporal.ZonedDateTime */
/* Temporal #sec-temporal.zoneddatetime */
TO_BE_IMPLEMENTED(TemporalZonedDateTimeConstructor)
/* Temporal #sec-temporal.zoneddatetime.from */
TO_BE_IMPLEMENTED(TemporalZonedDateTimeFrom)
/* Temporal #sec-temporal.zoneddatetime.compare */
TO_BE_IMPLEMENTED(TemporalZonedDateTimeCompare)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.calendar */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeCalendar)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.timezone */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeTimeZone)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.year */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeYear)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.month */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeMonth)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.monthcode */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeMonthCode)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.day */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeDay)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.hour */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeHour)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.minute */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeMinute)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.second */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeSecond)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.millisecond */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeMillisecond)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.microsecond */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeMicrosecond)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.nanosecond */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeNanosecond)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochsecond */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeEpochSeconds)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochmilliseconds */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeEpochMilliseconds)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochmicroseconds */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeEpochMicroseconds)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochnanoseconds */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeEpochNanoseconds)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.dayofweek */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeDayOfWeek)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.dayofyear */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeDayOfYear)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.weekofyear */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeWeekOfYear)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.hoursinday */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeHoursInDay)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.daysinweek */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeDaysInWeek)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.daysinmonth */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeDaysInMonth)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.daysinyear */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeDaysInYear)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.monthsinyear */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeMonthsInYear)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.inleapyear */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeInLeapYear)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeOffsetNanoseconds)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.offset */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeOffset)
/* Temporal #sec-temporal.zoneddatetime.prototype.with */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeWith)
/* Temporal #sec-temporal.zoneddatetime.prototype.withplaintime */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeWithPlainTime)
/* Temporal #sec-temporal.zoneddatetime.prototype.withplaindate */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeWithPlainDate)
/* Temporal #sec-temporal.zoneddatetime.prototype.withtimezone */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeWithTimeZone)
/* Temporal #sec-temporal.zoneddatetime.prototype.withcalendar */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeWithCalendar)
/* Temporal #sec-temporal.zoneddatetime.prototype.add */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeAdd)
/* Temporal #sec-temporal.zoneddatetime.prototype.subtract */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeSubtract)
/* Temporal #sec-temporal.zoneddatetime.prototype.until */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeUntil)
/* Temporal #sec-temporal.zoneddatetime.prototype.since */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeSince)
/* Temporal #sec-temporal.zoneddatetime.prototype.round */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeRound)
/* Temporal #sec-temporal.zoneddatetime.prototype.equals */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeEquals)
/* Temporal #sec-temporal.zoneddatetime.prototype.tostring */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeToString)
/* Temporal #sec-temporal.zonedddatetimeprototype.tojson */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeToJSON)
/* Temporal #sec-temporal.zoneddatetime.prototype.valueof */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeValueOf)
/* Temporal #sec-temporal.zoneddatetime.prototype.startofday */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeStartOfDay)
/* Temporal #sec-temporal.zoneddatetime.prototype.toinstant */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeToInstant)
/* Temporal #sec-temporal.zoneddatetime.prototype.toplaindate */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeToPlainDate)
/* Temporal #sec-temporal.zoneddatetime.prototype.toplaintime */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeToPlainTime)
/* Temporal #sec-temporal.zoneddatetime.prototype.toplaindatetime */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeToPlainDateTime)
/* Temporal #sec-temporal.zoneddatetime.prototype.toplainyearmonth */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeToPlainYearMonth)
/* Temporal #sec-temporal.zoneddatetime.prototype.toplainmonthday */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeToPlainMonthDay)
/* Temporal #sec-temporal.zoneddatetime.prototype.getisofields */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeGetISOFields)
/* Temporal.Duration */
/* Temporal #sec-temporal.duration */
TO_BE_IMPLEMENTED(TemporalDurationConstructor)
/* Temporal #sec-temporal.duration.from */
TO_BE_IMPLEMENTED(TemporalDurationFrom)
/* Temporal #sec-temporal.duration.compare */
TO_BE_IMPLEMENTED(TemporalDurationCompare)
/* Temporal #sec-get-temporal.duration.prototype.years */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeYears)
/* Temporal #sec-get-temporal.duration.prototype.months */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeMonths)
/* Temporal #sec-get-temporal.duration.prototype.weeks */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeWeeks)
/* Temporal #sec-get-temporal.duration.prototype.days */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeDays)
/* Temporal #sec-get-temporal.duration.prototype.hours */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeHours)
/* Temporal #sec-get-temporal.duration.prototype.minutes */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeMinutes)
/* Temporal #sec-get-temporal.duration.prototype.seconds */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeSeconds)
/* Temporal #sec-get-temporal.duration.prototype.milliseconds */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeMilliseconds)
/* Temporal #sec-get-temporal.duration.prototype.microseconds */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeMicroseconds)
/* Temporal #sec-get-temporal.duration.prototype.nanoseconds */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeNanoseconds)
/* Temporal #sec-get-temporal.duration.prototype.sign */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeSign)
/* Temporal #sec-get-temporal.duration.prototype.blank */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeBlank)
/* Temporal #sec-temporal.duration.prototype.with */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeWith)
/* Temporal #sec-temporal.duration.prototype.negated */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeNegated)
/* Temporal #sec-temporal.duration.prototype.abs */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeAbs)
/* Temporal #sec-temporal.duration.prototype.add */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeAdd)
/* Temporal #sec-temporal.duration.prototype.subtract */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeSubtract)
/* Temporal #sec-temporal.duration.prototype.round */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeRound)
/* Temporal #sec-temporal.duration.prototype.total */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeTotal)
/* Temporal #sec-temporal.duration.prototype.tostring */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeToString)
/* Temporal #sec-temporal.duration.tojson */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeToJSON)
/* Temporal #sec-temporal.duration.prototype.valueof */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeValueOf)
/* Temporal.Instant */
/* Temporal #sec-temporal.instant */
TO_BE_IMPLEMENTED(TemporalInstantConstructor)
/* Temporal #sec-temporal.instant.from */
TO_BE_IMPLEMENTED(TemporalInstantFrom)
/* Temporal #sec-temporal.instant.fromepochseconds */
TO_BE_IMPLEMENTED(TemporalInstantFromEpochSeconds)
/* Temporal #sec-temporal.instant.fromepochmilliseconds */
TO_BE_IMPLEMENTED(TemporalInstantFromEpochMilliseconds)
/* Temporal #sec-temporal.instant.fromepochmicroseconds */
TO_BE_IMPLEMENTED(TemporalInstantFromEpochMicroseconds)
/* Temporal #sec-temporal.instant.fromepochnanoseconds */
TO_BE_IMPLEMENTED(TemporalInstantFromEpochNanoseconds)
/* Temporal #sec-temporal.instant.compare */
TO_BE_IMPLEMENTED(TemporalInstantCompare)
/* Temporal #sec-get-temporal.instant.prototype.epochseconds */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeEpochSeconds)
/* Temporal #sec-get-temporal.instant.prototype.epochmilliseconds */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeEpochMilliseconds)
/* Temporal #sec-get-temporal.instant.prototype.epochmicroseconds */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeEpochMicroseconds)
/* Temporal #sec-get-temporal.instant.prototype.epochnanoseconds */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeEpochNanoseconds)
/* Temporal #sec-temporal.instant.prototype.add */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeAdd)
/* Temporal #sec-temporal.instant.prototype.subtract */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeSubtract)
/* Temporal #sec-temporal.instant.prototype.until */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeUntil)
/* Temporal #sec-temporal.instant.prototype.since */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeSince)
/* Temporal #sec-temporal.instant.prototype.round */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeRound)
/* Temporal #sec-temporal.instant.prototype.equals */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeEquals)
/* Temporal #sec-temporal.instant.prototype.tostring */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeToString)
/* Temporal #sec-temporal.instant.tojson */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeToJSON)
/* Temporal #sec-temporal.instant.prototype.valueof */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeValueOf)
/* Temporal #sec-temporal.instant.prototype.tozoneddatetime */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeToZonedDateTime)
/* Temporal #sec-temporal.instant.prototype.tozoneddatetimeiso */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeToZonedDateTimeISO)
/* Temporal.PlainYearMonth */
/* Temporal #sec-temporal.plainyearmonth */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthConstructor)
/* Temporal #sec-temporal.plainyearmonth.from */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthFrom)
/* Temporal #sec-temporal.plainyearmonth.compare */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthCompare)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.calendar */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeCalendar)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.year */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeYear)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.month */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeMonth)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.monthcode */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeMonthCode)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.daysinyear */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeDaysInYear)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.daysinmonth */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeDaysInMonth)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.monthsinyear */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeMonthsInYear)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.inleapyear */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeInLeapYear)
/* Temporal #sec-temporal.plainyearmonth.prototype.with */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeWith)
/* Temporal #sec-temporal.plainyearmonth.prototype.add */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeAdd)
/* Temporal #sec-temporal.plainyearmonth.prototype.subtract */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeSubtract)
/* Temporal #sec-temporal.plainyearmonth.prototype.until */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeUntil)
/* Temporal #sec-temporal.plainyearmonth.prototype.since */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeSince)
/* Temporal #sec-temporal.plainyearmonth.prototype.equals */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeEquals)
/* Temporal #sec-temporal.plainyearmonth.tostring */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeToString)
/* Temporal #sec-temporal.plainyearmonth.tojson */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeToJSON)
/* Temporal #sec-temporal.plainyearmonth.prototype.valueof */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeValueOf)
/* Temporal #sec-temporal.plainyearmonth.prototype.toplaindate */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeToPlainDate)
/* Temporal #sec-temporal.plainyearmonth.prototype.getisofields */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeGetISOFields)
/* Temporal.PlainMonthDay */
/* Temporal #sec-temporal.plainmonthday */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayConstructor)
/* Temporal #sec-temporal.plainmonthday.from */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayFrom)
/* There are no compare for PlainMonthDay */
/* See https://github.com/tc39/proposal-temporal/issues/1547 */
/* Temporal #sec-get-temporal.plainmonthday.prototype.calendar */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeCalendar)
/* Temporal #sec-get-temporal.plainmonthday.prototype.monthcode */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeMonthCode)
/* Temporal #sec-get-temporal.plainmonthday.prototype.day */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeDay)
/* Temporal #sec-temporal.plainmonthday.prototype.with */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeWith)
/* Temporal #sec-temporal.plainmonthday.prototype.equals */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeEquals)
/* Temporal #sec-temporal.plainmonthday.prototype.tostring */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeToString)
/* Temporal #sec-temporal.plainmonthday.tojson */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeToJSON)
/* Temporal #sec-temporal.plainmonthday.prototype.valueof */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeValueOf)
/* Temporal #sec-temporal.plainmonthday.prototype.toplaindate */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeToPlainDate)
/* Temporal #sec-temporal.plainmonthday.prototype.getisofields */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeGetISOFields)
/* Temporal.TimeZone */
/* Temporal #sec-temporal.timezone */
TO_BE_IMPLEMENTED(TemporalTimeZoneConstructor)
/* Temporal #sec-temporal.timezone.from */
TO_BE_IMPLEMENTED(TemporalTimeZoneFrom)
/* Temporal #sec-get-temporal.timezone.prototype.id */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeId)
/* Temporal #sec-temporal.timezone.prototype.getoffsetnanosecondsfor */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeGetOffsetNanosecondsFor)
/* Temporal #sec-temporal.timezone.prototype.getoffsetstringfor */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeGetOffsetStringFor)
/* Temporal #sec-temporal.timezone.prototype.getplaindatetimefor */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeGetPlainDateTimeFor)
/* Temporal #sec-temporal.timezone.prototype.getinstantfor */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeGetInstantFor)
/* Temporal #sec-temporal.timezone.prototype.getpossibleinstantsfor */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeGetPossibleInstantsFor)
/* Temporal #sec-temporal.timezone.prototype.getnexttransition */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeGetNextTransition)
/* Temporal #sec-temporal.timezone.prototype.getprevioustransition */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeGetPreviousTransition)
/* Temporal #sec-temporal.timezone.prototype.tostring */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeToString)
/* Temporal #sec-temporal.timezone.prototype.tojson */
TO_BE_IMPLEMENTED(TemporalTimeZonePrototypeToJSON)
/* Temporal.Calendar */
/* Temporal #sec-temporal.calendar */
TO_BE_IMPLEMENTED(TemporalCalendarConstructor)
/* Temporal #sec-temporal.calendar.from */
TO_BE_IMPLEMENTED(TemporalCalendarFrom)
/* Temporal #sec-get-temporal.calendar.prototype.id */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeId)
/* Temporal #sec-temporal.calendar.prototype.datefromfields */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeDateFromFields)
/* Temporal #sec-temporal.calendar.prototype.yearmonthfromfields */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeYearMonthFromFields)
/* Temporal #sec-temporal.calendar.prototype.monthdayfromfields */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeMonthDayFromFields)
/* Temporal #sec-temporal.calendar.prototype.dateadd */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeDateAdd)
/* Temporal #sec-temporal.calendar.prototype.dateuntil */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeDateUntil)
/* Temporal #sec-temporal.calendar.prototype.year */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeYear)
/* Temporal #sec-temporal.calendar.prototype.month */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeMonth)
/* Temporal #sec-temporal.calendar.prototype.monthcode */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeMonthCode)
/* Temporal #sec-temporal.calendar.prototype.day */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeDay)
/* Temporal #sec-temporal.calendar.prototype.dayofweek */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeDayOfWeek)
/* Temporal #sec-temporal.calendar.prototype.dayofyear */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeDayOfYear)
/* Temporal #sec-temporal.calendar.prototype.weekofyear */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeWeekOfYear)
/* Temporal #sec-temporal.calendar.prototype.daysinweek */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeDaysInWeek)
/* Temporal #sec-temporal.calendar.prototype.daysinmonth */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeDaysInMonth)
/* Temporal #sec-temporal.calendar.prototype.daysinyear */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeDaysInYear)
/* Temporal #sec-temporal.calendar.prototype.monthsinyear */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeMonthsInYear)
/* Temporal #sec-temporal.calendar.prototype.inleapyear */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeInLeapYear)
/* Temporal #sec-temporal.calendar.prototype.fields */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeFields)
/* Temporal #sec-temporal.calendar.prototype.mergefields */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeMergeFields)
/* Temporal #sec-temporal.calendar.prototype.tostring */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeToString)
/* Temporal #sec-temporal.calendar.prototype.tojson */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeToJSON)
#ifdef V8_INTL_SUPPORT
/* Temporal */
/* Temporal #sec-temporal.calendar.prototype.era */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeEra)
/* Temporal #sec-temporal.calendar.prototype.erayear */
TO_BE_IMPLEMENTED(TemporalCalendarPrototypeEraYear)
/* Temporal #sec-temporal.duration.prototype.tolocalestring */
TO_BE_IMPLEMENTED(TemporalDurationPrototypeToLocaleString)
/* Temporal #sec-temporal.instant.prototype.tolocalestring */
TO_BE_IMPLEMENTED(TemporalInstantPrototypeToLocaleString)
/* Temporal #sec-get-temporal.plaindate.prototype.era */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeEra)
/* Temporal #sec-get-temporal.plaindate.prototype.erayear */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeEraYear)
/* Temporal #sec-temporal.plaindate.prototype.tolocalestring */
TO_BE_IMPLEMENTED(TemporalPlainDatePrototypeToLocaleString)
/* Temporal #sec-get-temporal.plaindatetime.prototype.era */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeEra)
/* Temporal #sec-get-temporal.plaindatetime.prototype.erayear */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeEraYear)
/* Temporal #sec-temporal.plaindatetime.prototype.tolocalestring */
TO_BE_IMPLEMENTED(TemporalPlainDateTimePrototypeToLocaleString)
/* Temporal #sec-temporal.plainmonthday.prototype.tolocalestring */
TO_BE_IMPLEMENTED(TemporalPlainMonthDayPrototypeToLocaleString)
/* Temporal #sec-temporal.plaintime.prototype.tolocalestring */
TO_BE_IMPLEMENTED(TemporalPlainTimePrototypeToLocaleString)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.era */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeEra)
/* Temporal #sec-get-temporal.plainyearmonth.prototype.erayear */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeEraYear)
/* Temporal #sec-temporal.plainyearmonth.prototype.tolocalestring */
TO_BE_IMPLEMENTED(TemporalPlainYearMonthPrototypeToLocaleString)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.era */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeEra)
/* Temporal #sec-get-temporal.zoneddatetime.prototype.erayear */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeEraYear)
/* Temporal #sec-temporal.zoneddatetime.prototype.tolocalestring */
TO_BE_IMPLEMENTED(TemporalZonedDateTimePrototypeToLocaleString)
#endif // V8_INTL_SUPPORT
} // namespace internal
} // namespace v8

View File

@ -256,6 +256,16 @@ Type::bitset BitsetType::Lub(const MapRefLike& map) {
case JS_WEAK_REF_TYPE:
case JS_WEAK_SET_TYPE:
case JS_PROMISE_TYPE:
case JS_TEMPORAL_CALENDAR_TYPE:
case JS_TEMPORAL_DURATION_TYPE:
case JS_TEMPORAL_INSTANT_TYPE:
case JS_TEMPORAL_PLAIN_DATE_TYPE:
case JS_TEMPORAL_PLAIN_DATE_TIME_TYPE:
case JS_TEMPORAL_PLAIN_MONTH_DAY_TYPE:
case JS_TEMPORAL_PLAIN_TIME_TYPE:
case JS_TEMPORAL_PLAIN_YEAR_MONTH_TYPE:
case JS_TEMPORAL_TIME_ZONE_TYPE:
case JS_TEMPORAL_ZONED_DATE_TIME_TYPE:
#if V8_ENABLE_WEBASSEMBLY
case WASM_ARRAY_TYPE:
case WASM_TAG_OBJECT_TYPE:

View File

@ -58,6 +58,7 @@
#include "src/objects/js-segmenter-inl.h"
#include "src/objects/js-segments-inl.h"
#endif // V8_INTL_SUPPORT
#include "src/objects/js-temporal-objects-inl.h"
#include "src/objects/js-weak-refs-inl.h"
#include "src/objects/literal-objects-inl.h"
#include "src/objects/maybe-object.h"

View File

@ -2113,6 +2113,55 @@ void Script::ScriptPrint(std::ostream& os) {
os << "\n";
}
void JSTemporalPlainDate::JSTemporalPlainDatePrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalPlainDate");
JSObjectPrintBody(os, *this);
}
void JSTemporalPlainTime::JSTemporalPlainTimePrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalPlainTime");
JSObjectPrintBody(os, *this);
}
void JSTemporalPlainDateTime::JSTemporalPlainDateTimePrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalPlainDateTime");
JSObjectPrintBody(os, *this);
}
void JSTemporalZonedDateTime::JSTemporalZonedDateTimePrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalZonedDateTime");
JSObjectPrintBody(os, *this);
}
void JSTemporalDuration::JSTemporalDurationPrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalDuration");
JSObjectPrintBody(os, *this);
}
void JSTemporalInstant::JSTemporalInstantPrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalInstant");
JSObjectPrintBody(os, *this);
}
void JSTemporalPlainYearMonth::JSTemporalPlainYearMonthPrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalPlainYearMonth");
JSObjectPrintBody(os, *this);
}
void JSTemporalPlainMonthDay::JSTemporalPlainMonthDayPrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalPlainMonthDay");
JSObjectPrintBody(os, *this);
}
void JSTemporalTimeZone::JSTemporalTimeZonePrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalTimeZone");
JSObjectPrintBody(os, *this);
}
void JSTemporalCalendar::JSTemporalCalendarPrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSTemporalCalendar");
JSObjectPrintBody(os, *this);
}
#ifdef V8_INTL_SUPPORT
void JSV8BreakIterator::JSV8BreakIteratorPrint(std::ostream& os) {
JSObjectPrintHeader(os, *this, "JSV8BreakIterator");

View File

@ -303,7 +303,8 @@ DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony features")
"harmony weak references with FinalizationRegistry.prototype.cleanupSome") \
V(harmony_import_assertions, "harmony import assertions") \
V(harmony_rab_gsab, \
"harmony ResizableArrayBuffer / GrowableSharedArrayBuffer")
"harmony ResizableArrayBuffer / GrowableSharedArrayBuffer") \
V(harmony_temporal, "Temporal")
#ifdef V8_INTL_SUPPORT
#define HARMONY_INPROGRESS(V) HARMONY_INPROGRESS_BASE(V)

View File

@ -58,6 +58,7 @@
#include "src/objects/js-segments.h"
#endif // V8_INTL_SUPPORT
#include "src/codegen/script-details.h"
#include "src/objects/js-temporal-objects-inl.h"
#include "src/objects/js-weak-refs.h"
#include "src/objects/ordered-hash-table.h"
#include "src/objects/property-cell.h"
@ -4544,6 +4545,635 @@ void Genesis::InitializeGlobal_harmony_rab_gsab() {
Builtin::kSharedArrayBufferPrototypeGrow, 1, true);
}
void Genesis::InitializeGlobal_harmony_temporal() {
if (!FLAG_harmony_temporal) return;
// -- T e m p o r a l
// #sec-temporal-objects
Handle<JSObject> temporal =
factory()->NewJSObject(isolate_->object_function(), AllocationType::kOld);
Handle<JSGlobalObject> global(native_context()->global_object(), isolate());
JSObject::AddProperty(isolate_, global, "Temporal", temporal, DONT_ENUM);
// The initial value of the @@toStringTag property is the string value
// *"Temporal"*.
// https://github.com/tc39/proposal-temporal/issues/1539
InstallToStringTag(isolate_, temporal, "Temporal");
{ // -- N o w
// #sec-temporal-now-object
Handle<JSObject> now = factory()->NewJSObject(isolate_->object_function(),
AllocationType::kOld);
JSObject::AddProperty(isolate_, temporal, "Now", now, DONT_ENUM);
// Note: There are NO Temporal.Now.plainTime
// See https://github.com/tc39/proposal-temporal/issues/1540
#define NOW_LIST(V) \
V(timeZone, TimeZone, 0) \
V(instant, Instant, 0) \
V(plainDateTime, PlainDateTime, 1) \
V(plainDateTimeISO, PlainDateTimeISO, 0) \
V(zonedDateTime, ZonedDateTime, 1) \
V(zonedDateTimeISO, ZonedDateTimeISO, 0) \
V(plainDate, PlainDate, 1) \
V(plainDateISO, PlainDateISO, 0) \
V(plainTimeISO, PlainTimeISO, 0)
#define INSTALL_NOW_FUNC(p, N, n) \
SimpleInstallFunction(isolate(), now, #p, Builtin::kTemporalNow##N, n, false);
NOW_LIST(INSTALL_NOW_FUNC)
#undef INSTALL_NOW_FUNC
#undef NOW_LIST
}
#define INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(N, U, NUM_ARGS) \
Handle<JSFunction> obj_func = InstallFunction( \
isolate(), temporal, #N, JS_TEMPORAL_##U##_TYPE, \
JSTemporal##N::kHeaderSize, 0, factory()->the_hole_value(), \
Builtin::kTemporal##N##Constructor); \
obj_func->shared().set_length(NUM_ARGS); \
obj_func->shared().DontAdaptArguments(); \
InstallWithIntrinsicDefaultProto(isolate_, obj_func, \
Context::JS_TEMPORAL_##U##_FUNCTION_INDEX); \
Handle<JSObject> prototype(JSObject::cast(obj_func->instance_prototype()), \
isolate()); \
InstallToStringTag(isolate(), prototype, "Temporal." #N);
#define INSTALL_TEMPORAL_FUNC(T, name, N, arg) \
SimpleInstallFunction(isolate(), obj_func, #name, Builtin::kTemporal##T##N, \
arg, false);
{ // -- P l a i n D a t e
// #sec-temporal-plaindate-objects
// #sec-temporal.plaindate
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(PlainDate, PLAIN_DATE, 3)
INSTALL_TEMPORAL_FUNC(PlainDate, from, From, 1)
INSTALL_TEMPORAL_FUNC(PlainDate, compare, Compare, 2)
#ifdef V8_INTL_SUPPORT
#define PLAIN_DATE_GETTER_LIST_INTL(V) \
V(era, Era) \
V(eraYear, EraYear)
#else
#define PLAIN_DATE_GETTER_LIST_INTL(V)
#endif // V8_INTL_SUPPORT
#define PLAIN_DATE_GETTER_LIST(V) \
PLAIN_DATE_GETTER_LIST_INTL(V) \
V(calendar, Calendar) \
V(year, Year) \
V(month, Month) \
V(monthCode, MonthCode) \
V(day, Day) \
V(dayOfWeek, DayOfWeek) \
V(dayOfYear, DayOfYear) \
V(weekOfYear, WeekOfYear) \
V(daysInWeek, DaysInWeek) \
V(daysInMonth, DaysInMonth) \
V(daysInYear, DaysInYear) \
V(monthsInYear, MonthsInYear) \
V(inLeapYear, InLeapYear)
#define INSTALL_PLAIN_DATE_GETTER_FUNC(p, N) \
SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
Builtin::kTemporalPlainDatePrototype##N, true);
PLAIN_DATE_GETTER_LIST(INSTALL_PLAIN_DATE_GETTER_FUNC)
#undef PLAIN_DATE_GETTER_LIST
#undef PLAIN_DATE_GETTER_LIST_INTL
#undef INSTALL_PLAIN_DATE_GETTER_FUNC
#define PLAIN_DATE_FUNC_LIST(V) \
V(toPlainYearMonth, ToPlainYearMonth, 0) \
V(toPlainMonthDay, ToPlainMonthDay, 0) \
V(getISOFiels, GetISOFields, 0) \
V(add, Add, 1) \
V(subtract, Subtract, 1) \
V(with, With, 1) \
V(withCalendar, WithCalendar, 1) \
V(until, Until, 1) \
V(since, Since, 1) \
V(equals, Equals, 1) \
V(getISOFields, GetISOFields, 0) \
V(toPlainDateTime, ToPlainDateTime, 0) \
V(toZonedDateTime, ToZonedDateTime, 1) \
V(toString, ToString, 0) \
V(toJSON, ToJSON, 0) \
V(valueOf, ValueOf, 0)
#define INSTALL_PLAIN_DATE_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalPlainDatePrototype##N, min, false);
PLAIN_DATE_FUNC_LIST(INSTALL_PLAIN_DATE_FUNC)
#undef PLAIN_DATE_FUNC_LIST
#undef INSTALL_PLAIN_DATE_FUNC
#ifdef V8_INTL_SUPPORT
#define INSTALL_TO_LOCALE_STRING_FUNC(R) \
SimpleInstallFunction(isolate(), prototype, "toLocaleString", \
Builtin::kTemporal##R##PrototypeToLocaleString, 0, \
false);
#else
#define INSTALL_TO_LOCALE_STRING_FUNC(R) \
/* Install Intl fallback functions. */ \
SimpleInstallFunction(isolate(), prototype, "toLocaleString", \
Builtin::kTemporal##R##PrototypeToString, 0, false);
#endif // V8_INTL_SUPPORT
INSTALL_TO_LOCALE_STRING_FUNC(PlainDate)
}
{ // -- P l a i n T i m e
// #sec-temporal-plaintime-objects
// #sec-temporal.plaintime
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(PlainTime, PLAIN_TIME, 0)
INSTALL_TEMPORAL_FUNC(PlainTime, from, From, 1)
INSTALL_TEMPORAL_FUNC(PlainTime, compare, Compare, 2)
#define PLAIN_TIME_GETTER_LIST(V) \
V(calendar, Calendar) \
V(hour, Hour) \
V(minute, Minute) \
V(second, Second) \
V(millisecond, Millisecond) \
V(microsecond, Microsecond) \
V(nanosecond, Nanosecond)
#define INSTALL_PLAIN_TIME_GETTER_FUNC(p, N) \
SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
Builtin::kTemporalPlainTimePrototype##N, true);
PLAIN_TIME_GETTER_LIST(INSTALL_PLAIN_TIME_GETTER_FUNC)
#undef PLAIN_TIME_GETTER_LIST
#undef INSTALL_PLAIN_TIME_GETTER_FUNC
#define PLAIN_TIME_FUNC_LIST(V) \
V(add, Add, 1) \
V(subtract, Subtract, 1) \
V(with, With, 1) \
V(until, Until, 1) \
V(since, Since, 1) \
V(round, Round, 1) \
V(equals, Equals, 1) \
V(toPlainDateTime, ToPlainDateTime, 1) \
V(toZonedDateTime, ToZonedDateTime, 1) \
V(getISOFields, GetISOFields, 0) \
V(toString, ToString, 0) \
V(toJSON, ToJSON, 0) \
V(valueOf, ValueOf, 0)
#define INSTALL_PLAIN_TIME_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalPlainTimePrototype##N, min, false);
PLAIN_TIME_FUNC_LIST(INSTALL_PLAIN_TIME_FUNC)
#undef PLAIN_TIME_FUNC_LIST
#undef INSTALL_PLAIN_TIME_FUNC
INSTALL_TO_LOCALE_STRING_FUNC(PlainTime)
}
{ // -- P l a i n D a t e T i m e
// #sec-temporal-plaindatetime-objects
// #sec-temporal.plaindatetime
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(PlainDateTime, PLAIN_DATE_TIME, 3)
INSTALL_TEMPORAL_FUNC(PlainDateTime, from, From, 1)
INSTALL_TEMPORAL_FUNC(PlainDateTime, compare, Compare, 2)
#ifdef V8_INTL_SUPPORT
#define PLAIN_DATE_TIME_GETTER_LIST_INTL(V) \
V(era, Era) \
V(eraYear, EraYear)
#else
#define PLAIN_DATE_TIME_GETTER_LIST_INTL(V)
#endif // V8_INTL_SUPPORT
#define PLAIN_DATE_TIME_GETTER_LIST(V) \
PLAIN_DATE_TIME_GETTER_LIST_INTL(V) \
V(calendar, Calendar) \
V(year, Year) \
V(month, Month) \
V(monthCode, MonthCode) \
V(day, Day) \
V(hour, Hour) \
V(minute, Minute) \
V(second, Second) \
V(millisecond, Millisecond) \
V(microsecond, Microsecond) \
V(nanosecond, Nanosecond) \
V(dayOfWeek, DayOfWeek) \
V(dayOfYear, DayOfYear) \
V(weekOfYear, WeekOfYear) \
V(daysInWeek, DaysInWeek) \
V(daysInMonth, DaysInMonth) \
V(daysInYear, DaysInYear) \
V(monthsInYear, MonthsInYear) \
V(inLeapYear, InLeapYear)
#define INSTALL_PLAIN_DATE_TIME_GETTER_FUNC(p, N) \
SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
Builtin::kTemporalPlainDateTimePrototype##N, true);
PLAIN_DATE_TIME_GETTER_LIST(INSTALL_PLAIN_DATE_TIME_GETTER_FUNC)
#undef PLAIN_DATE_TIME_GETTER_LIST
#undef PLAIN_DATE_TIME_GETTER_LIST_INTL
#undef INSTALL_PLAIN_DATE_TIME_GETTER_FUNC
#define PLAIN_DATE_TIME_FUNC_LIST(V) \
V(with, With, 1) \
V(withPlainTime, WithPlainTime, 0) \
V(withPlainDate, WithPlainDate, 1) \
V(withCalendar, WithCalendar, 1) \
V(add, Add, 1) \
V(subtract, Subtract, 1) \
V(until, Until, 1) \
V(since, Since, 1) \
V(round, Round, 1) \
V(equals, Equals, 1) \
V(toJSON, ToJSON, 0) \
V(toString, ToString, 0) \
V(valueOf, ValueOf, 0) \
V(toZonedDateTime, ToZonedDateTime, 1) \
V(toPlainDate, ToPlainDate, 0) \
V(toPlainYearMonth, ToPlainYearMonth, 0) \
V(toPlainMonthDay, ToPlainMonthDay, 0) \
V(toPlainTime, ToPlainTime, 0) \
V(getISOFields, GetISOFields, 0)
#define INSTALL_PLAIN_DATE_TIME_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalPlainDateTimePrototype##N, min, \
false);
PLAIN_DATE_TIME_FUNC_LIST(INSTALL_PLAIN_DATE_TIME_FUNC)
#undef PLAIN_DATE_TIME_FUNC_LIST
#undef INSTALL_PLAIN_DATE_TIME_FUNC
INSTALL_TO_LOCALE_STRING_FUNC(PlainDateTime)
}
{ // -- Z o n e d D a t e T i m e
// #sec-temporal-zoneddatetime-objects
// #sec-temporal.zoneddatetime
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(ZonedDateTime, ZONED_DATE_TIME, 2)
INSTALL_TEMPORAL_FUNC(ZonedDateTime, from, From, 1)
INSTALL_TEMPORAL_FUNC(ZonedDateTime, compare, Compare, 2)
#ifdef V8_INTL_SUPPORT
#define ZONED_DATE_TIME_GETTER_LIST_INTL(V) \
V(era, Era) \
V(eraYear, EraYear)
#else
#define ZONED_DATE_TIME_GETTER_LIST_INTL(V)
#endif // V8_INTL_SUPPORT
#define ZONED_DATE_TIME_GETTER_LIST(V) \
ZONED_DATE_TIME_GETTER_LIST_INTL(V) \
V(calendar, Calendar) \
V(timeZone, TimeZone) \
V(year, Year) \
V(month, Month) \
V(monthCode, MonthCode) \
V(day, Day) \
V(hour, Hour) \
V(minute, Minute) \
V(second, Second) \
V(millisecond, Millisecond) \
V(microsecond, Microsecond) \
V(nanosecond, Nanosecond) \
V(epochSeconds, EpochSeconds) \
V(epochMilliseconds, EpochMilliseconds) \
V(epochMicroseconds, EpochMicroseconds) \
V(epochNanoseconds, EpochNanoseconds) \
V(dayOfWeek, DayOfWeek) \
V(dayOfYear, DayOfYear) \
V(weekOfYear, WeekOfYear) \
V(hoursInDay, HoursInDay) \
V(daysInWeek, DaysInWeek) \
V(daysInMonth, DaysInMonth) \
V(daysInYear, DaysInYear) \
V(monthsInYear, MonthsInYear) \
V(inLeapYear, InLeapYear) \
V(offsetNanoseconds, OffsetNanoseconds) \
V(offset, Offset)
#define INSTALL_ZONED_DATE_TIME_GETTER_FUNC(p, N) \
SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
Builtin::kTemporalZonedDateTimePrototype##N, true);
ZONED_DATE_TIME_GETTER_LIST(INSTALL_ZONED_DATE_TIME_GETTER_FUNC)
#undef ZONED_DATE_TIME_GETTER_LIST
#undef ZONED_DATE_TIME_GETTER_LIST_INTL
#undef INSTALL_ZONED_DATE_TIME_GETTER_FUNC
#define ZONED_DATE_TIME_FUNC_LIST(V) \
V(with, With, 1) \
V(withPlainTime, WithPlainTime, 0) \
V(withPlainDate, WithPlainDate, 1) \
V(withTimeZone, WithTimeZone, 1) \
V(withCalendar, WithCalendar, 1) \
V(add, Add, 1) \
V(subtract, Subtract, 1) \
V(until, Until, 1) \
V(since, Since, 1) \
V(round, Round, 1) \
V(equals, Equals, 1) \
V(toString, ToString, 0) \
V(toJSON, ToJSON, 0) \
V(valueOf, ValueOf, 0) \
V(startOfDay, StartOfDay, 0) \
V(toInstant, ToInstant, 0) \
V(toPlainDate, ToPlainDate, 0) \
V(toPlainTime, ToPlainTime, 0) \
V(toPlainDateTime, ToPlainDateTime, 0) \
V(toPlainYearMonth, ToPlainYearMonth, 0) \
V(toPlainMonthDay, ToPlainMonthDay, 0) \
V(getISOFields, GetISOFields, 0)
#define INSTALL_ZONED_DATE_TIME_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalZonedDateTimePrototype##N, min, \
false);
ZONED_DATE_TIME_FUNC_LIST(INSTALL_ZONED_DATE_TIME_FUNC)
#undef ZONED_DATE_TIME_FUNC_LIST
#undef INSTALL_ZONED_DATE_TIME_FUNC
INSTALL_TO_LOCALE_STRING_FUNC(ZonedDateTime)
}
{ // -- D u r a t i o n
// #sec-temporal-duration-objects
// #sec-temporal.duration
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(Duration, DURATION, 0)
INSTALL_TEMPORAL_FUNC(Duration, from, From, 1)
INSTALL_TEMPORAL_FUNC(Duration, compare, Compare, 2)
#define DURATION_GETTER_LIST(V) \
V(years, Years) \
V(months, Months) \
V(weeks, Weeks) \
V(days, Days) \
V(hours, Hours) \
V(minutes, Minutes) \
V(seconds, Seconds) \
V(milliseconds, Milliseconds) \
V(microseconds, Microseconds) \
V(nanoseconds, Nanoseconds) \
V(sign, Sign) \
V(blank, Blank)
#define INSTALL_DURATION_GETTER_FUNC(p, N) \
SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
Builtin::kTemporalDurationPrototype##N, true);
DURATION_GETTER_LIST(INSTALL_DURATION_GETTER_FUNC)
#undef DURATION_GETTER_LIST
#undef INSTALL_DURATION_GETTER_FUNC
#define DURATION_FUNC_LIST(V) \
V(with, With, 1) \
V(negated, Negated, 0) \
V(abs, Abs, 0) \
V(add, Add, 1) \
V(subtract, Subtract, 1) \
V(round, Round, 1) \
V(total, Total, 1) \
V(toString, ToString, 0) \
V(toJSON, ToJSON, 0) \
V(valueOf, ValueOf, 0)
#define INSTALL_DURATION_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalDurationPrototype##N, min, false);
DURATION_FUNC_LIST(INSTALL_DURATION_FUNC)
#undef DURATION_FUNC_LIST
#undef INSTALL_DURATION_FUNC
INSTALL_TO_LOCALE_STRING_FUNC(Duration)
}
{ // -- I n s t a n t
// #sec-temporal-instant-objects
// #sec-temporal.instant
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(Instant, INSTANT, 1)
INSTALL_TEMPORAL_FUNC(Instant, from, From, 1)
INSTALL_TEMPORAL_FUNC(Instant, compare, Compare, 2)
INSTALL_TEMPORAL_FUNC(Instant, fromEpochSeconds, FromEpochSeconds, 1)
INSTALL_TEMPORAL_FUNC(Instant, fromEpochMilliseconds, FromEpochMilliseconds,
1)
INSTALL_TEMPORAL_FUNC(Instant, fromEpochMicroseconds, FromEpochMicroseconds,
1)
INSTALL_TEMPORAL_FUNC(Instant, fromEpochNanoseconds, FromEpochNanoseconds,
1)
#define INSTANT_GETTER_LIST(V) \
V(epochSeconds, EpochSeconds) \
V(epochMilliseconds, EpochMilliseconds) \
V(epochMicroseconds, EpochMicroseconds) \
V(epochNanoseconds, EpochNanoseconds)
#define INSTALL_INSTANT_GETTER_FUNC(p, N) \
SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
Builtin::kTemporalInstantPrototype##N, true);
INSTANT_GETTER_LIST(INSTALL_INSTANT_GETTER_FUNC)
#undef INSTANT_GETTER_LIST
#undef INSTALL_INSTANT_GETTER_FUNC
#define INSTANT_FUNC_LIST(V) \
V(add, Add, 1) \
V(subtract, Subtract, 1) \
V(until, Until, 1) \
V(since, Since, 1) \
V(round, Round, 1) \
V(equals, Equals, 1) \
V(toString, ToString, 0) \
V(toJSON, ToJSON, 0) \
V(valueOf, ValueOf, 0) \
V(toZonedDateTime, ToZonedDateTime, 1) \
V(toZonedDateTimeISO, ToZonedDateTimeISO, 1)
#define INSTALL_INSTANT_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalInstantPrototype##N, min, false);
INSTANT_FUNC_LIST(INSTALL_INSTANT_FUNC)
#undef INSTANT_FUNC_LIST
#undef INSTALL_INSTANT_FUNC
INSTALL_TO_LOCALE_STRING_FUNC(Instant)
}
{ // -- P l a i n Y e a r M o n t h
// #sec-temporal-plainyearmonth-objects
// #sec-temporal.plainyearmonth
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(PlainYearMonth, PLAIN_YEAR_MONTH, 2)
INSTALL_TEMPORAL_FUNC(PlainYearMonth, from, From, 1)
INSTALL_TEMPORAL_FUNC(PlainYearMonth, compare, Compare, 2)
#ifdef V8_INTL_SUPPORT
#define PLAIN_YEAR_MONTH_GETTER_LIST_INTL(V) \
V(era, Era) \
V(eraYear, EraYear)
#else
#define PLAIN_YEAR_MONTH_GETTER_LIST_INTL(V)
#endif // V8_INTL_SUPPORT
#define PLAIN_YEAR_MONTH_GETTER_LIST(V) \
PLAIN_YEAR_MONTH_GETTER_LIST_INTL(V) \
V(calendar, Calendar) \
V(year, Year) \
V(month, Month) \
V(monthCode, MonthCode) \
V(daysInYear, DaysInYear) \
V(daysInMonth, DaysInMonth) \
V(monthsInYear, MonthsInYear) \
V(inLeapYear, InLeapYear)
#define INSTALL_PLAIN_YEAR_MONTH_GETTER_FUNC(p, N) \
SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
Builtin::kTemporalPlainYearMonthPrototype##N, true);
PLAIN_YEAR_MONTH_GETTER_LIST(INSTALL_PLAIN_YEAR_MONTH_GETTER_FUNC)
#undef PLAIN_YEAR_MONTH_GETTER_LIST
#undef PLAIN_YEAR_MONTH_GETTER_LIST_INTL
#undef INSTALL_PLAIN_YEAR_MONTH_GETTER_FUNC
#define PLAIN_YEAR_MONTH_FUNC_LIST(V) \
V(with, With, 1) \
V(add, Add, 1) \
V(subtract, Subtract, 1) \
V(until, Until, 1) \
V(since, Since, 1) \
V(equals, Equals, 1) \
V(toString, ToString, 0) \
V(toJSON, ToJSON, 0) \
V(valueOf, ValueOf, 0) \
V(toPlainDate, ToPlainDate, 1) \
V(getISOFields, GetISOFields, 0)
#define INSTALL_PLAIN_YEAR_MONTH_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalPlainYearMonthPrototype##N, min, \
false);
PLAIN_YEAR_MONTH_FUNC_LIST(INSTALL_PLAIN_YEAR_MONTH_FUNC)
#undef PLAIN_YEAR_MONTH_FUNC_LIST
#undef INSTALL_PLAIN_YEAR_MONTH_FUNC
INSTALL_TO_LOCALE_STRING_FUNC(PlainYearMonth)
}
{ // -- P l a i n M o n t h D a y
// #sec-temporal-plainmonthday-objects
// #sec-temporal.plainmonthday
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(PlainMonthDay, PLAIN_MONTH_DAY, 2)
INSTALL_TEMPORAL_FUNC(PlainMonthDay, from, From, 1)
// Notice there are no Temporal.PlainMonthDay.compare in the spec.
#define PLAIN_MONTH_DAY_GETTER_LIST(V) \
V(calendar, Calendar) \
V(monthCode, MonthCode) \
V(day, Day)
#define INSTALL_PLAIN_MONTH_DAY_GETTER_FUNC(p, N) \
SimpleInstallGetter(isolate(), prototype, isolate_->factory()->p##_string(), \
Builtin::kTemporalPlainMonthDayPrototype##N, true);
PLAIN_MONTH_DAY_GETTER_LIST(INSTALL_PLAIN_MONTH_DAY_GETTER_FUNC)
#undef PLAIN_MONTH_DAY_GETTER_LIST
#undef INSTALL_PLAIN_MONTH_DAY_GETTER_FUNC
#define PLAIN_MONTH_DAY_FUNC_LIST(V) \
V(with, With, 1) \
V(equals, Equals, 1) \
V(toString, ToString, 0) \
V(toJSON, ToJSON, 0) \
V(valueOf, ValueOf, 0) \
V(toPlainDate, ToPlainDate, 1) \
V(getISOFields, GetISOFields, 0)
#define INSTALL_PLAIN_MONTH_DAY_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalPlainMonthDayPrototype##N, min, \
false);
PLAIN_MONTH_DAY_FUNC_LIST(INSTALL_PLAIN_MONTH_DAY_FUNC)
#undef PLAIN_MONTH_DAY_FUNC_LIST
#undef INSTALL_PLAIN_MONTH_DAY_FUNC
INSTALL_TO_LOCALE_STRING_FUNC(PlainMonthDay)
}
#undef INSTALL_TO_LOCALE_STRING_FUNC
{ // -- T i m e Z o n e
// #sec-temporal-timezone-objects
// #sec-temporal.timezone
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(TimeZone, TIME_ZONE, 1)
INSTALL_TEMPORAL_FUNC(TimeZone, from, From, 1)
// #sec-get-temporal.timezone.prototype.id
SimpleInstallGetter(isolate(), prototype, factory()->id_string(),
Builtin::kTemporalTimeZonePrototypeId, true);
#define TIME_ZONE_FUNC_LIST(V) \
V(getOffsetNanosecondsFor, GetOffsetNanosecondsFor, 1) \
V(getOffsetStringFor, GetOffsetStringFor, 1) \
V(getPlainDateTimeFor, GetPlainDateTimeFor, 1) \
V(getInstantFor, GetInstantFor, 1) \
V(getPossibleInstantsFor, GetPossibleInstantsFor, 1) \
V(getNextTransition, GetNextTransition, 1) \
V(getPreviousTransition, GetPreviousTransition, 1) \
V(toString, ToString, 0) \
V(toJSON, ToJSON, 0)
#define INSTALL_TIME_ZONE_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalTimeZonePrototype##N, min, false);
TIME_ZONE_FUNC_LIST(INSTALL_TIME_ZONE_FUNC)
#undef TIME_ZONE_FUNC_LIST
#undef INSTALL_TIME_ZONE_FUNC
}
{ // -- C a l e n d a r
// #sec-temporal-calendar-objects
// #sec-temporal.calendar
INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE(Calendar, CALENDAR, 1)
INSTALL_TEMPORAL_FUNC(Calendar, from, From, 1)
// #sec-get-temporal.calendar.prototype.id
SimpleInstallGetter(isolate(), prototype, factory()->id_string(),
Builtin::kTemporalCalendarPrototypeId, true);
#ifdef V8_INTL_SUPPORT
#define CALENDAR_FUNC_LIST_INTL(V) \
V(era, Era, 1) \
V(eraYear, EraYear, 1)
#else
#define CALENDAR_FUNC_LIST_INTL(V)
#endif // V8_INTL_SUPPORT
#define CALENDAR_FUNC_LIST(V) \
CALENDAR_FUNC_LIST_INTL(V) \
V(dateFromFields, DateFromFields, 1) \
V(yearMonthFromFields, YearMonthFromFields, 1) \
V(monthDayFromFields, MonthDayFromFields, 1) \
V(dateAdd, DateAdd, 2) \
V(dateUntil, DateUntil, 2) \
V(year, Year, 1) \
V(month, Month, 1) \
V(monthCode, MonthCode, 1) \
V(day, Day, 1) \
V(dayOfWeek, DayOfWeek, 1) \
V(dayOfYear, DayOfYear, 1) \
V(weekOfYear, WeekOfYear, 1) \
V(daysInWeek, DaysInWeek, 1) \
V(daysInMonth, DaysInMonth, 1) \
V(daysInYear, DaysInYear, 1) \
V(monthsInYear, MonthsInYear, 1) \
V(inLeapYear, InLeapYear, 1) \
V(fields, Fields, 1) \
V(mergeFields, MergeFields, 2) \
V(toString, ToString, 0) \
V(toJSON, ToJSON, 0)
#define INSTALL_CALENDAR_FUNC(p, N, min) \
SimpleInstallFunction(isolate(), prototype, #p, \
Builtin::kTemporalCalendarPrototype##N, min, false);
CALENDAR_FUNC_LIST(INSTALL_CALENDAR_FUNC)
#undef CALENDAR_FUNC_LIST
#undef CALENDAR_FUNC_LIST_INTL
#undef INSTALL_CALENDAE_FUNC
}
#undef INSTALL_TEMPORAL_CTOR_AND_PROTOTYPE
#undef INSTALL_TEMPORAL_FUNC
}
#ifdef V8_INTL_SUPPORT
void Genesis::InitializeGlobal_harmony_intl_locale_info() {

View File

@ -11,7 +11,6 @@
V(_, baseName_string, "baseName") \
V(_, accounting_string, "accounting") \
V(_, breakType_string, "breakType") \
V(_, calendar_string, "calendar") \
V(_, calendars_string, "calendars") \
V(_, cardinal_string, "cardinal") \
V(_, caseFirst_string, "caseFirst") \
@ -25,7 +24,6 @@
V(_, currencySign_string, "currencySign") \
V(_, dateStyle_string, "dateStyle") \
V(_, dateTimeField_string, "dateTimeField") \
V(_, day_string, "day") \
V(_, dayPeriod_string, "dayPeriod") \
V(_, decimal_string, "decimal") \
V(_, dialect_string, "dialect") \
@ -33,6 +31,7 @@
V(_, endRange_string, "endRange") \
V(_, engineering_string, "engineering") \
V(_, era_string, "era") \
V(_, eraYear_string, "eraYear") \
V(_, exceptZero_string, "exceptZero") \
V(_, exponentInteger_string, "exponentInteger") \
V(_, exponentMinusSign_string, "exponentMinusSign") \
@ -52,7 +51,6 @@
V(_, h12_string, "h12") \
V(_, h23_string, "h23") \
V(_, h24_string, "h24") \
V(_, hour_string, "hour") \
V(_, hour12_string, "hour12") \
V(_, hourCycle_string, "hourCycle") \
V(_, hourCycles_string, "hourCycles") \
@ -78,8 +76,6 @@
V(_, minimumIntegerDigits_string, "minimumIntegerDigits") \
V(_, minimumSignificantDigits_string, "minimumSignificantDigits") \
V(_, minusSign_string, "minusSign") \
V(_, minute_string, "minute") \
V(_, month_string, "month") \
V(_, nan_string, "nan") \
V(_, narrowSymbol_string, "narrowSymbol") \
V(_, never_string, "never") \
@ -97,7 +93,6 @@
V(_, relatedYear_string, "relatedYear") \
V(_, rtl_string, "rtl") \
V(_, scientific_string, "scientific") \
V(_, second_string, "second") \
V(_, segment_string, "segment") \
V(_, SegmentIterator_string, "Segment Iterator") \
V(_, Segments_string, "Segments") \
@ -112,7 +107,6 @@
V(_, term_string, "term") \
V(_, textInfo_string, "textInfo") \
V(_, timeStyle_string, "timeStyle") \
V(_, timeZone_string, "timeZone") \
V(_, timeZones_string, "timeZones") \
V(_, timeZoneName_string, "timeZoneName") \
V(_, type_string, "type") \
@ -120,241 +114,304 @@
V(_, upper_string, "upper") \
V(_, usage_string, "usage") \
V(_, useGrouping_string, "useGrouping") \
V(_, UTC_string, "UTC") \
V(_, unit_string, "unit") \
V(_, unitDisplay_string, "unitDisplay") \
V(_, weekday_string, "weekday") \
V(_, weekendEnd_string, "weekendEnd") \
V(_, weekendStart_string, "weekendStart") \
V(_, weekInfo_string, "weekInfo") \
V(_, year_string, "year") \
V(_, yearName_string, "yearName")
#else // V8_INTL_SUPPORT
#define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _)
#endif // V8_INTL_SUPPORT
#define INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \
V(_, add_string, "add") \
V(_, AggregateError_string, "AggregateError") \
V(_, always_string, "always") \
V(_, anonymous_function_string, "(anonymous function)") \
V(_, anonymous_string, "anonymous") \
V(_, apply_string, "apply") \
V(_, Arguments_string, "Arguments") \
V(_, arguments_string, "arguments") \
V(_, arguments_to_string, "[object Arguments]") \
V(_, Array_string, "Array") \
V(_, array_to_string, "[object Array]") \
V(_, ArrayBuffer_string, "ArrayBuffer") \
V(_, ArrayIterator_string, "Array Iterator") \
V(_, as_string, "as") \
V(_, assert_string, "assert") \
V(_, async_string, "async") \
V(_, auto_string, "auto") \
V(_, await_string, "await") \
V(_, BigInt_string, "BigInt") \
V(_, bigint_string, "bigint") \
V(_, BigInt64Array_string, "BigInt64Array") \
V(_, BigUint64Array_string, "BigUint64Array") \
V(_, bind_string, "bind") \
V(_, Boolean_string, "Boolean") \
V(_, boolean_string, "boolean") \
V(_, boolean_to_string, "[object Boolean]") \
V(_, bound__string, "bound ") \
V(_, buffer_string, "buffer") \
V(_, byte_length_string, "byteLength") \
V(_, byte_offset_string, "byteOffset") \
V(_, CompileError_string, "CompileError") \
V(_, callee_string, "callee") \
V(_, caller_string, "caller") \
V(_, cause_string, "cause") \
V(_, character_string, "character") \
V(_, closure_string, "(closure)") \
V(_, code_string, "code") \
V(_, column_string, "column") \
V(_, computed_string, "<computed>") \
V(_, configurable_string, "configurable") \
V(_, conjunction_string, "conjunction") \
V(_, construct_string, "construct") \
V(_, constructor_string, "constructor") \
V(_, current_string, "current") \
V(_, Date_string, "Date") \
V(_, date_to_string, "[object Date]") \
V(_, default_string, "default") \
V(_, defineProperty_string, "defineProperty") \
V(_, deleteProperty_string, "deleteProperty") \
V(_, disjunction_string, "disjunction") \
V(_, done_string, "done") \
V(_, dot_brand_string, ".brand") \
V(_, dot_catch_string, ".catch") \
V(_, dot_default_string, ".default") \
V(_, dot_for_string, ".for") \
V(_, dot_generator_object_string, ".generator_object") \
V(_, dot_home_object_string, ".home_object") \
V(_, dot_result_string, ".result") \
V(_, dot_repl_result_string, ".repl_result") \
V(_, dot_static_home_object_string, "._static_home_object") \
V(_, dot_string, ".") \
V(_, dot_switch_tag_string, ".switch_tag") \
V(_, dotAll_string, "dotAll") \
V(_, Error_string, "Error") \
V(_, EvalError_string, "EvalError") \
V(_, element_string, "element") \
V(_, enumerable_string, "enumerable") \
V(_, error_to_string, "[object Error]") \
V(_, errors_string, "errors") \
V(_, eval_string, "eval") \
V(_, exception_string, "exception") \
V(_, exec_string, "exec") \
V(_, false_string, "false") \
V(_, FinalizationRegistry_string, "FinalizationRegistry") \
V(_, flags_string, "flags") \
V(_, Float32Array_string, "Float32Array") \
V(_, Float64Array_string, "Float64Array") \
V(_, from_string, "from") \
V(_, Function_string, "Function") \
V(_, function_native_code_string, "function () { [native code] }") \
V(_, function_string, "function") \
V(_, function_to_string, "[object Function]") \
V(_, Generator_string, "Generator") \
V(_, get_space_string, "get ") \
V(_, get_string, "get") \
V(_, getOwnPropertyDescriptor_string, "getOwnPropertyDescriptor") \
V(_, getPrototypeOf_string, "getPrototypeOf") \
V(_, global_string, "global") \
V(_, globalThis_string, "globalThis") \
V(_, groups_string, "groups") \
V(_, growable_string, "growable") \
V(_, has_string, "has") \
V(_, hasIndices_string, "hasIndices") \
V(_, ignoreCase_string, "ignoreCase") \
V(_, illegal_access_string, "illegal access") \
V(_, illegal_argument_string, "illegal argument") \
V(_, index_string, "index") \
V(_, indices_string, "indices") \
V(_, Infinity_string, "Infinity") \
V(_, infinity_string, "infinity") \
V(_, input_string, "input") \
V(_, Int16Array_string, "Int16Array") \
V(_, Int32Array_string, "Int32Array") \
V(_, Int8Array_string, "Int8Array") \
V(_, isExtensible_string, "isExtensible") \
V(_, jsMemoryEstimate_string, "jsMemoryEstimate") \
V(_, jsMemoryRange_string, "jsMemoryRange") \
V(_, keys_string, "keys") \
V(_, lastIndex_string, "lastIndex") \
V(_, length_string, "length") \
V(_, let_string, "let") \
V(_, line_string, "line") \
V(_, linear_string, "linear") \
V(_, LinkError_string, "LinkError") \
V(_, long_string, "long") \
V(_, Map_string, "Map") \
V(_, MapIterator_string, "Map Iterator") \
V(_, max_byte_length_string, "maxByteLength") \
V(_, medium_string, "medium") \
V(_, message_string, "message") \
V(_, meta_string, "meta") \
V(_, minus_Infinity_string, "-Infinity") \
V(_, Module_string, "Module") \
V(_, multiline_string, "multiline") \
V(_, name_string, "name") \
V(_, NaN_string, "NaN") \
V(_, narrow_string, "narrow") \
V(_, native_string, "native") \
V(_, new_target_string, ".new.target") \
V(_, next_string, "next") \
V(_, NFC_string, "NFC") \
V(_, NFD_string, "NFD") \
V(_, NFKC_string, "NFKC") \
V(_, NFKD_string, "NFKD") \
V(_, not_equal_string, "not-equal") \
V(_, null_string, "null") \
V(_, null_to_string, "[object Null]") \
V(_, Number_string, "Number") \
V(_, number_string, "number") \
V(_, number_to_string, "[object Number]") \
V(_, Object_string, "Object") \
V(_, object_string, "object") \
V(_, object_to_string, "[object Object]") \
V(_, of_string, "of") \
V(_, ok_string, "ok") \
V(_, one_string, "1") \
V(_, other_string, "other") \
V(_, ownKeys_string, "ownKeys") \
V(_, percent_string, "percent") \
V(_, position_string, "position") \
V(_, preventExtensions_string, "preventExtensions") \
V(_, private_constructor_string, "#constructor") \
V(_, Promise_string, "Promise") \
V(_, proto_string, "__proto__") \
V(_, prototype_string, "prototype") \
V(_, proxy_string, "proxy") \
V(_, Proxy_string, "Proxy") \
V(_, query_colon_string, "(?:)") \
V(_, RangeError_string, "RangeError") \
V(_, raw_string, "raw") \
V(_, ReferenceError_string, "ReferenceError") \
V(_, ReflectGet_string, "Reflect.get") \
V(_, ReflectHas_string, "Reflect.has") \
V(_, RegExp_string, "RegExp") \
V(_, regexp_to_string, "[object RegExp]") \
V(_, resizable_string, "resizable") \
V(_, resolve_string, "resolve") \
V(_, return_string, "return") \
V(_, revoke_string, "revoke") \
V(_, RuntimeError_string, "RuntimeError") \
V(_, WebAssemblyException_string, "WebAssembly.Exception") \
V(_, Script_string, "Script") \
V(_, script_string, "script") \
V(_, short_string, "short") \
V(_, Set_string, "Set") \
V(_, sentence_string, "sentence") \
V(_, set_space_string, "set ") \
V(_, set_string, "set") \
V(_, SetIterator_string, "Set Iterator") \
V(_, setPrototypeOf_string, "setPrototypeOf") \
V(_, SharedArrayBuffer_string, "SharedArrayBuffer") \
V(_, source_string, "source") \
V(_, sourceText_string, "sourceText") \
V(_, stack_string, "stack") \
V(_, stackTraceLimit_string, "stackTraceLimit") \
V(_, sticky_string, "sticky") \
V(_, String_string, "String") \
V(_, string_string, "string") \
V(_, string_to_string, "[object String]") \
V(_, symbol_species_string, "[Symbol.species]") \
V(_, Symbol_string, "Symbol") \
V(_, symbol_string, "symbol") \
V(_, SyntaxError_string, "SyntaxError") \
V(_, target_string, "target") \
V(_, then_string, "then") \
V(_, this_function_string, ".this_function") \
V(_, this_string, "this") \
V(_, throw_string, "throw") \
V(_, timed_out_string, "timed-out") \
V(_, toJSON_string, "toJSON") \
V(_, toString_string, "toString") \
V(_, true_string, "true") \
V(_, total_string, "total") \
V(_, TypeError_string, "TypeError") \
V(_, Uint16Array_string, "Uint16Array") \
V(_, Uint32Array_string, "Uint32Array") \
V(_, Uint8Array_string, "Uint8Array") \
V(_, Uint8ClampedArray_string, "Uint8ClampedArray") \
V(_, undefined_string, "undefined") \
V(_, undefined_to_string, "[object Undefined]") \
V(_, unicode_string, "unicode") \
V(_, URIError_string, "URIError") \
V(_, value_string, "value") \
V(_, valueOf_string, "valueOf") \
V(_, WeakMap_string, "WeakMap") \
V(_, WeakRef_string, "WeakRef") \
V(_, WeakSet_string, "WeakSet") \
V(_, week_string, "week") \
V(_, word_string, "word") \
V(_, writable_string, "writable") \
#define INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \
V(_, add_string, "add") \
V(_, AggregateError_string, "AggregateError") \
V(_, always_string, "always") \
V(_, anonymous_function_string, "(anonymous function)") \
V(_, anonymous_string, "anonymous") \
V(_, apply_string, "apply") \
V(_, Arguments_string, "Arguments") \
V(_, arguments_string, "arguments") \
V(_, arguments_to_string, "[object Arguments]") \
V(_, Array_string, "Array") \
V(_, array_to_string, "[object Array]") \
V(_, ArrayBuffer_string, "ArrayBuffer") \
V(_, ArrayIterator_string, "Array Iterator") \
V(_, as_string, "as") \
V(_, assert_string, "assert") \
V(_, async_string, "async") \
V(_, auto_string, "auto") \
V(_, await_string, "await") \
V(_, BigInt_string, "BigInt") \
V(_, bigint_string, "bigint") \
V(_, BigInt64Array_string, "BigInt64Array") \
V(_, BigUint64Array_string, "BigUint64Array") \
V(_, bind_string, "bind") \
V(_, blank_string, "blank") \
V(_, Boolean_string, "Boolean") \
V(_, boolean_string, "boolean") \
V(_, boolean_to_string, "[object Boolean]") \
V(_, bound__string, "bound ") \
V(_, buffer_string, "buffer") \
V(_, byte_length_string, "byteLength") \
V(_, byte_offset_string, "byteOffset") \
V(_, CompileError_string, "CompileError") \
V(_, calendar_string, "calendar") \
V(_, callee_string, "callee") \
V(_, caller_string, "caller") \
V(_, cause_string, "cause") \
V(_, character_string, "character") \
V(_, closure_string, "(closure)") \
V(_, code_string, "code") \
V(_, column_string, "column") \
V(_, computed_string, "<computed>") \
V(_, configurable_string, "configurable") \
V(_, conjunction_string, "conjunction") \
V(_, construct_string, "construct") \
V(_, constructor_string, "constructor") \
V(_, current_string, "current") \
V(_, Date_string, "Date") \
V(_, date_to_string, "[object Date]") \
V(_, dateAdd_string, "dateAdd") \
V(_, dateFromFields_string, "dateFromFields") \
V(_, dateUntil_string, "dateUntil") \
V(_, day_string, "day") \
V(_, dayOfWeek_string, "dayOfWeek") \
V(_, dayOfYear_string, "dayOfYear") \
V(_, days_string, "days") \
V(_, daysInMonth_string, "daysInMonth") \
V(_, daysInWeek_string, "daysInWeek") \
V(_, daysInYear_string, "daysInYear") \
V(_, default_string, "default") \
V(_, defineProperty_string, "defineProperty") \
V(_, deleteProperty_string, "deleteProperty") \
V(_, disjunction_string, "disjunction") \
V(_, done_string, "done") \
V(_, dot_brand_string, ".brand") \
V(_, dot_catch_string, ".catch") \
V(_, dot_default_string, ".default") \
V(_, dot_for_string, ".for") \
V(_, dot_generator_object_string, ".generator_object") \
V(_, dot_home_object_string, ".home_object") \
V(_, dot_result_string, ".result") \
V(_, dot_repl_result_string, ".repl_result") \
V(_, dot_static_home_object_string, "._static_home_object") \
V(_, dot_string, ".") \
V(_, dot_switch_tag_string, ".switch_tag") \
V(_, dotAll_string, "dotAll") \
V(_, Error_string, "Error") \
V(_, EvalError_string, "EvalError") \
V(_, enumerable_string, "enumerable") \
V(_, element_string, "element") \
V(_, epochMicroseconds_string, "epochMicroseconds") \
V(_, epochMilliseconds_string, "epochMilliseconds") \
V(_, epochNanoseconds_string, "epochNanoseconds") \
V(_, epochSeconds_string, "epochSeconds") \
V(_, errors_string, "errors") \
V(_, error_to_string, "[object Error]") \
V(_, eval_string, "eval") \
V(_, exception_string, "exception") \
V(_, exec_string, "exec") \
V(_, false_string, "false") \
V(_, fields_string, "fields") \
V(_, FinalizationRegistry_string, "FinalizationRegistry") \
V(_, flags_string, "flags") \
V(_, Float32Array_string, "Float32Array") \
V(_, Float64Array_string, "Float64Array") \
V(_, from_string, "from") \
V(_, Function_string, "Function") \
V(_, function_native_code_string, "function () { [native code] }") \
V(_, function_string, "function") \
V(_, function_to_string, "[object Function]") \
V(_, Generator_string, "Generator") \
V(_, get_space_string, "get ") \
V(_, get_string, "get") \
V(_, getOffsetNanosecondsFor_string, "getOffsetNanosecondsFor") \
V(_, getOwnPropertyDescriptor_string, "getOwnPropertyDescriptor") \
V(_, getPrototypeOf_string, "getPrototypeOf") \
V(_, global_string, "global") \
V(_, globalThis_string, "globalThis") \
V(_, groups_string, "groups") \
V(_, growable_string, "growable") \
V(_, GrowableSharedArrayBuffer_string, "GrowableSharedArrayBuffer") \
V(_, has_string, "has") \
V(_, hasIndices_string, "hasIndices") \
V(_, hour_string, "hour") \
V(_, hours_string, "hours") \
V(_, hoursInDay_string, "hoursInDay") \
V(_, ignoreCase_string, "ignoreCase") \
V(_, id_string, "id") \
V(_, illegal_access_string, "illegal access") \
V(_, illegal_argument_string, "illegal argument") \
V(_, inLeapYear_string, "inLeapYear") \
V(_, index_string, "index") \
V(_, indices_string, "indices") \
V(_, Infinity_string, "Infinity") \
V(_, infinity_string, "infinity") \
V(_, input_string, "input") \
V(_, Int16Array_string, "Int16Array") \
V(_, Int32Array_string, "Int32Array") \
V(_, Int8Array_string, "Int8Array") \
V(_, isExtensible_string, "isExtensible") \
V(_, iso8601_string, "iso8601") \
V(_, isoDay_string, "isoDay") \
V(_, isoHour_string, "isoHour") \
V(_, isoMicrosecond_string, "isoMicrosecond") \
V(_, isoMillisecond_string, "isoMillisecond") \
V(_, isoMinute_string, "isoMinute") \
V(_, isoMonth_string, "isoMonth") \
V(_, isoNanosecond_string, "isoNanosecond") \
V(_, isoSecond_string, "isoSecond") \
V(_, isoYear_string, "isoYear") \
V(_, jsMemoryEstimate_string, "jsMemoryEstimate") \
V(_, jsMemoryRange_string, "jsMemoryRange") \
V(_, keys_string, "keys") \
V(_, largestUnit_string, "largestUnit") \
V(_, lastIndex_string, "lastIndex") \
V(_, length_string, "length") \
V(_, let_string, "let") \
V(_, line_string, "line") \
V(_, linear_string, "linear") \
V(_, LinkError_string, "LinkError") \
V(_, long_string, "long") \
V(_, Map_string, "Map") \
V(_, MapIterator_string, "Map Iterator") \
V(_, max_byte_length_string, "maxByteLength") \
V(_, medium_string, "medium") \
V(_, mergeFields_string, "mergeFields") \
V(_, message_string, "message") \
V(_, meta_string, "meta") \
V(_, minus_Infinity_string, "-Infinity") \
V(_, microsecond_string, "microsecond") \
V(_, microseconds_string, "microseconds") \
V(_, millisecond_string, "millisecond") \
V(_, milliseconds_string, "milliseconds") \
V(_, minute_string, "minute") \
V(_, minutes_string, "minutes") \
V(_, Module_string, "Module") \
V(_, month_string, "month") \
V(_, monthDayFromFields_string, "monthDayFromFields") \
V(_, months_string, "months") \
V(_, monthsInYear_string, "monthsInYear") \
V(_, monthCode_string, "monthCode") \
V(_, multiline_string, "multiline") \
V(_, name_string, "name") \
V(_, NaN_string, "NaN") \
V(_, nanosecond_string, "nanosecond") \
V(_, nanoseconds_string, "nanoseconds") \
V(_, narrow_string, "narrow") \
V(_, native_string, "native") \
V(_, new_target_string, ".new.target") \
V(_, next_string, "next") \
V(_, NFC_string, "NFC") \
V(_, NFD_string, "NFD") \
V(_, NFKC_string, "NFKC") \
V(_, NFKD_string, "NFKD") \
V(_, not_equal_string, "not-equal") \
V(_, null_string, "null") \
V(_, null_to_string, "[object Null]") \
V(_, Number_string, "Number") \
V(_, number_string, "number") \
V(_, number_to_string, "[object Number]") \
V(_, Object_string, "Object") \
V(_, object_string, "object") \
V(_, object_to_string, "[object Object]") \
V(_, of_string, "of") \
V(_, offset_string, "offset") \
V(_, offsetNanoseconds_string, "offsetNanoseconds") \
V(_, ok_string, "ok") \
V(_, one_string, "1") \
V(_, other_string, "other") \
V(_, overflow_string, "overflow") \
V(_, ownKeys_string, "ownKeys") \
V(_, percent_string, "percent") \
V(_, position_string, "position") \
V(_, preventExtensions_string, "preventExtensions") \
V(_, private_constructor_string, "#constructor") \
V(_, Promise_string, "Promise") \
V(_, proto_string, "__proto__") \
V(_, prototype_string, "prototype") \
V(_, proxy_string, "proxy") \
V(_, Proxy_string, "Proxy") \
V(_, query_colon_string, "(?:)") \
V(_, RangeError_string, "RangeError") \
V(_, raw_string, "raw") \
V(_, ReferenceError_string, "ReferenceError") \
V(_, ReflectGet_string, "Reflect.get") \
V(_, ReflectHas_string, "Reflect.has") \
V(_, RegExp_string, "RegExp") \
V(_, regexp_to_string, "[object RegExp]") \
V(_, reject_string, "reject") \
V(_, resizable_string, "resizable") \
V(_, ResizableArrayBuffer_string, "ResizableArrayBuffer") \
V(_, resolve_string, "resolve") \
V(_, return_string, "return") \
V(_, revoke_string, "revoke") \
V(_, RuntimeError_string, "RuntimeError") \
V(_, WebAssemblyException_string, "WebAssembly.Exception") \
V(_, Script_string, "Script") \
V(_, script_string, "script") \
V(_, second_string, "second") \
V(_, seconds_string, "seconds") \
V(_, short_string, "short") \
V(_, Set_string, "Set") \
V(_, sentence_string, "sentence") \
V(_, set_space_string, "set ") \
V(_, set_string, "set") \
V(_, SetIterator_string, "Set Iterator") \
V(_, setPrototypeOf_string, "setPrototypeOf") \
V(_, SharedArrayBuffer_string, "SharedArrayBuffer") \
V(_, sign_string, "sign") \
V(_, smallestUnit_string, "smallestUnit") \
V(_, source_string, "source") \
V(_, sourceText_string, "sourceText") \
V(_, stack_string, "stack") \
V(_, stackTraceLimit_string, "stackTraceLimit") \
V(_, sticky_string, "sticky") \
V(_, String_string, "String") \
V(_, string_string, "string") \
V(_, string_to_string, "[object String]") \
V(_, symbol_species_string, "[Symbol.species]") \
V(_, Symbol_string, "Symbol") \
V(_, symbol_string, "symbol") \
V(_, SyntaxError_string, "SyntaxError") \
V(_, target_string, "target") \
V(_, then_string, "then") \
V(_, this_function_string, ".this_function") \
V(_, this_string, "this") \
V(_, throw_string, "throw") \
V(_, timed_out_string, "timed-out") \
V(_, timeZone_string, "timeZone") \
V(_, toJSON_string, "toJSON") \
V(_, toString_string, "toString") \
V(_, true_string, "true") \
V(_, total_string, "total") \
V(_, TypeError_string, "TypeError") \
V(_, Uint16Array_string, "Uint16Array") \
V(_, Uint32Array_string, "Uint32Array") \
V(_, Uint8Array_string, "Uint8Array") \
V(_, Uint8ClampedArray_string, "Uint8ClampedArray") \
V(_, undefined_string, "undefined") \
V(_, undefined_to_string, "[object Undefined]") \
V(_, unicode_string, "unicode") \
V(_, unit_string, "unit") \
V(_, URIError_string, "URIError") \
V(_, UTC_string, "UTC") \
V(_, value_string, "value") \
V(_, valueOf_string, "valueOf") \
V(_, WeakMap_string, "WeakMap") \
V(_, WeakRef_string, "WeakRef") \
V(_, WeakSet_string, "WeakSet") \
V(_, week_string, "week") \
V(_, weeks_string, "weeks") \
V(_, weekOfYear_string, "weekOfYear") \
V(_, word_string, "word") \
V(_, writable_string, "writable") \
V(_, yearMonthFromFields_string, "yearMonthFromFields") \
V(_, year_string, "year") \
V(_, years_string, "years") \
V(_, zero_string, "0")
#define PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \

View File

@ -46,6 +46,7 @@
#include "src/objects/js-proxy-inl.h"
#include "src/objects/js-regexp-inl.h"
#include "src/objects/js-regexp-string-iterator-inl.h"
#include "src/objects/js-temporal-objects-inl.h"
#include "src/objects/js-weak-refs-inl.h"
#include "src/objects/literal-objects-inl.h"
#include "src/objects/lookup-cache-inl.h"

View File

@ -188,6 +188,25 @@ enum ContextLookupFlags {
V(JS_WEAK_REF_FUNCTION_INDEX, JSFunction, js_weak_ref_fun) \
V(JS_FINALIZATION_REGISTRY_FUNCTION_INDEX, JSFunction, \
js_finalization_registry_fun) \
V(JS_TEMPORAL_CALENDAR_FUNCTION_INDEX, JSFunction, \
temporal_calendar_function) \
V(JS_TEMPORAL_DURATION_FUNCTION_INDEX, JSFunction, \
temporal_duration_function) \
V(JS_TEMPORAL_INSTANT_FUNCTION_INDEX, JSFunction, temporal_instant_function) \
V(JS_TEMPORAL_PLAIN_DATE_FUNCTION_INDEX, JSFunction, \
temporal_plain_date_function) \
V(JS_TEMPORAL_PLAIN_DATE_TIME_FUNCTION_INDEX, JSFunction, \
temporal_plain_date_time_function) \
V(JS_TEMPORAL_PLAIN_MONTH_DAY_FUNCTION_INDEX, JSFunction, \
temporal_plain_month_day_function) \
V(JS_TEMPORAL_PLAIN_TIME_FUNCTION_INDEX, JSFunction, \
temporal_plain_time_function) \
V(JS_TEMPORAL_PLAIN_YEAR_MONTH_FUNCTION_INDEX, JSFunction, \
temporal_plain_year_month_function) \
V(JS_TEMPORAL_TIME_ZONE_FUNCTION_INDEX, JSFunction, \
temporal_time_zone_function) \
V(JS_TEMPORAL_ZONED_DATE_TIME_FUNCTION_INDEX, JSFunction, \
temporal_zoned_date_time_function) \
/* Context maps */ \
V(NATIVE_CONTEXT_MAP_INDEX, Map, native_context_map) \
V(FUNCTION_CONTEXT_MAP_INDEX, Map, function_context_map) \

View File

@ -594,6 +594,16 @@ bool CanSubclassHaveInobjectProperties(InstanceType instance_type) {
case JS_SPECIAL_API_OBJECT_TYPE:
case JS_TYPED_ARRAY_TYPE:
case JS_PRIMITIVE_WRAPPER_TYPE:
case JS_TEMPORAL_CALENDAR_TYPE:
case JS_TEMPORAL_DURATION_TYPE:
case JS_TEMPORAL_INSTANT_TYPE:
case JS_TEMPORAL_PLAIN_DATE_TYPE:
case JS_TEMPORAL_PLAIN_DATE_TIME_TYPE:
case JS_TEMPORAL_PLAIN_MONTH_DAY_TYPE:
case JS_TEMPORAL_PLAIN_TIME_TYPE:
case JS_TEMPORAL_PLAIN_YEAR_MONTH_TYPE:
case JS_TEMPORAL_TIME_ZONE_TYPE:
case JS_TEMPORAL_ZONED_DATE_TIME_TYPE:
case JS_WEAK_MAP_TYPE:
case JS_WEAK_REF_TYPE:
case JS_WEAK_SET_TYPE:

View File

@ -58,6 +58,7 @@
#include "src/objects/js-segmenter.h"
#include "src/objects/js-segments.h"
#endif // V8_INTL_SUPPORT
#include "src/objects/js-temporal-objects-inl.h"
#include "src/objects/js-weak-refs.h"
#include "src/objects/map-inl.h"
#include "src/objects/module.h"
@ -2303,6 +2304,26 @@ int JSObject::GetHeaderSize(InstanceType type,
return JSStringIterator::kHeaderSize;
case JS_MODULE_NAMESPACE_TYPE:
return JSModuleNamespace::kHeaderSize;
case JS_TEMPORAL_CALENDAR_TYPE:
return JSTemporalCalendar::kHeaderSize;
case JS_TEMPORAL_DURATION_TYPE:
return JSTemporalDuration::kHeaderSize;
case JS_TEMPORAL_INSTANT_TYPE:
return JSTemporalInstant::kHeaderSize;
case JS_TEMPORAL_PLAIN_DATE_TYPE:
return JSTemporalPlainDate::kHeaderSize;
case JS_TEMPORAL_PLAIN_DATE_TIME_TYPE:
return JSTemporalPlainDateTime::kHeaderSize;
case JS_TEMPORAL_PLAIN_MONTH_DAY_TYPE:
return JSTemporalPlainMonthDay::kHeaderSize;
case JS_TEMPORAL_PLAIN_TIME_TYPE:
return JSTemporalPlainTime::kHeaderSize;
case JS_TEMPORAL_PLAIN_YEAR_MONTH_TYPE:
return JSTemporalPlainYearMonth::kHeaderSize;
case JS_TEMPORAL_TIME_ZONE_TYPE:
return JSTemporalTimeZone::kHeaderSize;
case JS_TEMPORAL_ZONED_DATE_TIME_TYPE:
return JSTemporalZonedDateTime::kHeaderSize;
#ifdef V8_INTL_SUPPORT
case JS_V8_BREAK_ITERATOR_TYPE:
return JSV8BreakIterator::kHeaderSize;

View File

@ -0,0 +1,103 @@
// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_OBJECTS_JS_TEMPORAL_OBJECTS_INL_H_
#define V8_OBJECTS_JS_TEMPORAL_OBJECTS_INL_H_
#include "src/api/api-inl.h"
#include "src/objects/js-temporal-objects.h"
#include "src/objects/objects-inl.h"
// Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h"
namespace v8 {
namespace internal {
#include "torque-generated/src/objects/js-temporal-objects-tq-inl.inc"
#define TEMPORAL_INLINE_GETTER_SETTER(T, data, field, lower, upper, B) \
inline void T::set_##field(int32_t field) { \
DCHECK_GE(upper, field); \
DCHECK_LE(lower, field); \
int hints = data(); \
hints = B##Bits::update(hints, field); \
set_##data(hints); \
} \
inline int32_t T::field() const { \
int32_t v = B##Bits::decode(data()); \
DCHECK_GE(upper, v); \
DCHECK_LE(lower, v); \
return v; \
}
#define TEMPORAL_INLINE_SIGNED_GETTER_SETTER(T, data, field, lower, upper, B) \
inline void T::set_##field(int32_t field) { \
DCHECK_GE(upper, field); \
DCHECK_LE(lower, field); \
int hints = data(); \
hints = B##Bits::update(hints, field); \
set_##data(hints); \
} \
inline int32_t T::field() const { \
int32_t v = B##Bits::decode(data()); \
v |= ((int32_t{1} << (B##Bits::kSize - 1) & v) \
? (static_cast<uint32_t>(int32_t{-1}) << B##Bits::kSize) \
: 0); \
CHECK_GE(upper, v); \
CHECK_LE(lower, v); \
return v; \
}
#define TEMPORAL_DATE_INLINE_GETTER_SETTER(T, data) \
TEMPORAL_INLINE_SIGNED_GETTER_SETTER(T, data, iso_year, -32767, 32768, \
IsoYear) \
TEMPORAL_INLINE_GETTER_SETTER(T, data, iso_month, 1, 12, IsoMonth) \
TEMPORAL_INLINE_GETTER_SETTER(T, data, iso_day, 1, 31, IsoDay)
#define TEMPORAL_TIME_INLINE_GETTER_SETTER(T, data1, data2) \
TEMPORAL_INLINE_GETTER_SETTER(T, data1, iso_hour, 0, 23, IsoHour) \
TEMPORAL_INLINE_GETTER_SETTER(T, data1, iso_minute, 0, 59, IsoMinute) \
TEMPORAL_INLINE_GETTER_SETTER(T, data1, iso_second, 0, 59, IsoSecond) \
TEMPORAL_INLINE_GETTER_SETTER(T, data2, iso_millisecond, 0, 999, \
IsoMillisecond) \
TEMPORAL_INLINE_GETTER_SETTER(T, data2, iso_microsecond, 0, 999, \
IsoMicrosecond) \
TEMPORAL_INLINE_GETTER_SETTER(T, data2, iso_nanosecond, 0, 999, IsoNanosecond)
TEMPORAL_DATE_INLINE_GETTER_SETTER(JSTemporalPlainDate, year_month_day)
TEMPORAL_DATE_INLINE_GETTER_SETTER(JSTemporalPlainDateTime, year_month_day)
TEMPORAL_TIME_INLINE_GETTER_SETTER(JSTemporalPlainDateTime, hour_minute_second,
second_parts)
TEMPORAL_DATE_INLINE_GETTER_SETTER(JSTemporalPlainMonthDay, year_month_day)
TEMPORAL_TIME_INLINE_GETTER_SETTER(JSTemporalPlainTime, hour_minute_second,
second_parts)
TEMPORAL_DATE_INLINE_GETTER_SETTER(JSTemporalPlainYearMonth, year_month_day)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalCalendar)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalDuration)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalInstant)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalPlainDate)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalPlainDateTime)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalPlainMonthDay)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalPlainTime)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalPlainYearMonth)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalTimeZone)
TQ_OBJECT_CONSTRUCTORS_IMPL(JSTemporalZonedDateTime)
BIT_FIELD_ACCESSORS(JSTemporalCalendar, flags, calendar_index,
JSTemporalCalendar::CalendarIndexBits)
BOOL_ACCESSORS(JSTemporalTimeZone, flags, is_offset, IsOffsetBit::kShift)
BIT_FIELD_ACCESSORS(JSTemporalTimeZone, flags,
offset_milliseconds_or_time_zone_index,
JSTemporalTimeZone::OffsetMillisecondsOrTimeZoneIndexBits)
} // namespace internal
} // namespace v8
#include "src/objects/object-macros-undef.h"
#endif // V8_OBJECTS_JS_TEMPORAL_OBJECTS_INL_H_

View File

@ -0,0 +1,163 @@
// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_OBJECTS_JS_TEMPORAL_OBJECTS_H_
#define V8_OBJECTS_JS_TEMPORAL_OBJECTS_H_
#include "src/execution/isolate.h"
#include "src/heap/factory.h"
#include "src/objects/objects.h"
// Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h"
namespace v8 {
namespace internal {
#include "torque-generated/src/objects/js-temporal-objects-tq.inc"
#define DECLARE_TEMPORAL_INLINE_GETTER_SETTER(field) \
inline void set_##field(int32_t field); \
inline int32_t field() const;
#define DECLARE_TEMPORAL_TIME_INLINE_GETTER_SETTER() \
DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_hour) \
DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_minute) \
DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_second) \
DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_millisecond) \
DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_microsecond) \
DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_nanosecond)
#define DECLARE_TEMPORAL_DATE_INLINE_GETTER_SETTER() \
DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_year) \
DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_month) \
DECLARE_TEMPORAL_INLINE_GETTER_SETTER(iso_day)
#define TEMPORAL_UNIMPLEMENTED(T) \
{ \
printf("TBW %s\n", __PRETTY_FUNCTION__); \
UNIMPLEMENTED(); \
}
class JSTemporalCalendar
: public TorqueGeneratedJSTemporalCalendar<JSTemporalCalendar, JSObject> {
public:
DECL_PRINTER(JSTemporalCalendar)
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_CALENDAR_FLAGS()
DECL_INT_ACCESSORS(calendar_index)
TQ_OBJECT_CONSTRUCTORS(JSTemporalCalendar)
};
class JSTemporalDuration
: public TorqueGeneratedJSTemporalDuration<JSTemporalDuration, JSObject> {
public:
DECL_PRINTER(JSTemporalDuration)
TQ_OBJECT_CONSTRUCTORS(JSTemporalDuration)
};
class JSTemporalInstant
: public TorqueGeneratedJSTemporalInstant<JSTemporalInstant, JSObject> {
public:
DECL_PRINTER(JSTemporalInstant)
TQ_OBJECT_CONSTRUCTORS(JSTemporalInstant)
};
class JSTemporalPlainDate
: public TorqueGeneratedJSTemporalPlainDate<JSTemporalPlainDate, JSObject> {
public:
DECL_PRINTER(JSTemporalPlainDate)
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
DECLARE_TEMPORAL_DATE_INLINE_GETTER_SETTER()
TQ_OBJECT_CONSTRUCTORS(JSTemporalPlainDate)
};
class JSTemporalPlainDateTime
: public TorqueGeneratedJSTemporalPlainDateTime<JSTemporalPlainDateTime,
JSObject> {
public:
DECL_PRINTER(JSTemporalPlainDateTime)
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_HOUR_MINUTE_SECOND()
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_SECOND_PARTS()
DECLARE_TEMPORAL_DATE_INLINE_GETTER_SETTER()
DECLARE_TEMPORAL_TIME_INLINE_GETTER_SETTER()
TQ_OBJECT_CONSTRUCTORS(JSTemporalPlainDateTime)
};
class JSTemporalPlainMonthDay
: public TorqueGeneratedJSTemporalPlainMonthDay<JSTemporalPlainMonthDay,
JSObject> {
public:
DECL_PRINTER(JSTemporalPlainMonthDay)
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
DECLARE_TEMPORAL_DATE_INLINE_GETTER_SETTER()
TQ_OBJECT_CONSTRUCTORS(JSTemporalPlainMonthDay)
};
class JSTemporalPlainTime
: public TorqueGeneratedJSTemporalPlainTime<JSTemporalPlainTime, JSObject> {
public:
DECL_PRINTER(JSTemporalPlainTime)
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_HOUR_MINUTE_SECOND()
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_SECOND_PARTS()
DECLARE_TEMPORAL_TIME_INLINE_GETTER_SETTER()
TQ_OBJECT_CONSTRUCTORS(JSTemporalPlainTime)
};
class JSTemporalPlainYearMonth
: public TorqueGeneratedJSTemporalPlainYearMonth<JSTemporalPlainYearMonth,
JSObject> {
public:
DECL_PRINTER(JSTemporalPlainYearMonth)
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_YEAR_MONTH_DAY()
DECLARE_TEMPORAL_DATE_INLINE_GETTER_SETTER()
TQ_OBJECT_CONSTRUCTORS(JSTemporalPlainYearMonth)
};
class JSTemporalTimeZone
: public TorqueGeneratedJSTemporalTimeZone<JSTemporalTimeZone, JSObject> {
public:
DECL_PRINTER(JSTemporalTimeZone)
DEFINE_TORQUE_GENERATED_JS_TEMPORAL_TIME_ZONE_FLAGS()
DECL_BOOLEAN_ACCESSORS(is_offset)
DECL_INT_ACCESSORS(offset_milliseconds_or_time_zone_index)
TQ_OBJECT_CONSTRUCTORS(JSTemporalTimeZone)
};
class JSTemporalZonedDateTime
: public TorqueGeneratedJSTemporalZonedDateTime<JSTemporalZonedDateTime,
JSObject> {
public:
DECL_PRINTER(JSTemporalZonedDateTime)
TQ_OBJECT_CONSTRUCTORS(JSTemporalZonedDateTime)
};
} // namespace internal
} // namespace v8
#include "src/objects/object-macros-undef.h"
#endif // V8_OBJECTS_JS_TEMPORAL_OBJECTS_H_

View File

@ -0,0 +1,89 @@
// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include 'src/objects/js-temporal-objects.h'
bitfield struct JSTemporalCalendarFlags extends uint31 {
calendar_index: int32: 5 bit;
}
bitfield struct JSTemporalYearMonthDay extends uint31 {
iso_year: int32: 16 bit;
iso_month: int32: 4 bit;
iso_day: int32: 5 bit;
}
bitfield struct JSTemporalHourMinuteSecond extends uint31 {
iso_hour: int32: 5 bit;
iso_minute: int32: 6 bit;
iso_second: int32: 6 bit;
}
bitfield struct JSTemporalSecondParts extends uint31 {
iso_millisecond: int32: 10 bit;
iso_microsecond: int32: 10 bit;
iso_nanosecond: int32: 10 bit;
}
bitfield struct JSTemporalTimeZoneFlags extends uint31 {
is_offset: bool: 1 bit;
offset_milliseconds_or_time_zone_index: int32: 28 bit;
}
extern class JSTemporalCalendar extends JSObject {
flags: SmiTagged<JSTemporalCalendarFlags>;
}
extern class JSTemporalDuration extends JSObject {
years: Number;
months: Number;
weeks: Number;
days: Number;
hours: Number;
minutes: Number;
seconds: Number;
milliseconds: Number;
microseconds: Number;
nanoseconds: Number;
}
extern class JSTemporalInstant extends JSObject { nanoseconds: BigInt; }
extern class JSTemporalPlainDateTime extends JSObject {
year_month_day: SmiTagged<JSTemporalYearMonthDay>;
hour_minute_second: SmiTagged<JSTemporalHourMinuteSecond>;
second_parts: SmiTagged<JSTemporalSecondParts>;
calendar: JSReceiver;
}
extern class JSTemporalPlainDate extends JSObject {
year_month_day: SmiTagged<JSTemporalYearMonthDay>;
calendar: JSReceiver;
}
extern class JSTemporalPlainMonthDay extends JSObject {
year_month_day: SmiTagged<JSTemporalYearMonthDay>;
calendar: JSReceiver;
}
extern class JSTemporalPlainTime extends JSObject {
hour_minute_second: SmiTagged<JSTemporalHourMinuteSecond>;
second_parts: SmiTagged<JSTemporalSecondParts>;
calendar: JSReceiver;
}
extern class JSTemporalPlainYearMonth extends JSObject {
year_month_day: SmiTagged<JSTemporalYearMonthDay>;
calendar: JSReceiver;
}
extern class JSTemporalTimeZone extends JSObject {
flags: SmiTagged<JSTemporalTimeZoneFlags>;
}
extern class JSTemporalZonedDateTime extends JSObject {
nanoseconds: BigInt;
time_zone: JSReceiver;
calendar: JSReceiver;
}

View File

@ -274,6 +274,16 @@ VisitorId Map::GetVisitorId(Map map) {
case JS_SET_VALUE_ITERATOR_TYPE:
case JS_STRING_ITERATOR_PROTOTYPE_TYPE:
case JS_STRING_ITERATOR_TYPE:
case JS_TEMPORAL_CALENDAR_TYPE:
case JS_TEMPORAL_DURATION_TYPE:
case JS_TEMPORAL_INSTANT_TYPE:
case JS_TEMPORAL_PLAIN_DATE_TYPE:
case JS_TEMPORAL_PLAIN_DATE_TIME_TYPE:
case JS_TEMPORAL_PLAIN_MONTH_DAY_TYPE:
case JS_TEMPORAL_PLAIN_TIME_TYPE:
case JS_TEMPORAL_PLAIN_YEAR_MONTH_TYPE:
case JS_TEMPORAL_TIME_ZONE_TYPE:
case JS_TEMPORAL_ZONED_DATE_TIME_TYPE:
case JS_TYPED_ARRAY_PROTOTYPE_TYPE:
#ifdef V8_INTL_SUPPORT
case JS_V8_BREAK_ITERATOR_TYPE:

View File

@ -158,6 +158,16 @@ class ZoneForwardList;
V(JSSetIterator) \
V(JSSpecialObject) \
V(JSStringIterator) \
V(JSTemporalCalendar) \
V(JSTemporalDuration) \
V(JSTemporalInstant) \
V(JSTemporalPlainDate) \
V(JSTemporalPlainTime) \
V(JSTemporalPlainDateTime) \
V(JSTemporalPlainMonthDay) \
V(JSTemporalPlainYearMonth) \
V(JSTemporalTimeZone) \
V(JSTemporalZonedDateTime) \
V(JSTypedArray) \
V(JSWeakCollection) \
V(JSWeakRef) \

View File

@ -1112,6 +1112,16 @@ ReturnType BodyDescriptorApply(InstanceType type, T1 p1, T2 p2, T3 p3, T4 p4) {
case JS_SPECIAL_API_OBJECT_TYPE:
case JS_STRING_ITERATOR_PROTOTYPE_TYPE:
case JS_STRING_ITERATOR_TYPE:
case JS_TEMPORAL_CALENDAR_TYPE:
case JS_TEMPORAL_DURATION_TYPE:
case JS_TEMPORAL_INSTANT_TYPE:
case JS_TEMPORAL_PLAIN_DATE_TYPE:
case JS_TEMPORAL_PLAIN_DATE_TIME_TYPE:
case JS_TEMPORAL_PLAIN_MONTH_DAY_TYPE:
case JS_TEMPORAL_PLAIN_TIME_TYPE:
case JS_TEMPORAL_PLAIN_YEAR_MONTH_TYPE:
case JS_TEMPORAL_TIME_ZONE_TYPE:
case JS_TEMPORAL_ZONED_DATE_TIME_TYPE:
case JS_TYPED_ARRAY_PROTOTYPE_TYPE:
case JS_FUNCTION_TYPE:
case JS_CLASS_CONSTRUCTOR_TYPE:

View File

@ -65,6 +65,16 @@
// - JSRegExp
// - JSSetIterator
// - JSStringIterator
// - JSTemporalCalendar
// - JSTemporalDuration
// - JSTemporalInstant
// - JSTemporalPlainDate
// - JSTemporalPlainDateTime
// - JSTemporalPlainMonthDay
// - JSTemporalPlainTime
// - JSTemporalPlainYearMonth
// - JSTemporalTimeZone
// - JSTemporalZonedDateTime
// - JSWeakCollection
// - JSWeakMap
// - JSWeakSet

View File

@ -5283,6 +5283,7 @@ void ImplementationVisitor::GenerateExportedMacrosAssembler(
cc_contents << "#include \"src/objects/fixed-array-inl.h\"\n";
cc_contents << "#include \"src/objects/free-space.h\"\n";
cc_contents << "#include \"src/objects/js-regexp-string-iterator.h\"\n";
cc_contents << "#include \"src/objects/js-temporal-objects.h\"\n";
cc_contents << "#include \"src/objects/js-weak-refs.h\"\n";
cc_contents << "#include \"src/objects/ordered-hash-table.h\"\n";
cc_contents << "#include \"src/objects/property-descriptor-object.h\"\n";

View File

@ -441,6 +441,9 @@
# noi18n is required for Intl
'regress/regress-crbug-1052647': [PASS,FAIL],
# Temporal intl tests won't work in no_i18n
'temporal/function-exist': [FAIL],
}], # 'no_i18n'
##############################################################################

View File

@ -0,0 +1,329 @@
// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-temporal
// This file is similar to function-exist but w/o era or eraYear
// The following are generated by
// proposal-temporal/spec$ egrep "<h1>" *.html|egrep ">Temporal\.|>get"|egrep "get|\(" | \
// cut -d'>' -f2|cut -d'<' -f 1 |egrep -v "era" |egrep -v "\. \. \." |sort -u
const funcs = [
"get Temporal.Calendar.prototype.id",
"get Temporal.Duration.prototype.blank",
"get Temporal.Duration.prototype.days",
"get Temporal.Duration.prototype.hours",
"get Temporal.Duration.prototype.microseconds",
"get Temporal.Duration.prototype.milliseconds",
"get Temporal.Duration.prototype.minutes",
"get Temporal.Duration.prototype.months",
"get Temporal.Duration.prototype.nanoseconds",
"get Temporal.Duration.prototype.seconds",
"get Temporal.Duration.prototype.sign",
"get Temporal.Duration.prototype.weeks",
"get Temporal.Duration.prototype.years",
"get Temporal.Instant.prototype.epochMicroseconds",
"get Temporal.Instant.prototype.epochMilliseconds",
"get Temporal.Instant.prototype.epochNanoseconds",
"get Temporal.Instant.prototype.epochSeconds",
"get Temporal.PlainDate.prototype.calendar",
"get Temporal.PlainDate.prototype.day",
"get Temporal.PlainDate.prototype.dayOfWeek",
"get Temporal.PlainDate.prototype.dayOfYear",
"get Temporal.PlainDate.prototype.daysInMonth",
"get Temporal.PlainDate.prototype.daysInWeek",
"get Temporal.PlainDate.prototype.daysInYear",
"get Temporal.PlainDate.prototype.inLeapYear",
"get Temporal.PlainDate.prototype.month",
"get Temporal.PlainDate.prototype.monthCode",
"get Temporal.PlainDate.prototype.monthsInYear",
"get Temporal.PlainDate.prototype.weekOfYear",
"get Temporal.PlainDate.prototype.year",
"get Temporal.PlainDateTime.prototype.calendar",
"get Temporal.PlainDateTime.prototype.day",
"get Temporal.PlainDateTime.prototype.dayOfWeek",
"get Temporal.PlainDateTime.prototype.dayOfYear",
"get Temporal.PlainDateTime.prototype.daysInMonth",
"get Temporal.PlainDateTime.prototype.daysInWeek",
"get Temporal.PlainDateTime.prototype.daysInYear",
"get Temporal.PlainDateTime.prototype.hour",
"get Temporal.PlainDateTime.prototype.inLeapYear",
"get Temporal.PlainDateTime.prototype.microsecond",
"get Temporal.PlainDateTime.prototype.millisecond",
"get Temporal.PlainDateTime.prototype.minute",
"get Temporal.PlainDateTime.prototype.month",
"get Temporal.PlainDateTime.prototype.monthCode",
"get Temporal.PlainDateTime.prototype.monthsInYear",
"get Temporal.PlainDateTime.prototype.nanosecond",
"get Temporal.PlainDateTime.prototype.second",
"get Temporal.PlainDateTime.prototype.weekOfYear",
"get Temporal.PlainDateTime.prototype.year",
"get Temporal.PlainMonthDay.prototype.calendar",
"get Temporal.PlainMonthDay.prototype.day",
"get Temporal.PlainMonthDay.prototype.monthCode",
"get Temporal.PlainTime.prototype.calendar",
"get Temporal.PlainTime.prototype.hour",
"get Temporal.PlainTime.prototype.microsecond",
"get Temporal.PlainTime.prototype.millisecond",
"get Temporal.PlainTime.prototype.minute",
"get Temporal.PlainTime.prototype.nanosecond",
"get Temporal.PlainTime.prototype.second",
"get Temporal.PlainYearMonth.prototype.calendar",
"get Temporal.PlainYearMonth.prototype.daysInMonth",
"get Temporal.PlainYearMonth.prototype.daysInYear",
"get Temporal.PlainYearMonth.prototype.inLeapYear",
"get Temporal.PlainYearMonth.prototype.month",
"get Temporal.PlainYearMonth.prototype.monthCode",
"get Temporal.PlainYearMonth.prototype.monthsInYear",
"get Temporal.PlainYearMonth.prototype.year",
"get Temporal.TimeZone.prototype.id",
"get Temporal.ZonedDateTime.prototype.calendar",
"get Temporal.ZonedDateTime.prototype.day",
"get Temporal.ZonedDateTime.prototype.dayOfWeek",
"get Temporal.ZonedDateTime.prototype.dayOfYear",
"get Temporal.ZonedDateTime.prototype.daysInMonth",
"get Temporal.ZonedDateTime.prototype.daysInWeek",
"get Temporal.ZonedDateTime.prototype.daysInYear",
"get Temporal.ZonedDateTime.prototype.epochMicroseconds",
"get Temporal.ZonedDateTime.prototype.epochMilliseconds",
"get Temporal.ZonedDateTime.prototype.epochNanoseconds",
"get Temporal.ZonedDateTime.prototype.epochSeconds",
"get Temporal.ZonedDateTime.prototype.hour",
"get Temporal.ZonedDateTime.prototype.hoursInDay",
"get Temporal.ZonedDateTime.prototype.inLeapYear",
"get Temporal.ZonedDateTime.prototype.microsecond",
"get Temporal.ZonedDateTime.prototype.millisecond",
"get Temporal.ZonedDateTime.prototype.minute",
"get Temporal.ZonedDateTime.prototype.month",
"get Temporal.ZonedDateTime.prototype.monthCode",
"get Temporal.ZonedDateTime.prototype.monthsInYear",
"get Temporal.ZonedDateTime.prototype.nanosecond",
"get Temporal.ZonedDateTime.prototype.offset",
"get Temporal.ZonedDateTime.prototype.offsetNanoseconds",
"get Temporal.ZonedDateTime.prototype.second",
"get Temporal.ZonedDateTime.prototype.timeZone",
"get Temporal.ZonedDateTime.prototype.weekOfYear",
"get Temporal.ZonedDateTime.prototype.year",
"Temporal.Calendar.from ( _item_ )",
"Temporal.Calendar ( _id_ )",
"Temporal.Calendar.prototype.dateAdd ( _date_, _duration_ [ , _options_ ] )",
"Temporal.Calendar.prototype.dateFromFields ( _fields_ [ , _options_ ] )",
"Temporal.Calendar.prototype.dateUntil ( _one_, _two_ [ , _options_ ] )",
"Temporal.Calendar.prototype.dayOfWeek ( _dateOrDateTime_ )",
"Temporal.Calendar.prototype.dayOfWeek ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.dayOfYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.daysInMonth ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.daysInWeek ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.daysInYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.day ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.fields ( _fields_ )",
"Temporal.Calendar.prototype.inLeapYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.mergeFields ( _fields_, _additionalFields_ )",
"Temporal.Calendar.prototype.monthCode ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.monthDayFromFields ( _fields_ [ , _options_ ] )",
"Temporal.Calendar.prototype.monthsInYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.month ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.toJSON ( )",
"Temporal.Calendar.prototype.toString ( )",
"Temporal.Calendar.prototype.weekOfYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.yearMonthFromFields ( _fields_ [ , _options_ ] )",
"Temporal.Calendar.prototype.year ( _temporalDateLike_ )",
"Temporal.Duration.compare ( _one_, _two_ [ , _options_ ] )",
"Temporal.Duration.from ( _item_ )",
"Temporal.Duration.prototype.abs ( )",
"Temporal.Duration.prototype.add ( _other_ [ , _options_ ] )",
"Temporal.Duration.prototype.negated ( )",
"Temporal.Duration.prototype.round ( _options_ )",
"Temporal.Duration.prototype.subtract ( _other_ [ , _options_ ] )",
"Temporal.Duration.prototype.toJSON ( )",
"Temporal.Duration.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.Duration.prototype.toString ( [ _options_ ] )",
"Temporal.Duration.prototype.total ( _options_ )",
"Temporal.Duration.prototype.valueOf ( )",
"Temporal.Duration.prototype.with ( _temporalDurationLike_ )",
"Temporal.Duration ( [ _years_ [ , _months_ [ , _weeks_ [ , _days_ [ , _hours_ [ , _minutes_ [ , _seconds_ [ , _milliseconds_ [ , _microseconds_ [ , _nanoseconds_ ] ] ] ] ] ] ] ] ] ] )",
"Temporal.Instant.compare ( _one_, _two_ )",
"Temporal.Instant ( _epochNanoseconds_ )",
"Temporal.Instant.fromEpochMicroseconds ( _epochMicroseconds_ )",
"Temporal.Instant.fromEpochMilliseconds ( _epochMilliseconds_ )",
"Temporal.Instant.fromEpochNanoseconds ( _epochNanoseconds_ )",
"Temporal.Instant.fromEpochSeconds ( _epochSeconds_ )",
"Temporal.Instant.from ( _item_ )",
"Temporal.Instant.prototype.add ( _temporalDurationLike_ )",
"Temporal.Instant.prototype.equals ( _other_ )",
"Temporal.Instant.prototype.round ( _options_ )",
"Temporal.Instant.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.Instant.prototype.subtract ( _temporalDurationLike_ )",
"Temporal.Instant.prototype.toJSON ( )",
"Temporal.Instant.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.Instant.prototype.toString ( [ _options_ ] )",
"Temporal.Instant.prototype.toZonedDateTimeISO ( _item_ )",
"Temporal.Instant.prototype.toZonedDateTime ( _item_ )",
"Temporal.Instant.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.Instant.prototype.valueOf ( )",
"Temporal.Now.instant ( )",
"Temporal.Now.plainDate ( _calendar_ [ , _temporalTimeZoneLike_ ] )",
"Temporal.Now.plainDateISO ( [ _temporalTimeZoneLike_ ] )",
"Temporal.Now.plainDateTime ( _calendar_ [ , _temporalTimeZoneLike_ ] )",
"Temporal.Now.plainDateTimeISO ( [ _temporalTimeZoneLike_ ] )",
"Temporal.Now.plainTimeISO ( [ _temporalTimeZoneLike_ ] )",
"Temporal.Now.timeZone ( )",
"Temporal.Now.zonedDateTime ( _calendar_ [ , _temporalTimeZoneLike_ ] )",
"Temporal.Now.zonedDateTimeISO ( [ _temporalTimeZoneLike_ ] )",
"Temporal.PlainDate.compare ( _one_, _two_ )",
"Temporal.PlainDate.from ( _item_ [ , _options_ ] )",
"Temporal.PlainDate ( _isoYear_, _isoMonth_, _isoDay_ [ , _calendarLike_ ] )",
"Temporal.PlainDate.prototype.add ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainDate.prototype.equals ( _other_ )",
"Temporal.PlainDate.prototype.getISOFields ( )",
"Temporal.PlainDate.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.PlainDate.prototype.subtract ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainDate.prototype.toJSON ( )",
"Temporal.PlainDate.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainDate.prototype.toPlainDateTime ( [ _temporalTime_ ] )",
"Temporal.PlainDate.prototype.toPlainMonthDay ( )",
"Temporal.PlainDate.prototype.toPlainYearMonth ( )",
"Temporal.PlainDate.prototype.toString ( [ _options_ ] )",
"Temporal.PlainDate.prototype.toZonedDateTime ( _item_ )",
"Temporal.PlainDate.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.PlainDate.prototype.valueOf ( )",
"Temporal.PlainDate.prototype.withCalendar ( _calendar_ )",
"Temporal.PlainDate.prototype.with ( _temporalDateLike_ [ , _options_ ] )",
"Temporal.PlainDateTime.compare ( _one_, _two_ )",
"Temporal.PlainDateTime.from ( _item_ [ , _options_ ] )",
"Temporal.PlainDateTime ( _isoYear_, _isoMonth_, _isoDay_ [ , _hour_ [ , _minute_ [ , _second_ [ , _millisecond_ [ , _microsecond_ [ , _nanosecond_ [ , _calendarLike_ ] ] ] ] ] ] ] )",
"Temporal.PlainDateTime.prototype.add ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.equals ( _other_ )",
"Temporal.PlainDateTime.prototype.getISOFields ( )",
"Temporal.PlainDateTime.prototype.round ( _options_ )",
"Temporal.PlainDateTime.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.subtract ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.toJSON ( )",
"Temporal.PlainDateTime.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainDateTime.prototype.toPlainDate ( )",
"Temporal.PlainDateTime.prototype.toPlainMonthDay ( )",
"Temporal.PlainDateTime.prototype.toPlainTime ( )",
"Temporal.PlainDateTime.prototype.toPlainYearMonth ( )",
"Temporal.PlainDateTime.prototype.toString ( [ _options_ ] )",
"Temporal.PlainDateTime.prototype.toZonedDateTime ( _temporalTimeZoneLike_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.valueOf ( )",
"Temporal.PlainDateTime.prototype.withCalendar ( _calendar_ )",
"Temporal.PlainDateTime.prototype.withPlainDate ( _plainDateLike_ )",
"Temporal.PlainDateTime.prototype.withPlainTime ( [ _plainTimeLike_ ] )",
"Temporal.PlainDateTime.prototype.with ( _temporalDateTimeLike_ [ , _options_ ] )",
"Temporal.PlainMonthDay.from ( _item_ [ , _options_ ] )",
"Temporal.PlainMonthDay ( _isoMonth_, _isoDay_ [ , _calendarLike_ [ , _referenceISOYear_ ] ] )",
"Temporal.PlainMonthDay.prototype.equals ( _other_ )",
"Temporal.PlainMonthDay.prototype.getISOFields ( )",
"Temporal.PlainMonthDay.prototype.toJSON ( )",
"Temporal.PlainMonthDay.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainMonthDay.prototype.toPlainDate ( _item_ )",
"Temporal.PlainMonthDay.prototype.toString ( [ _options_ ] )",
"Temporal.PlainMonthDay.prototype.valueOf ( )",
"Temporal.PlainMonthDay.prototype.with ( _temporalMonthDayLike_ [ , _options_ ] )",
"Temporal.PlainTime.compare ( _one_, _two_ )",
"Temporal.PlainTime.from ( _item_ [ , _options_ ] )",
"Temporal.PlainTime ( [ _hour_ [ , _minute_ [ , _second_ [ , _millisecond_ [ , _microsecond_ [ , _nanosecond_ ] ] ] ] ] ] )",
"Temporal.PlainTime.prototype.add ( _temporalDurationLike_ )",
"Temporal.PlainTime.prototype.equals ( _other_ )",
"Temporal.PlainTime.prototype.getISOFields ( )",
"Temporal.PlainTime.prototype.round ( _options_ )",
"Temporal.PlainTime.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.PlainTime.prototype.subtract ( _temporalDurationLike_ )",
"Temporal.PlainTime.prototype.toJSON ( )",
"Temporal.PlainTime.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainTime.prototype.toPlainDateTime ( _temporalDate_ )",
"Temporal.PlainTime.prototype.toString ( [ _options_ ] )",
"Temporal.PlainTime.prototype.toZonedDateTime ( _item_ )",
"Temporal.PlainTime.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.PlainTime.prototype.valueOf ( )",
"Temporal.PlainTime.prototype.with ( _temporalTimeLike_ [ , _options_ ] )",
"Temporal.PlainYearMonth.compare ( _one_, _two_ )",
"Temporal.PlainYearMonth.from ( _item_ [ , _options_ ] )",
"Temporal.PlainYearMonth ( _isoYear_, _isoMonth_ [ , _calendarLike_ [ , _referenceISODay_ ] ] )",
"Temporal.PlainYearMonth.prototype.add ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainYearMonth.prototype.equals ( _other_ )",
"Temporal.PlainYearMonth.prototype.getISOFields ( )",
"Temporal.PlainYearMonth.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.PlainYearMonth.prototype.subtract ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainYearMonth.prototype.toJSON ( )",
"Temporal.PlainYearMonth.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainYearMonth.prototype.toPlainDate ( _item_ )",
"Temporal.PlainYearMonth.prototype.toString ( [ _options_ ] )",
"Temporal.PlainYearMonth.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.PlainYearMonth.prototype.valueOf ( )",
"Temporal.PlainYearMonth.prototype.with ( _temporalYearMonthLike_ [ , _options_ ] )",
"Temporal.TimeZone.from ( _item_ )",
"Temporal.TimeZone ( _identifier_ )",
"Temporal.TimeZone.prototype.getInstantFor ( _dateTime_ [ , _options_ ] )",
"Temporal.TimeZone.prototype.getNextTransition ( _startingPoint_ )",
"Temporal.TimeZone.prototype.getOffsetNanosecondsFor ( _instant_ )",
"Temporal.TimeZone.prototype.getOffsetStringFor ( _instant_ )",
"Temporal.TimeZone.prototype.getPlainDateTimeFor ( _instant_ [ , _calendarLike_ ] )",
"Temporal.TimeZone.prototype.getPossibleInstantsFor ( _dateTime_ )",
"Temporal.TimeZone.prototype.getPreviousTransition ( _startingPoint_ )",
"Temporal.TimeZone.prototype.toJSON ( )",
"Temporal.TimeZone.prototype.toString ( )",
"Temporal.ZonedDateTime.compare ( _one_, _two_ )",
"Temporal.ZonedDateTime ( _epochNanoseconds_, _timeZoneLike_ [ , _calendarLike_ ] )",
"Temporal.ZonedDateTime.from ( _item_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.add ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.equals ( _other_ )",
"Temporal.ZonedDateTime.prototype.getISOFields ( )",
"Temporal.ZonedDateTime.prototype.round ( _options_ )",
"Temporal.ZonedDateTime.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.startOfDay ( )",
"Temporal.ZonedDateTime.prototype.subtract ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.toInstant ( )",
"Temporal.ZonedDateTime.prototype.toJSON ( )",
"Temporal.ZonedDateTime.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.ZonedDateTime.prototype.toPlainDate ( )",
"Temporal.ZonedDateTime.prototype.toPlainDateTime ( )",
"Temporal.ZonedDateTime.prototype.toPlainMonthDay ( )",
"Temporal.ZonedDateTime.prototype.toPlainTime ( )",
"Temporal.ZonedDateTime.prototype.toPlainYearMonth ( )",
"Temporal.ZonedDateTime.prototype.toString ( [ _options_ ] )",
"Temporal.ZonedDateTime.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.valueOf ( )",
"Temporal.ZonedDateTime.prototype.withCalendar ( _calendarLike_ )",
"Temporal.ZonedDateTime.prototype.withPlainDate ( _plainDateLike_ )",
"Temporal.ZonedDateTime.prototype.withPlainTime ( [ _plainTimeLike_ ] )",
"Temporal.ZonedDateTime.prototype.with ( _temporalZonedDateTimeLike_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.withTimeZone ( _timeZoneLike_ )",
];
// Find out the minimum number of arguments of that function
function numberOfArgs(tokens) {
let argc = 0;
for (i = 2; i < tokens.length; i++) {
if (tokens[i] == "[" || tokens[i] == ")") {
return argc;
}
if (tokens[i] != ",") {
argc++;
}
}
}
funcs.forEach(function(line) {
let tokens = line.split(" ");
if (tokens[0] == "get") {
let lastDot = tokens[1].lastIndexOf(".");
let prototype = eval(tokens[1].substring(0, lastDot));
let property = tokens[1].substring(lastDot + 1);
let desc = Object.getOwnPropertyDescriptor(prototype, property);
assertNotEquals(desc, undefined, "Getter should be defined:" + line);
assertEquals(desc.set, undefined, "Setter should NOT be defined:" + line);
} else {
let obj = eval(tokens[0]);
// Verify the method is defined
assertNotEquals(obj, undefined,
"Method should be defined:" + line);
// Verify the number of minimum arguments.
assertEquals(obj.length, numberOfArgs(tokens),
"Method should be defined with " + numberOfArgs(tokens) +
" arguments but got " + obj.length + " arguments:\n" +line);
}
});

View File

@ -0,0 +1,338 @@
// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-temporal
// The following are generated by
// proposal-temporal/spec$ egrep "<h1>" *.html|egrep ">Temporal\.|>get"|egrep "get|\(" | \
// cut -d'>' -f2|cut -d'<' -f 1 |egrep -v "\. \. \." |sort -u
const funcs = [
"get Temporal.Calendar.prototype.id",
"get Temporal.Duration.prototype.blank",
"get Temporal.Duration.prototype.days",
"get Temporal.Duration.prototype.hours",
"get Temporal.Duration.prototype.microseconds",
"get Temporal.Duration.prototype.milliseconds",
"get Temporal.Duration.prototype.minutes",
"get Temporal.Duration.prototype.months",
"get Temporal.Duration.prototype.nanoseconds",
"get Temporal.Duration.prototype.seconds",
"get Temporal.Duration.prototype.sign",
"get Temporal.Duration.prototype.weeks",
"get Temporal.Duration.prototype.years",
"get Temporal.Instant.prototype.epochMicroseconds",
"get Temporal.Instant.prototype.epochMilliseconds",
"get Temporal.Instant.prototype.epochNanoseconds",
"get Temporal.Instant.prototype.epochSeconds",
"get Temporal.PlainDate.prototype.calendar",
"get Temporal.PlainDate.prototype.day",
"get Temporal.PlainDate.prototype.dayOfWeek",
"get Temporal.PlainDate.prototype.dayOfYear",
"get Temporal.PlainDate.prototype.daysInMonth",
"get Temporal.PlainDate.prototype.daysInWeek",
"get Temporal.PlainDate.prototype.daysInYear",
"get Temporal.PlainDate.prototype.era",
"get Temporal.PlainDate.prototype.eraYear",
"get Temporal.PlainDate.prototype.inLeapYear",
"get Temporal.PlainDate.prototype.month",
"get Temporal.PlainDate.prototype.monthCode",
"get Temporal.PlainDate.prototype.monthsInYear",
"get Temporal.PlainDate.prototype.weekOfYear",
"get Temporal.PlainDate.prototype.year",
"get Temporal.PlainDateTime.prototype.calendar",
"get Temporal.PlainDateTime.prototype.day",
"get Temporal.PlainDateTime.prototype.dayOfWeek",
"get Temporal.PlainDateTime.prototype.dayOfYear",
"get Temporal.PlainDateTime.prototype.daysInMonth",
"get Temporal.PlainDateTime.prototype.daysInWeek",
"get Temporal.PlainDateTime.prototype.daysInYear",
"get Temporal.PlainDateTime.prototype.era",
"get Temporal.PlainDateTime.prototype.eraYear",
"get Temporal.PlainDateTime.prototype.hour",
"get Temporal.PlainDateTime.prototype.inLeapYear",
"get Temporal.PlainDateTime.prototype.microsecond",
"get Temporal.PlainDateTime.prototype.millisecond",
"get Temporal.PlainDateTime.prototype.minute",
"get Temporal.PlainDateTime.prototype.month",
"get Temporal.PlainDateTime.prototype.monthCode",
"get Temporal.PlainDateTime.prototype.monthsInYear",
"get Temporal.PlainDateTime.prototype.nanosecond",
"get Temporal.PlainDateTime.prototype.second",
"get Temporal.PlainDateTime.prototype.weekOfYear",
"get Temporal.PlainDateTime.prototype.year",
"get Temporal.PlainMonthDay.prototype.calendar",
"get Temporal.PlainMonthDay.prototype.day",
"get Temporal.PlainMonthDay.prototype.monthCode",
"get Temporal.PlainTime.prototype.calendar",
"get Temporal.PlainTime.prototype.hour",
"get Temporal.PlainTime.prototype.microsecond",
"get Temporal.PlainTime.prototype.millisecond",
"get Temporal.PlainTime.prototype.minute",
"get Temporal.PlainTime.prototype.nanosecond",
"get Temporal.PlainTime.prototype.second",
"get Temporal.PlainYearMonth.prototype.calendar",
"get Temporal.PlainYearMonth.prototype.daysInMonth",
"get Temporal.PlainYearMonth.prototype.daysInYear",
"get Temporal.PlainYearMonth.prototype.era",
"get Temporal.PlainYearMonth.prototype.eraYear",
"get Temporal.PlainYearMonth.prototype.inLeapYear",
"get Temporal.PlainYearMonth.prototype.month",
"get Temporal.PlainYearMonth.prototype.monthCode",
"get Temporal.PlainYearMonth.prototype.monthsInYear",
"get Temporal.PlainYearMonth.prototype.year",
"get Temporal.TimeZone.prototype.id",
"get Temporal.ZonedDateTime.prototype.calendar",
"get Temporal.ZonedDateTime.prototype.day",
"get Temporal.ZonedDateTime.prototype.dayOfWeek",
"get Temporal.ZonedDateTime.prototype.dayOfYear",
"get Temporal.ZonedDateTime.prototype.daysInMonth",
"get Temporal.ZonedDateTime.prototype.daysInWeek",
"get Temporal.ZonedDateTime.prototype.daysInYear",
"get Temporal.ZonedDateTime.prototype.epochMicroseconds",
"get Temporal.ZonedDateTime.prototype.epochMilliseconds",
"get Temporal.ZonedDateTime.prototype.epochNanoseconds",
"get Temporal.ZonedDateTime.prototype.epochSeconds",
"get Temporal.ZonedDateTime.prototype.era",
"get Temporal.ZonedDateTime.prototype.eraYear",
"get Temporal.ZonedDateTime.prototype.hour",
"get Temporal.ZonedDateTime.prototype.hoursInDay",
"get Temporal.ZonedDateTime.prototype.inLeapYear",
"get Temporal.ZonedDateTime.prototype.microsecond",
"get Temporal.ZonedDateTime.prototype.millisecond",
"get Temporal.ZonedDateTime.prototype.minute",
"get Temporal.ZonedDateTime.prototype.month",
"get Temporal.ZonedDateTime.prototype.monthCode",
"get Temporal.ZonedDateTime.prototype.monthsInYear",
"get Temporal.ZonedDateTime.prototype.nanosecond",
"get Temporal.ZonedDateTime.prototype.offset",
"get Temporal.ZonedDateTime.prototype.offsetNanoseconds",
"get Temporal.ZonedDateTime.prototype.second",
"get Temporal.ZonedDateTime.prototype.timeZone",
"get Temporal.ZonedDateTime.prototype.weekOfYear",
"get Temporal.ZonedDateTime.prototype.year",
"Temporal.Calendar.from ( _item_ )",
"Temporal.Calendar ( _id_ )",
"Temporal.Calendar.prototype.dateAdd ( _date_, _duration_ [ , _options_ ] )",
"Temporal.Calendar.prototype.dateFromFields ( _fields_ [ , _options_ ] )",
"Temporal.Calendar.prototype.dateUntil ( _one_, _two_ [ , _options_ ] )",
"Temporal.Calendar.prototype.dayOfWeek ( _dateOrDateTime_ )",
"Temporal.Calendar.prototype.dayOfWeek ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.dayOfYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.daysInMonth ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.daysInWeek ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.daysInYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.day ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.era ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.eraYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.fields ( _fields_ )",
"Temporal.Calendar.prototype.inLeapYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.mergeFields ( _fields_, _additionalFields_ )",
"Temporal.Calendar.prototype.monthCode ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.monthDayFromFields ( _fields_ [ , _options_ ] )",
"Temporal.Calendar.prototype.monthsInYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.month ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.toJSON ( )",
"Temporal.Calendar.prototype.toString ( )",
"Temporal.Calendar.prototype.weekOfYear ( _temporalDateLike_ )",
"Temporal.Calendar.prototype.yearMonthFromFields ( _fields_ [ , _options_ ] )",
"Temporal.Calendar.prototype.year ( _temporalDateLike_ )",
"Temporal.Duration.compare ( _one_, _two_ [ , _options_ ] )",
"Temporal.Duration.from ( _item_ )",
"Temporal.Duration.prototype.abs ( )",
"Temporal.Duration.prototype.add ( _other_ [ , _options_ ] )",
"Temporal.Duration.prototype.negated ( )",
"Temporal.Duration.prototype.round ( _options_ )",
"Temporal.Duration.prototype.subtract ( _other_ [ , _options_ ] )",
"Temporal.Duration.prototype.toJSON ( )",
"Temporal.Duration.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.Duration.prototype.toString ( [ _options_ ] )",
"Temporal.Duration.prototype.total ( _options_ )",
"Temporal.Duration.prototype.valueOf ( )",
"Temporal.Duration.prototype.with ( _temporalDurationLike_ )",
"Temporal.Duration ( [ _years_ [ , _months_ [ , _weeks_ [ , _days_ [ , _hours_ [ , _minutes_ [ , _seconds_ [ , _milliseconds_ [ , _microseconds_ [ , _nanoseconds_ ] ] ] ] ] ] ] ] ] ] )",
"Temporal.Instant.compare ( _one_, _two_ )",
"Temporal.Instant ( _epochNanoseconds_ )",
"Temporal.Instant.fromEpochMicroseconds ( _epochMicroseconds_ )",
"Temporal.Instant.fromEpochMilliseconds ( _epochMilliseconds_ )",
"Temporal.Instant.fromEpochNanoseconds ( _epochNanoseconds_ )",
"Temporal.Instant.fromEpochSeconds ( _epochSeconds_ )",
"Temporal.Instant.from ( _item_ )",
"Temporal.Instant.prototype.add ( _temporalDurationLike_ )",
"Temporal.Instant.prototype.equals ( _other_ )",
"Temporal.Instant.prototype.round ( _options_ )",
"Temporal.Instant.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.Instant.prototype.subtract ( _temporalDurationLike_ )",
"Temporal.Instant.prototype.toJSON ( )",
"Temporal.Instant.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.Instant.prototype.toString ( [ _options_ ] )",
"Temporal.Instant.prototype.toZonedDateTimeISO ( _item_ )",
"Temporal.Instant.prototype.toZonedDateTime ( _item_ )",
"Temporal.Instant.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.Instant.prototype.valueOf ( )",
"Temporal.Now.instant ( )",
"Temporal.Now.plainDate ( _calendar_ [ , _temporalTimeZoneLike_ ] )",
"Temporal.Now.plainDateISO ( [ _temporalTimeZoneLike_ ] )",
"Temporal.Now.plainDateTime ( _calendar_ [ , _temporalTimeZoneLike_ ] )",
"Temporal.Now.plainDateTimeISO ( [ _temporalTimeZoneLike_ ] )",
"Temporal.Now.plainTimeISO ( [ _temporalTimeZoneLike_ ] )",
"Temporal.Now.timeZone ( )",
"Temporal.Now.zonedDateTime ( _calendar_ [ , _temporalTimeZoneLike_ ] )",
"Temporal.Now.zonedDateTimeISO ( [ _temporalTimeZoneLike_ ] )",
"Temporal.PlainDate.compare ( _one_, _two_ )",
"Temporal.PlainDate.from ( _item_ [ , _options_ ] )",
"Temporal.PlainDate ( _isoYear_, _isoMonth_, _isoDay_ [ , _calendarLike_ ] )",
"Temporal.PlainDate.prototype.add ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainDate.prototype.equals ( _other_ )",
"Temporal.PlainDate.prototype.getISOFields ( )",
"Temporal.PlainDate.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.PlainDate.prototype.subtract ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainDate.prototype.toJSON ( )",
"Temporal.PlainDate.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainDate.prototype.toPlainDateTime ( [ _temporalTime_ ] )",
"Temporal.PlainDate.prototype.toPlainMonthDay ( )",
"Temporal.PlainDate.prototype.toPlainYearMonth ( )",
"Temporal.PlainDate.prototype.toString ( [ _options_ ] )",
"Temporal.PlainDate.prototype.toZonedDateTime ( _item_ )",
"Temporal.PlainDate.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.PlainDate.prototype.valueOf ( )",
"Temporal.PlainDate.prototype.withCalendar ( _calendar_ )",
"Temporal.PlainDate.prototype.with ( _temporalDateLike_ [ , _options_ ] )",
"Temporal.PlainDateTime.compare ( _one_, _two_ )",
"Temporal.PlainDateTime.from ( _item_ [ , _options_ ] )",
"Temporal.PlainDateTime ( _isoYear_, _isoMonth_, _isoDay_ [ , _hour_ [ , _minute_ [ , _second_ [ , _millisecond_ [ , _microsecond_ [ , _nanosecond_ [ , _calendarLike_ ] ] ] ] ] ] ] )",
"Temporal.PlainDateTime.prototype.add ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.equals ( _other_ )",
"Temporal.PlainDateTime.prototype.getISOFields ( )",
"Temporal.PlainDateTime.prototype.round ( _options_ )",
"Temporal.PlainDateTime.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.subtract ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.toJSON ( )",
"Temporal.PlainDateTime.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainDateTime.prototype.toPlainDate ( )",
"Temporal.PlainDateTime.prototype.toPlainMonthDay ( )",
"Temporal.PlainDateTime.prototype.toPlainTime ( )",
"Temporal.PlainDateTime.prototype.toPlainYearMonth ( )",
"Temporal.PlainDateTime.prototype.toString ( [ _options_ ] )",
"Temporal.PlainDateTime.prototype.toZonedDateTime ( _temporalTimeZoneLike_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.PlainDateTime.prototype.valueOf ( )",
"Temporal.PlainDateTime.prototype.withCalendar ( _calendar_ )",
"Temporal.PlainDateTime.prototype.withPlainDate ( _plainDateLike_ )",
"Temporal.PlainDateTime.prototype.withPlainTime ( [ _plainTimeLike_ ] )",
"Temporal.PlainDateTime.prototype.with ( _temporalDateTimeLike_ [ , _options_ ] )",
"Temporal.PlainMonthDay.from ( _item_ [ , _options_ ] )",
"Temporal.PlainMonthDay ( _isoMonth_, _isoDay_ [ , _calendarLike_ [ , _referenceISOYear_ ] ] )",
"Temporal.PlainMonthDay.prototype.equals ( _other_ )",
"Temporal.PlainMonthDay.prototype.getISOFields ( )",
"Temporal.PlainMonthDay.prototype.toJSON ( )",
"Temporal.PlainMonthDay.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainMonthDay.prototype.toPlainDate ( _item_ )",
"Temporal.PlainMonthDay.prototype.toString ( [ _options_ ] )",
"Temporal.PlainMonthDay.prototype.valueOf ( )",
"Temporal.PlainMonthDay.prototype.with ( _temporalMonthDayLike_ [ , _options_ ] )",
"Temporal.PlainTime.compare ( _one_, _two_ )",
"Temporal.PlainTime.from ( _item_ [ , _options_ ] )",
"Temporal.PlainTime ( [ _hour_ [ , _minute_ [ , _second_ [ , _millisecond_ [ , _microsecond_ [ , _nanosecond_ ] ] ] ] ] ] )",
"Temporal.PlainTime.prototype.add ( _temporalDurationLike_ )",
"Temporal.PlainTime.prototype.equals ( _other_ )",
"Temporal.PlainTime.prototype.getISOFields ( )",
"Temporal.PlainTime.prototype.round ( _options_ )",
"Temporal.PlainTime.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.PlainTime.prototype.subtract ( _temporalDurationLike_ )",
"Temporal.PlainTime.prototype.toJSON ( )",
"Temporal.PlainTime.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainTime.prototype.toPlainDateTime ( _temporalDate_ )",
"Temporal.PlainTime.prototype.toString ( [ _options_ ] )",
"Temporal.PlainTime.prototype.toZonedDateTime ( _item_ )",
"Temporal.PlainTime.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.PlainTime.prototype.valueOf ( )",
"Temporal.PlainTime.prototype.with ( _temporalTimeLike_ [ , _options_ ] )",
"Temporal.PlainYearMonth.compare ( _one_, _two_ )",
"Temporal.PlainYearMonth.from ( _item_ [ , _options_ ] )",
"Temporal.PlainYearMonth ( _isoYear_, _isoMonth_ [ , _calendarLike_ [ , _referenceISODay_ ] ] )",
"Temporal.PlainYearMonth.prototype.add ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainYearMonth.prototype.equals ( _other_ )",
"Temporal.PlainYearMonth.prototype.getISOFields ( )",
"Temporal.PlainYearMonth.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.PlainYearMonth.prototype.subtract ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.PlainYearMonth.prototype.toJSON ( )",
"Temporal.PlainYearMonth.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.PlainYearMonth.prototype.toPlainDate ( _item_ )",
"Temporal.PlainYearMonth.prototype.toString ( [ _options_ ] )",
"Temporal.PlainYearMonth.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.PlainYearMonth.prototype.valueOf ( )",
"Temporal.PlainYearMonth.prototype.with ( _temporalYearMonthLike_ [ , _options_ ] )",
"Temporal.TimeZone.from ( _item_ )",
"Temporal.TimeZone ( _identifier_ )",
"Temporal.TimeZone.prototype.getInstantFor ( _dateTime_ [ , _options_ ] )",
"Temporal.TimeZone.prototype.getNextTransition ( _startingPoint_ )",
"Temporal.TimeZone.prototype.getOffsetNanosecondsFor ( _instant_ )",
"Temporal.TimeZone.prototype.getOffsetStringFor ( _instant_ )",
"Temporal.TimeZone.prototype.getPlainDateTimeFor ( _instant_ [ , _calendarLike_ ] )",
"Temporal.TimeZone.prototype.getPossibleInstantsFor ( _dateTime_ )",
"Temporal.TimeZone.prototype.getPreviousTransition ( _startingPoint_ )",
"Temporal.TimeZone.prototype.toJSON ( )",
"Temporal.TimeZone.prototype.toString ( )",
"Temporal.ZonedDateTime.compare ( _one_, _two_ )",
"Temporal.ZonedDateTime ( _epochNanoseconds_, _timeZoneLike_ [ , _calendarLike_ ] )",
"Temporal.ZonedDateTime.from ( _item_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.add ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.equals ( _other_ )",
"Temporal.ZonedDateTime.prototype.getISOFields ( )",
"Temporal.ZonedDateTime.prototype.round ( _options_ )",
"Temporal.ZonedDateTime.prototype.since ( _other_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.startOfDay ( )",
"Temporal.ZonedDateTime.prototype.subtract ( _temporalDurationLike_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.toInstant ( )",
"Temporal.ZonedDateTime.prototype.toJSON ( )",
"Temporal.ZonedDateTime.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )",
"Temporal.ZonedDateTime.prototype.toPlainDate ( )",
"Temporal.ZonedDateTime.prototype.toPlainDateTime ( )",
"Temporal.ZonedDateTime.prototype.toPlainMonthDay ( )",
"Temporal.ZonedDateTime.prototype.toPlainTime ( )",
"Temporal.ZonedDateTime.prototype.toPlainYearMonth ( )",
"Temporal.ZonedDateTime.prototype.toString ( [ _options_ ] )",
"Temporal.ZonedDateTime.prototype.until ( _other_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.valueOf ( )",
"Temporal.ZonedDateTime.prototype.withCalendar ( _calendarLike_ )",
"Temporal.ZonedDateTime.prototype.withPlainDate ( _plainDateLike_ )",
"Temporal.ZonedDateTime.prototype.withPlainTime ( [ _plainTimeLike_ ] )",
"Temporal.ZonedDateTime.prototype.with ( _temporalZonedDateTimeLike_ [ , _options_ ] )",
"Temporal.ZonedDateTime.prototype.withTimeZone ( _timeZoneLike_ )",
];
// Find out the minimum number of arguments of that function
function numberOfArgs(tokens) {
let argc = 0;
for (i = 2; i < tokens.length; i++) {
if (tokens[i] == "[" || tokens[i] == ")") {
return argc;
}
if (tokens[i] != ",") {
argc++;
}
}
}
funcs.forEach(function(line) {
let tokens = line.split(" ");
if (tokens[0] == "get") {
let lastDot = tokens[1].lastIndexOf(".");
let prototype = eval(tokens[1].substring(0, lastDot));
let property = tokens[1].substring(lastDot + 1);
let desc = Object.getOwnPropertyDescriptor(prototype, property);
assertNotEquals(desc, undefined, "Getter should be defined:" + line);
assertEquals(desc.set, undefined, "Setter should NOT be defined:" + line);
} else {
let obj = eval(tokens[0]);
// Verify the method is defined
assertNotEquals(obj, undefined,
"Method should be defined:" + line);
// Verify the number of minimum arguments.
assertEquals(obj.length, numberOfArgs(tokens),
"Method should be defined with " + numberOfArgs(tokens) +
" arguments but got " + obj.length + " arguments:\n" +line);
}
});

View File

@ -224,15 +224,25 @@ INSTANCE_TYPES = {
2122: "JS_SEGMENTER_TYPE",
2123: "JS_SEGMENTS_TYPE",
2124: "JS_STRING_ITERATOR_TYPE",
2125: "JS_V8_BREAK_ITERATOR_TYPE",
2126: "JS_WEAK_REF_TYPE",
2127: "WASM_GLOBAL_OBJECT_TYPE",
2128: "WASM_INSTANCE_OBJECT_TYPE",
2129: "WASM_MEMORY_OBJECT_TYPE",
2130: "WASM_MODULE_OBJECT_TYPE",
2131: "WASM_TABLE_OBJECT_TYPE",
2132: "WASM_TAG_OBJECT_TYPE",
2133: "WASM_VALUE_OBJECT_TYPE",
2125: "JS_TEMPORAL_CALENDAR_TYPE",
2126: "JS_TEMPORAL_DURATION_TYPE",
2127: "JS_TEMPORAL_INSTANT_TYPE",
2128: "JS_TEMPORAL_PLAIN_DATE_TYPE",
2129: "JS_TEMPORAL_PLAIN_DATE_TIME_TYPE",
2130: "JS_TEMPORAL_PLAIN_MONTH_DAY_TYPE",
2131: "JS_TEMPORAL_PLAIN_TIME_TYPE",
2132: "JS_TEMPORAL_PLAIN_YEAR_MONTH_TYPE",
2133: "JS_TEMPORAL_TIME_ZONE_TYPE",
2134: "JS_TEMPORAL_ZONED_DATE_TIME_TYPE",
2135: "JS_V8_BREAK_ITERATOR_TYPE",
2136: "JS_WEAK_REF_TYPE",
2137: "WASM_GLOBAL_OBJECT_TYPE",
2138: "WASM_INSTANCE_OBJECT_TYPE",
2139: "WASM_MEMORY_OBJECT_TYPE",
2140: "WASM_MODULE_OBJECT_TYPE",
2141: "WASM_TABLE_OBJECT_TYPE",
2142: "WASM_TAG_OBJECT_TYPE",
2143: "WASM_VALUE_OBJECT_TYPE",
}
# List of known V8 maps.
@ -331,66 +341,66 @@ KNOWN_MAPS = {
("read_only_space", 0x03215): (67, "BasicBlockCountersMarkerMap"),
("read_only_space", 0x03259): (91, "ArrayBoilerplateDescriptionMap"),
("read_only_space", 0x03359): (103, "InterceptorInfoMap"),
("read_only_space", 0x05699): (76, "PromiseFulfillReactionJobTaskMap"),
("read_only_space", 0x056c1): (77, "PromiseRejectReactionJobTaskMap"),
("read_only_space", 0x056e9): (78, "CallableTaskMap"),
("read_only_space", 0x05711): (79, "CallbackTaskMap"),
("read_only_space", 0x05739): (80, "PromiseResolveThenableJobTaskMap"),
("read_only_space", 0x05761): (83, "FunctionTemplateInfoMap"),
("read_only_space", 0x05789): (84, "ObjectTemplateInfoMap"),
("read_only_space", 0x057b1): (85, "AccessCheckInfoMap"),
("read_only_space", 0x057d9): (86, "AccessorInfoMap"),
("read_only_space", 0x05801): (87, "AccessorPairMap"),
("read_only_space", 0x05829): (88, "AliasedArgumentsEntryMap"),
("read_only_space", 0x05851): (89, "AllocationMementoMap"),
("read_only_space", 0x05879): (92, "AsmWasmDataMap"),
("read_only_space", 0x058a1): (93, "AsyncGeneratorRequestMap"),
("read_only_space", 0x058c9): (94, "BreakPointMap"),
("read_only_space", 0x058f1): (95, "BreakPointInfoMap"),
("read_only_space", 0x05919): (96, "CachedTemplateObjectMap"),
("read_only_space", 0x05941): (98, "ClassPositionsMap"),
("read_only_space", 0x05969): (99, "DebugInfoMap"),
("read_only_space", 0x05991): (102, "FunctionTemplateRareDataMap"),
("read_only_space", 0x059b9): (104, "InterpreterDataMap"),
("read_only_space", 0x059e1): (105, "ModuleRequestMap"),
("read_only_space", 0x05a09): (106, "PromiseCapabilityMap"),
("read_only_space", 0x05a31): (107, "PromiseReactionMap"),
("read_only_space", 0x05a59): (108, "PropertyDescriptorObjectMap"),
("read_only_space", 0x05a81): (109, "PrototypeInfoMap"),
("read_only_space", 0x05aa9): (110, "RegExpBoilerplateDescriptionMap"),
("read_only_space", 0x05ad1): (111, "ScriptMap"),
("read_only_space", 0x05af9): (112, "SourceTextModuleInfoEntryMap"),
("read_only_space", 0x05b21): (113, "StackFrameInfoMap"),
("read_only_space", 0x05b49): (114, "TemplateObjectDescriptionMap"),
("read_only_space", 0x05b71): (115, "Tuple2Map"),
("read_only_space", 0x05b99): (116, "WasmExceptionTagMap"),
("read_only_space", 0x05bc1): (117, "WasmIndirectFunctionTableMap"),
("read_only_space", 0x05be9): (135, "SloppyArgumentsElementsMap"),
("read_only_space", 0x05c11): (152, "DescriptorArrayMap"),
("read_only_space", 0x05c39): (157, "UncompiledDataWithoutPreparseDataMap"),
("read_only_space", 0x05c61): (156, "UncompiledDataWithPreparseDataMap"),
("read_only_space", 0x05c89): (174, "OnHeapBasicBlockProfilerDataMap"),
("read_only_space", 0x05cb1): (170, "InternalClassMap"),
("read_only_space", 0x05cd9): (181, "SmiPairMap"),
("read_only_space", 0x05d01): (180, "SmiBoxMap"),
("read_only_space", 0x05d29): (146, "ExportedSubClassBaseMap"),
("read_only_space", 0x05d51): (147, "ExportedSubClassMap"),
("read_only_space", 0x05d79): (68, "AbstractInternalClassSubclass1Map"),
("read_only_space", 0x05da1): (69, "AbstractInternalClassSubclass2Map"),
("read_only_space", 0x05dc9): (134, "InternalClassWithSmiElementsMap"),
("read_only_space", 0x05df1): (171, "InternalClassWithStructElementsMap"),
("read_only_space", 0x05e19): (148, "ExportedSubClass2Map"),
("read_only_space", 0x05e41): (182, "SortStateMap"),
("read_only_space", 0x05e69): (160, "CallRefDataMap"),
("read_only_space", 0x05e91): (90, "AllocationSiteWithWeakNextMap"),
("read_only_space", 0x05eb9): (90, "AllocationSiteWithoutWeakNextMap"),
("read_only_space", 0x05ee1): (81, "LoadHandler1Map"),
("read_only_space", 0x05f09): (81, "LoadHandler2Map"),
("read_only_space", 0x05f31): (81, "LoadHandler3Map"),
("read_only_space", 0x05f59): (82, "StoreHandler0Map"),
("read_only_space", 0x05f81): (82, "StoreHandler1Map"),
("read_only_space", 0x05fa9): (82, "StoreHandler2Map"),
("read_only_space", 0x05fd1): (82, "StoreHandler3Map"),
("read_only_space", 0x05bf1): (76, "PromiseFulfillReactionJobTaskMap"),
("read_only_space", 0x05c19): (77, "PromiseRejectReactionJobTaskMap"),
("read_only_space", 0x05c41): (78, "CallableTaskMap"),
("read_only_space", 0x05c69): (79, "CallbackTaskMap"),
("read_only_space", 0x05c91): (80, "PromiseResolveThenableJobTaskMap"),
("read_only_space", 0x05cb9): (83, "FunctionTemplateInfoMap"),
("read_only_space", 0x05ce1): (84, "ObjectTemplateInfoMap"),
("read_only_space", 0x05d09): (85, "AccessCheckInfoMap"),
("read_only_space", 0x05d31): (86, "AccessorInfoMap"),
("read_only_space", 0x05d59): (87, "AccessorPairMap"),
("read_only_space", 0x05d81): (88, "AliasedArgumentsEntryMap"),
("read_only_space", 0x05da9): (89, "AllocationMementoMap"),
("read_only_space", 0x05dd1): (92, "AsmWasmDataMap"),
("read_only_space", 0x05df9): (93, "AsyncGeneratorRequestMap"),
("read_only_space", 0x05e21): (94, "BreakPointMap"),
("read_only_space", 0x05e49): (95, "BreakPointInfoMap"),
("read_only_space", 0x05e71): (96, "CachedTemplateObjectMap"),
("read_only_space", 0x05e99): (98, "ClassPositionsMap"),
("read_only_space", 0x05ec1): (99, "DebugInfoMap"),
("read_only_space", 0x05ee9): (102, "FunctionTemplateRareDataMap"),
("read_only_space", 0x05f11): (104, "InterpreterDataMap"),
("read_only_space", 0x05f39): (105, "ModuleRequestMap"),
("read_only_space", 0x05f61): (106, "PromiseCapabilityMap"),
("read_only_space", 0x05f89): (107, "PromiseReactionMap"),
("read_only_space", 0x05fb1): (108, "PropertyDescriptorObjectMap"),
("read_only_space", 0x05fd9): (109, "PrototypeInfoMap"),
("read_only_space", 0x06001): (110, "RegExpBoilerplateDescriptionMap"),
("read_only_space", 0x06029): (111, "ScriptMap"),
("read_only_space", 0x06051): (112, "SourceTextModuleInfoEntryMap"),
("read_only_space", 0x06079): (113, "StackFrameInfoMap"),
("read_only_space", 0x060a1): (114, "TemplateObjectDescriptionMap"),
("read_only_space", 0x060c9): (115, "Tuple2Map"),
("read_only_space", 0x060f1): (116, "WasmExceptionTagMap"),
("read_only_space", 0x06119): (117, "WasmIndirectFunctionTableMap"),
("read_only_space", 0x06141): (135, "SloppyArgumentsElementsMap"),
("read_only_space", 0x06169): (152, "DescriptorArrayMap"),
("read_only_space", 0x06191): (157, "UncompiledDataWithoutPreparseDataMap"),
("read_only_space", 0x061b9): (156, "UncompiledDataWithPreparseDataMap"),
("read_only_space", 0x061e1): (174, "OnHeapBasicBlockProfilerDataMap"),
("read_only_space", 0x06209): (170, "InternalClassMap"),
("read_only_space", 0x06231): (181, "SmiPairMap"),
("read_only_space", 0x06259): (180, "SmiBoxMap"),
("read_only_space", 0x06281): (146, "ExportedSubClassBaseMap"),
("read_only_space", 0x062a9): (147, "ExportedSubClassMap"),
("read_only_space", 0x062d1): (68, "AbstractInternalClassSubclass1Map"),
("read_only_space", 0x062f9): (69, "AbstractInternalClassSubclass2Map"),
("read_only_space", 0x06321): (134, "InternalClassWithSmiElementsMap"),
("read_only_space", 0x06349): (171, "InternalClassWithStructElementsMap"),
("read_only_space", 0x06371): (148, "ExportedSubClass2Map"),
("read_only_space", 0x06399): (182, "SortStateMap"),
("read_only_space", 0x063c1): (160, "CallRefDataMap"),
("read_only_space", 0x063e9): (90, "AllocationSiteWithWeakNextMap"),
("read_only_space", 0x06411): (90, "AllocationSiteWithoutWeakNextMap"),
("read_only_space", 0x06439): (81, "LoadHandler1Map"),
("read_only_space", 0x06461): (81, "LoadHandler2Map"),
("read_only_space", 0x06489): (81, "LoadHandler3Map"),
("read_only_space", 0x064b1): (82, "StoreHandler0Map"),
("read_only_space", 0x064d9): (82, "StoreHandler1Map"),
("read_only_space", 0x06501): (82, "StoreHandler2Map"),
("read_only_space", 0x06529): (82, "StoreHandler3Map"),
("map_space", 0x02119): (1057, "ExternalMap"),
("map_space", 0x02141): (2114, "JSMessageObjectMap"),
}