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,14 +114,11 @@
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, _)
@ -158,6 +149,7 @@
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]") \
@ -166,6 +158,7 @@
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") \
@ -181,6 +174,16 @@
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") \
@ -200,14 +203,19 @@
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(_, 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") \
@ -220,17 +228,24 @@
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") \
@ -240,9 +255,20 @@
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") \
@ -254,13 +280,27 @@
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") \
@ -279,9 +319,12 @@
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") \
@ -300,7 +343,9 @@
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") \
@ -308,6 +353,8 @@
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") \
@ -316,6 +363,8 @@
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") \
@ -334,6 +383,7 @@
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") \
@ -346,15 +396,22 @@
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"),
}