diff --git a/JSTests/test262/config.yaml b/JSTests/test262/config.yaml
index 81816b1..51ac3d3 100644
--- a/JSTests/test262/config.yaml
+++ b/JSTests/test262/config.yaml
@@ -17,7 +17,6 @@
     # https://bugs.webkit.org/show_bug.cgi?id=174931
     - regexp-lookbehind
     - regexp-v-flag
-    - cleanupSome
     - resizable-arraybuffer
     - import-assertions
     - json-modules
@@ -25,6 +24,7 @@
     - callable-boundary-realms
     - FinalizationRegistry.prototype.cleanupSome
     - Intl.DurationFormat
+    - decorators
   paths:
     - test/built-ins/Temporal/Calendar
     - test/built-ins/Temporal/Instant/prototype/toZonedDateTime
diff --git a/JSTests/test262/expectations.yaml b/JSTests/test262/expectations.yaml
index bd07cec..b0a1596 100644
--- a/JSTests/test262/expectations.yaml
+++ b/JSTests/test262/expectations.yaml
@@ -603,6 +603,12 @@
   default: 'Test262Error: An initialized binding is not created prior to evaluation Expected a ReferenceError to be thrown but no exception was thrown at all'
 test/annexB/language/global-code/switch-dflt-global-skip-early-err.js:
   default: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f' in strict mode."
+test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-broken-promise.js:
+  default: 'Error: broken promise'
+  strict mode: 'Error: broken promise'
+test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js:
+  default: 'Test262:AsyncTestFailure:Error: broken promise'
+  strict mode: 'Test262:AsyncTestFailure:Error: broken promise'
 test/built-ins/Date/UTC/fp-evaluation-order.js:
   default: 'Test262Error: order of operations / precision in MakeTime Expected SameValue(«NaN», «29312») to be true'
   strict mode: 'Test262Error: order of operations / precision in MakeTime Expected SameValue(«NaN», «29312») to be true'
@@ -822,6 +828,12 @@
 test/built-ins/ShadowRealm/prototype/evaluate/throws-typeerror-wrap-throwing.js:
   default: 'Test262Error: TypeError on wrapping a callable proxy with throwing getOwnPropertyDescriptor trap Expected a TypeError to be thrown but no exception was thrown at all'
   strict mode: 'Test262Error: TypeError on wrapping a callable proxy with throwing getOwnPropertyDescriptor trap Expected a TypeError to be thrown but no exception was thrown at all'
+test/built-ins/ShadowRealm/prototype/importValue/throws-if-exportname-not-string.js:
+  default: 'Test262Error: Expected a TypeError but got a Test262Error'
+  strict mode: 'Test262Error: Expected a TypeError but got a Test262Error'
+test/built-ins/Temporal/Duration/compare/argument-string-negative-fractional-units.js:
+  default: 'Test262Error: negative fractional hours (first argument) Expected SameValue(«1», «0») to be true'
+  strict mode: 'Test262Error: negative fractional hours (first argument) Expected SameValue(«1», «0») to be true'
 test/built-ins/Temporal/Duration/compare/basic.js:
   default: 'RangeError: Cannot compare a duration of years, months, or weeks without a relativeTo option'
   strict mode: 'RangeError: Cannot compare a duration of years, months, or weeks without a relativeTo option'
@@ -867,6 +879,12 @@
 test/built-ins/Temporal/Duration/compare/twenty-five-hour-day.js:
   default: 'TypeError: Right side of assignment cannot be destructured'
   strict mode: 'TypeError: Right side of assignment cannot be destructured'
+test/built-ins/Temporal/Duration/from/argument-string-negative-fractional-units.js:
+  default: 'Test262Error: negative fractional hours nanoseconds result Expected SameValue(«-799», «-800») to be true'
+  strict mode: 'Test262Error: negative fractional hours nanoseconds result Expected SameValue(«-799», «-800») to be true'
+test/built-ins/Temporal/Duration/prototype/add/argument-string-negative-fractional-units.js:
+  default: 'Test262Error: negative fractional hours nanoseconds result Expected SameValue(«-799», «-800») to be true'
+  strict mode: 'Test262Error: negative fractional hours nanoseconds result Expected SameValue(«-799», «-800») to be true'
 test/built-ins/Temporal/Duration/prototype/add/calendar-dateadd-called-with-plaindate-instance.js:
   default: 'RangeError: Cannot add a duration of years, months, or weeks without a relativeTo option'
   strict mode: 'RangeError: Cannot add a duration of years, months, or weeks without a relativeTo option'
@@ -942,6 +960,12 @@
 test/built-ins/Temporal/Duration/prototype/round/relativeto-wrong-type.js:
   default: 'Test262Error: undefined does not convert to a valid ISO string Expected a RangeError but got a Error'
   strict mode: 'Test262Error: undefined does not convert to a valid ISO string Expected a RangeError but got a Error'
+test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-convert.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(0n, tz)')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(0n, tz)')"
+test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-slots.js:
+  default: "TypeError: undefined is not an object (evaluating 'Temporal.ZonedDateTime.prototype')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Temporal.ZonedDateTime.prototype')"
 test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-not-callable.js:
   default: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
   strict mode: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
@@ -954,6 +978,9 @@
 test/built-ins/Temporal/Duration/prototype/round/year-zero.js:
   default: 'Test262Error: reject minus zero as extended year Expected a RangeError but got a Error'
   strict mode: 'Test262Error: reject minus zero as extended year Expected a RangeError but got a Error'
+test/built-ins/Temporal/Duration/prototype/subtract/argument-string-negative-fractional-units.js:
+  default: 'Test262Error: negative fractional hours nanoseconds result Expected SameValue(«799», «800») to be true'
+  strict mode: 'Test262Error: negative fractional hours nanoseconds result Expected SameValue(«799», «800») to be true'
 test/built-ins/Temporal/Duration/prototype/subtract/calendar-dateadd-called-with-plaindate-instance.js:
   default: 'RangeError: Cannot subtract a duration of years, months, or weeks without a relativeTo option'
   strict mode: 'RangeError: Cannot subtract a duration of years, months, or weeks without a relativeTo option'
@@ -1038,9 +1065,15 @@
 test/built-ins/Temporal/Duration/prototype/total/unit-plurals-accepted-string.js:
   default: 'TypeError: Right hand side of instanceof is not an object'
   strict mode: 'TypeError: Right hand side of instanceof is not an object'
+test/built-ins/Temporal/Instant/prototype/add/argument-string-negative-fractional-units.js:
+  default: 'Test262Error: negative fractional hours Expected SameValue(«999911555595557201», «999911555595557200») to be true'
+  strict mode: 'Test262Error: negative fractional hours Expected SameValue(«999911555595557201», «999911555595557200») to be true'
 test/built-ins/Temporal/Instant/prototype/since/largestunit.js:
   default: 'Test262Error: does not include higher units than necessary (largest unit unspecified) nanoseconds result Expected SameValue(«40», «101») to be true'
   strict mode: 'Test262Error: does not include higher units than necessary (largest unit unspecified) nanoseconds result Expected SameValue(«40», «101») to be true'
+test/built-ins/Temporal/Instant/prototype/subtract/argument-string-negative-fractional-units.js:
+  default: 'Test262Error: negative fractional hours Expected SameValue(«1000088444404442799», «1000088444404442800») to be true'
+  strict mode: 'Test262Error: negative fractional hours Expected SameValue(«1000088444404442799», «1000088444404442800») to be true'
 test/built-ins/Temporal/Instant/prototype/toJSON/timezone-getoffsetnanosecondsfor-not-callable.js:
   default: 'Test262Error: Uncallable undefined getOffsetNanosecondsFor should throw TypeError Expected a TypeError to be thrown but no exception was thrown at all'
   strict mode: 'Test262Error: Uncallable undefined getOffsetNanosecondsFor should throw TypeError Expected a TypeError to be thrown but no exception was thrown at all'
@@ -1068,12 +1101,18 @@
 test/built-ins/Temporal/PlainTime/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-not-callable.js:
   default: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
   strict mode: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
+test/built-ins/Temporal/PlainTime/prototype/add/argument-string-negative-fractional-units.js:
+  default: 'Test262Error: negative fractional hours nanosecond result Expected SameValue(«201», «200») to be true'
+  strict mode: 'Test262Error: negative fractional hours nanosecond result Expected SameValue(«201», «200») to be true'
 test/built-ins/Temporal/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-not-callable.js:
   default: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
   strict mode: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
 test/built-ins/Temporal/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-not-callable.js:
   default: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
   strict mode: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
+test/built-ins/Temporal/PlainTime/prototype/subtract/argument-string-negative-fractional-units.js:
+  default: 'Test262Error: negative fractional hours nanosecond result Expected SameValue(«799», «800») to be true'
+  strict mode: 'Test262Error: negative fractional hours nanosecond result Expected SameValue(«799», «800») to be true'
 test/built-ins/Temporal/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-not-callable.js:
   default: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
   strict mode: "TypeError: undefined is not a constructor (evaluating 'new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone)')"
@@ -1203,6 +1242,9 @@
 test/intl402/NumberFormat/prototype/formatRangeToParts/x-greater-than-y-throws.js:
   default: 'Test262Error: Expected a RangeError but got a TypeError'
   strict mode: 'Test262Error: Expected a RangeError but got a TypeError'
+test/intl402/NumberFormat/test-option-roundingPriority-mixed-options.js:
+  default: 'Test262Error: Formatted value for 1, en-US-u-nu-arab and options {"minimumSignificantDigits":2,"minimumFractionDigits":2,"roundingPriority":"morePrecision","userGrouping":false} is ١٫٠٠; expected ١٫٠.'
+  strict mode: 'Test262Error: Formatted value for 1, en-US-u-nu-arab and options {"minimumSignificantDigits":2,"minimumFractionDigits":2,"roundingPriority":"morePrecision","userGrouping":false} is ١٫٠٠; expected ١٫٠.'
 test/intl402/PluralRules/prototype/selectRange/default-en-us.js:
   default: "TypeError: pr.selectRange is not a function. (In 'pr.selectRange(102, 201)', 'pr.selectRange' is undefined)"
   strict mode: "TypeError: pr.selectRange is not a function. (In 'pr.selectRange(102, 201)', 'pr.selectRange' is undefined)"
diff --git a/JSTests/test262/harness/temporalHelpers.js b/JSTests/test262/harness/temporalHelpers.js
index 963498b..d34fd2d 100644
--- a/JSTests/test262/harness/temporalHelpers.js
+++ b/JSTests/test262/harness/temporalHelpers.js
@@ -252,7 +252,7 @@
    * calendar object (so that it doesn't have to call the calendar getter itself
    * if it wants to make any assertions about the calendar.)
    */
-  checkPlainDateTimeConversionFastPath(func) {
+  checkPlainDateTimeConversionFastPath(func, message = "checkPlainDateTimeConversionFastPath") {
     const actual = [];
     const expected = [];
 
@@ -285,7 +285,7 @@
     });
 
     func(datetime, calendar);
-    assert.compareArray(actual, expected, "property getters not called");
+    assert.compareArray(actual, expected, `${message}: property getters not called`);
   },
 
   /*
diff --git a/JSTests/test262/latest-changes-summary.txt b/JSTests/test262/latest-changes-summary.txt
index 2bd51c9..cb7bbc2 100644
--- a/JSTests/test262/latest-changes-summary.txt
+++ b/JSTests/test262/latest-changes-summary.txt
@@ -1,1367 +1,516 @@
-M harness/propertyHelper.js
-M harness/regExpUtils.js
 M harness/temporalHelpers.js
-A test/built-ins/Array/prototype/Symbol.unscopables/array-find-from-last.js
-A test/built-ins/Array/prototype/Symbol.unscopables/array-grouping.js
-M test/built-ins/Array/prototype/Symbol.unscopables/value.js
-M test/built-ins/Array/prototype/concat/create-species-non-ctor.js
-M test/built-ins/Array/prototype/filter/create-species-non-ctor.js
-M test/built-ins/Array/prototype/map/create-species-non-ctor.js
-M test/built-ins/Array/prototype/slice/create-species-non-ctor.js
-M test/built-ins/Array/prototype/splice/create-species-non-ctor.js
-A test/built-ins/Date/parse/year-zero.js
-A test/built-ins/Date/year-zero.js
-M test/built-ins/Error/constructor.js
-M test/built-ins/Function/prototype/bind/instance-length-tointeger.js
-M test/built-ins/Number/S15.7.1.1_A1.js
-M test/built-ins/RegExp/prototype/toString/S15.10.6.4_A6.js
-M test/built-ins/RegExp/prototype/toString/S15.10.6.4_A7.js
-A test/built-ins/ShadowRealm/WrappedFunction/throws-typeerror-on-revoked-proxy.js
-R081 test/built-ins/ShadowRealm/prototype/evaluate/globalthis-orginary-object.js test/built-ins/ShadowRealm/prototype/evaluate/globalthis-ordinary-object.js
-A test/built-ins/ShadowRealm/prototype/evaluate/throws-typeerror-wrap-throwing.js
-M test/built-ins/String/prototype/localeCompare/15.5.4.9_CE.js
-A test/built-ins/Temporal/Calendar/from/calendar-number.js
-A test/built-ins/Temporal/Calendar/from/calendar-string-leap-second.js
-A test/built-ins/Temporal/Calendar/from/calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-string-invalid.js
-M test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-string-with-utc-designator.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/dateAdd/options-wrong-type.js
-M test/built-ins/Temporal/Calendar/prototype/dateAdd/overflow-invalid-string.js
-M test/built-ins/Temporal/Calendar/prototype/dateAdd/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/dateFromFields/options-wrong-type.js
-M test/built-ins/Temporal/Calendar/prototype/dateFromFields/overflow-invalid-string.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/dateUntil/options-wrong-type.js
-M test/built-ins/Temporal/Calendar/prototype/dateUntil/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/day/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/day/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/day/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/day/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/day/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/day/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/day/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/day/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/day/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/day/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/dayOfWeek/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfYear/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/dayOfYear/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/dayOfYear/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/daysInMonth/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/daysInMonth/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/daysInMonth/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/daysInWeek/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/daysInWeek/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/daysInWeek/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/daysInYear/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/daysInYear/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/daysInYear/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-string.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-wrong-type.js
-M test/built-ins/Temporal/Calendar/prototype/inLeapYear/basic.js
+A test/built-ins/AsyncGeneratorPrototype/return/return-state-completed-broken-promise.js
+A test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-broken-promise.js
+A test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js
+M test/built-ins/NativeErrors/AggregateError/newtarget-proto-custom.js
+R080 test/built-ins/ShadowRealm/prototype/importValue/exportName-tostring.js test/built-ins/ShadowRealm/prototype/importValue/throws-if-exportname-not-string.js
+M test/built-ins/Temporal/Calendar/constructor.js
+A test/built-ins/Temporal/Calendar/prototype/constructor.js
+R100 test/built-ins/Temporal/Calendar/prototype/dateAdd/leap-second.js test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-zoneddatetime-slots.js
+A test/built-ins/Temporal/Calendar/prototype/dateFromFields/missing-properties.js
+A test/built-ins/Temporal/Calendar/prototype/dateFromFields/order-of-operations.js
+A test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-zoneddatetime-slots.js
+R100 test/built-ins/Temporal/Calendar/prototype/day/leap-second.js test/built-ins/Temporal/Calendar/prototype/day/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/day/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/day/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/day/argument-zoneddatetime-slots.js
+R100 test/built-ins/Temporal/Calendar/prototype/dayOfWeek/leap-second.js test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-zoneddatetime-slots.js
+R100 test/built-ins/Temporal/Calendar/prototype/dayOfYear/leap-second.js test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-zoneddatetime-slots.js
+R100 test/built-ins/Temporal/Calendar/prototype/daysInMonth/leap-second.js test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-zoneddatetime-slots.js
+R100 test/built-ins/Temporal/Calendar/prototype/daysInWeek/leap-second.js test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-zoneddatetime-slots.js
+R100 test/built-ins/Temporal/Calendar/prototype/daysInYear/leap-second.js test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-zoneddatetime-slots.js
+M test/built-ins/Temporal/Calendar/prototype/fields/branding.js
+R100 test/built-ins/Temporal/Calendar/prototype/inLeapYear/leap-second.js test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-zoneddatetime-slots.js
 M test/built-ins/Temporal/Calendar/prototype/inLeapYear/branding.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/inLeapYear/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/inLeapYear/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/mergeFields/basic.js
-A test/built-ins/Temporal/Calendar/prototype/mergeFields/iso8601-calendar-month-monthCode.js
-A test/built-ins/Temporal/Calendar/prototype/mergeFields/non-string-properties.js
-A test/built-ins/Temporal/Calendar/prototype/month/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/month/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/month/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/month/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/month/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/month/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/month/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/month/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/month/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/month/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/monthCode/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/monthCode/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/monthCode/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/basic.js
-A test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/fields-missing-properties.js
-M test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/fields-not-object.js
-A test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/monthcode-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/options-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/overflow-constrain.js
-M test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/overflow-invalid-string.js
-A test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/overflow-reject.js
-A test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/reference-year-1972.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-string.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-wrong-type.js
-M test/built-ins/Temporal/Calendar/prototype/monthsInYear/basic.js
+M test/built-ins/Temporal/Calendar/prototype/mergeFields/branding.js
+R100 test/built-ins/Temporal/Calendar/prototype/month/leap-second.js test/built-ins/Temporal/Calendar/prototype/month/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/month/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/month/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/month/argument-zoneddatetime-slots.js
+R100 test/built-ins/Temporal/Calendar/prototype/monthCode/leap-second.js test/built-ins/Temporal/Calendar/prototype/monthCode/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/monthCode/argument-zoneddatetime-slots.js
+M test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/branding.js
+A test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/missing-properties.js
+A test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/order-of-operations.js
+R100 test/built-ins/Temporal/Calendar/prototype/monthsInYear/leap-second.js test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-zoneddatetime-slots.js
 M test/built-ins/Temporal/Calendar/prototype/monthsInYear/branding.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/monthsInYear/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/monthsInYear/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-plaindate.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-plaindatetime.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-string.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-wrong-type.js
+A test/built-ins/Temporal/Calendar/prototype/toStringTag/prop-desc.js
+R100 test/built-ins/Temporal/Calendar/prototype/weekOfYear/leap-second.js test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-zoneddatetime-slots.js
 M test/built-ins/Temporal/Calendar/prototype/weekOfYear/branding.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/weekOfYear/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/weekOfYear/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/year/argument-number.js
-A test/built-ins/Temporal/Calendar/prototype/year/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/Calendar/prototype/year/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/Calendar/prototype/year/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/year/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/year/argument-string-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/year/argument-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/year/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/Calendar/prototype/year/leap-second.js
-M test/built-ins/Temporal/Calendar/prototype/year/year-zero.js
-A test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/basic.js
+R100 test/built-ins/Temporal/Calendar/prototype/year/leap-second.js test/built-ins/Temporal/Calendar/prototype/year/argument-leap-second.js
+A test/built-ins/Temporal/Calendar/prototype/year/argument-string-time-separators.js
+A test/built-ins/Temporal/Calendar/prototype/year/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/Calendar/prototype/year/argument-zoneddatetime-slots.js
 M test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/branding.js
-A test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/fields-missing-properties.js
-M test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/fields-not-object.js
-A test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/monthcode-invalid.js
-A test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/options-not-object.js
-A test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/options-wrong-type.js
-A test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/overflow-constrain.js
-M test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/overflow-invalid-string.js
-A test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/overflow-reject.js
-A test/built-ins/Temporal/Duration/basic.js
-A test/built-ins/Temporal/Duration/call-builtin.js
-A test/built-ins/Temporal/Duration/compare/argument-cast.js
-A test/built-ins/Temporal/Duration/compare/basic.js
-A test/built-ins/Temporal/Duration/compare/calendar-dateadd-called-with-options-undefined.js
-A test/built-ins/Temporal/Duration/compare/options-wrong-type.js
-A test/built-ins/Temporal/Duration/compare/relativeto-hour.js
-A test/built-ins/Temporal/Duration/compare/relativeto-month.js
-A test/built-ins/Temporal/Duration/compare/relativeto-propertybag-invalid.js
-A test/built-ins/Temporal/Duration/compare/relativeto-year.js
-A test/built-ins/Temporal/Duration/compare/timezone-string-leap-second.js
-A test/built-ins/Temporal/Duration/compare/timezone-string-year-zero.js
-A test/built-ins/Temporal/Duration/compare/timezone-wrong-type.js
-A test/built-ins/Temporal/Duration/compare/twenty-five-hour-day.js
-M test/built-ins/Temporal/Duration/days-undefined.js
-A test/built-ins/Temporal/Duration/from/argument-duration.js
-M test/built-ins/Temporal/Duration/from/argument-existing-object.js
-A test/built-ins/Temporal/Duration/from/argument-object-invalid.js
-A test/built-ins/Temporal/Duration/from/argument-string-invalid.js
-A test/built-ins/Temporal/Duration/from/argument-string.js
-M test/built-ins/Temporal/Duration/hours-undefined.js
-M test/built-ins/Temporal/Duration/microseconds-undefined.js
-M test/built-ins/Temporal/Duration/milliseconds-undefined.js
-M test/built-ins/Temporal/Duration/minutes-undefined.js
-A test/built-ins/Temporal/Duration/mixed.js
-M test/built-ins/Temporal/Duration/months-undefined.js
-M test/built-ins/Temporal/Duration/nanoseconds-undefined.js
-A test/built-ins/Temporal/Duration/prototype/abs/basic.js
-A test/built-ins/Temporal/Duration/prototype/abs/new-object.js
-A test/built-ins/Temporal/Duration/prototype/add/argument-object-invalid.js
-A test/built-ins/Temporal/Duration/prototype/add/argument-string.js
-A test/built-ins/Temporal/Duration/prototype/add/basic.js
-M test/built-ins/Temporal/Duration/prototype/add/options-undefined.js
-A test/built-ins/Temporal/Duration/prototype/add/options-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/add/relativeto-leap-second.js
-A test/built-ins/Temporal/Duration/prototype/add/relativeto-month.js
-A test/built-ins/Temporal/Duration/prototype/add/relativeto-number.js
-A test/built-ins/Temporal/Duration/prototype/add/relativeto-order.js
-A test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-calendar-number.js
-A test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/add/relativeto-required.js
-A test/built-ins/Temporal/Duration/prototype/add/relativeto-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/add/relativeto-year.js
-A test/built-ins/Temporal/Duration/prototype/add/timezone-string-leap-second.js
-A test/built-ins/Temporal/Duration/prototype/add/timezone-string-year-zero.js
-A test/built-ins/Temporal/Duration/prototype/add/timezone-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/blank/basic.js
-A test/built-ins/Temporal/Duration/prototype/negated/basic.js
-A test/built-ins/Temporal/Duration/prototype/round/calendar-dateadd-called-with-options-undefined.js
-A test/built-ins/Temporal/Duration/prototype/round/largestunit-smallestunit-default.js
-A test/built-ins/Temporal/Duration/prototype/round/largestunit-smallestunit-mismatch.js
-A test/built-ins/Temporal/Duration/prototype/round/options-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/round/relativeto-leap-second.js
-A test/built-ins/Temporal/Duration/prototype/round/relativeto-number.js
-A test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-calendar-number.js
-A test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/round/relativeto-wrong-type.js
-M test/built-ins/Temporal/Duration/prototype/round/roundingmode-invalid-string.js
-A test/built-ins/Temporal/Duration/prototype/round/roundto-invalid-string.js
-D test/built-ins/Temporal/Duration/prototype/round/smallestunit-disallowed-units-string.js
-M test/built-ins/Temporal/Duration/prototype/round/smallestunit-invalid-string.js
-A test/built-ins/Temporal/Duration/prototype/round/smallestunit.js
-A test/built-ins/Temporal/Duration/prototype/round/timezone-string-leap-second.js
-A test/built-ins/Temporal/Duration/prototype/round/timezone-string-year-zero.js
-A test/built-ins/Temporal/Duration/prototype/round/timezone-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/subtract/argument-object-invalid.js
-A test/built-ins/Temporal/Duration/prototype/subtract/argument-string.js
-A test/built-ins/Temporal/Duration/prototype/subtract/basic.js
-M test/built-ins/Temporal/Duration/prototype/subtract/options-undefined.js
-A test/built-ins/Temporal/Duration/prototype/subtract/options-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/subtract/relativeto-leap-second.js
-A test/built-ins/Temporal/Duration/prototype/subtract/relativeto-month.js
-A test/built-ins/Temporal/Duration/prototype/subtract/relativeto-number.js
-A test/built-ins/Temporal/Duration/prototype/subtract/relativeto-order.js
-A test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-calendar-number.js
-A test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/subtract/relativeto-required.js
-A test/built-ins/Temporal/Duration/prototype/subtract/relativeto-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/subtract/relativeto-year.js
-A test/built-ins/Temporal/Duration/prototype/subtract/timezone-string-leap-second.js
-A test/built-ins/Temporal/Duration/prototype/subtract/timezone-string-year-zero.js
-A test/built-ins/Temporal/Duration/prototype/subtract/timezone-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/toJSON/basic.js
-A test/built-ins/Temporal/Duration/prototype/toJSON/options.js
-A test/built-ins/Temporal/Duration/prototype/toString/balance.js
-A test/built-ins/Temporal/Duration/prototype/toString/fractionalseconddigits-auto.js
-M test/built-ins/Temporal/Duration/prototype/toString/fractionalseconddigits-invalid-string.js
-A test/built-ins/Temporal/Duration/prototype/toString/fractionalseconddigits-number.js
-M test/built-ins/Temporal/Duration/prototype/toString/fractionalseconddigits-out-of-range.js
-M test/built-ins/Temporal/Duration/prototype/toString/fractionalseconddigits-undefined.js
-M test/built-ins/Temporal/Duration/prototype/toString/fractionalseconddigits-wrong-type.js
-M test/built-ins/Temporal/Duration/prototype/toString/negative-components.js
-A test/built-ins/Temporal/Duration/prototype/toString/options-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/toString/roundingmode-ceil.js
-A test/built-ins/Temporal/Duration/prototype/toString/roundingmode-floor.js
-A test/built-ins/Temporal/Duration/prototype/toString/roundingmode-halfExpand.js
-M test/built-ins/Temporal/Duration/prototype/toString/roundingmode-invalid-string.js
-A test/built-ins/Temporal/Duration/prototype/toString/roundingmode-trunc.js
-A test/built-ins/Temporal/Duration/prototype/toString/smallestunit-fractionalseconddigits.js
-M test/built-ins/Temporal/Duration/prototype/toString/smallestunit-invalid-string.js
-M test/built-ins/Temporal/Duration/prototype/toString/smallestunit-valid-units.js
-A test/built-ins/Temporal/Duration/prototype/total/calendar-dateadd-called-with-options-undefined.js
-M test/built-ins/Temporal/Duration/prototype/total/options-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/total/relativeto-leap-second.js
-A test/built-ins/Temporal/Duration/prototype/total/relativeto-number.js
-A test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-calendar-number.js
-A test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/total/relativeto-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/total/timezone-string-leap-second.js
-A test/built-ins/Temporal/Duration/prototype/total/timezone-string-year-zero.js
-A test/built-ins/Temporal/Duration/prototype/total/timezone-wrong-type.js
-A test/built-ins/Temporal/Duration/prototype/valueOf/basic.js
-A test/built-ins/Temporal/Duration/prototype/with/all-negative.js
-A test/built-ins/Temporal/Duration/prototype/with/all-positive.js
-A test/built-ins/Temporal/Duration/prototype/with/argument-invalid-prop.js
-A test/built-ins/Temporal/Duration/prototype/with/argument-mixed-sign.js
-A test/built-ins/Temporal/Duration/prototype/with/argument-object-wrong-shape.js
-A test/built-ins/Temporal/Duration/prototype/with/argument-sign-prop.js
-A test/built-ins/Temporal/Duration/prototype/with/argument-wrong-type.js
+A test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/missing-properties.js
+A test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/order-of-operations.js
+A test/built-ins/Temporal/Calendar/subclass.js
+M test/built-ins/Temporal/Duration/compare/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/Duration/from/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/Duration/prototype/add/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/Duration/prototype/add/branding.js
+A test/built-ins/Temporal/Duration/prototype/constructor.js
+M test/built-ins/Temporal/Duration/prototype/round/branding.js
+A test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-convert.js
+A test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-slots.js
+M test/built-ins/Temporal/Duration/prototype/subtract/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/Duration/prototype/subtract/branding.js
+A test/built-ins/Temporal/Duration/prototype/toStringTag/prop-desc.js
+M test/built-ins/Temporal/Duration/prototype/total/branding.js
 M test/built-ins/Temporal/Duration/prototype/with/branding.js
-A test/built-ins/Temporal/Duration/prototype/with/partial-positive.js
-A test/built-ins/Temporal/Duration/prototype/with/sign-conflict-throws-rangeerror.js
-A test/built-ins/Temporal/Duration/prototype/with/sign-replace.js
-M test/built-ins/Temporal/Duration/seconds-undefined.js
-M test/built-ins/Temporal/Duration/weeks-undefined.js
-M test/built-ins/Temporal/Duration/years-undefined.js
-A test/built-ins/Temporal/Instant/compare/argument-object-tostring.js
-A test/built-ins/Temporal/Instant/compare/argument-wrong-type.js
-A test/built-ins/Temporal/Instant/compare/instant-string-sub-minute-offset.js
-A test/built-ins/Temporal/Instant/compare/leap-second.js
-M test/built-ins/Temporal/Instant/compare/year-zero.js
-A test/built-ins/Temporal/Instant/from/argument-instant.js
-A test/built-ins/Temporal/Instant/from/argument-object-tostring.js
-A test/built-ins/Temporal/Instant/from/argument-wrong-type.js
-A test/built-ins/Temporal/Instant/from/basic.js
-A test/built-ins/Temporal/Instant/from/instant-string-sub-minute-offset.js
-A test/built-ins/Temporal/Instant/from/leap-second.js
-M test/built-ins/Temporal/Instant/from/year-zero.js
-A test/built-ins/Temporal/Instant/prototype/add/basic.js
+A test/built-ins/Temporal/Duration/subclass.js
+A test/built-ins/Temporal/Instant/compare/argument-string-invalid.js
+A test/built-ins/Temporal/Instant/compare/argument-string-time-separators.js
+M test/built-ins/Temporal/Instant/constructor.js
+A test/built-ins/Temporal/Instant/from/argument-string-invalid.js
+A test/built-ins/Temporal/Instant/from/argument-string-time-separators.js
+A test/built-ins/Temporal/Instant/from/argument-string.js
+M test/built-ins/Temporal/Instant/prototype/add/argument-string-negative-fractional-units.js
 M test/built-ins/Temporal/Instant/prototype/add/branding.js
-A test/built-ins/Temporal/Instant/prototype/add/disallowed-duration-units.js
-M test/built-ins/Temporal/Instant/prototype/add/result-out-of-range.js
-A test/built-ins/Temporal/Instant/prototype/equals/argument-object-tostring.js
-M test/built-ins/Temporal/Instant/prototype/equals/argument-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/equals/instant-string-sub-minute-offset.js
-A test/built-ins/Temporal/Instant/prototype/equals/leap-second.js
-M test/built-ins/Temporal/Instant/prototype/equals/year-zero.js
-M test/built-ins/Temporal/Instant/prototype/round/options-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/round/rounding-direction.js
-M test/built-ins/Temporal/Instant/prototype/round/roundingmode-invalid-string.js
-A test/built-ins/Temporal/Instant/prototype/round/roundto-invalid-string.js
-D test/built-ins/Temporal/Instant/prototype/round/smallestunit-disallowed-units.js
-M test/built-ins/Temporal/Instant/prototype/round/smallestunit-invalid-string.js
-A test/built-ins/Temporal/Instant/prototype/since/argument-object-tostring.js
-A test/built-ins/Temporal/Instant/prototype/since/argument-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/since/instant-string-sub-minute-offset.js
-M test/built-ins/Temporal/Instant/prototype/since/largestunit-invalid-string.js
-A test/built-ins/Temporal/Instant/prototype/since/leap-second.js
-A test/built-ins/Temporal/Instant/prototype/since/options-wrong-type.js
-M test/built-ins/Temporal/Instant/prototype/since/roundingmode-invalid-string.js
-M test/built-ins/Temporal/Instant/prototype/since/smallestunit-invalid-string.js
-M test/built-ins/Temporal/Instant/prototype/since/year-zero.js
-A test/built-ins/Temporal/Instant/prototype/subtract/basic.js
+A test/built-ins/Temporal/Instant/prototype/constructor.js
+A test/built-ins/Temporal/Instant/prototype/equals/argument-string-invalid.js
+A test/built-ins/Temporal/Instant/prototype/equals/argument-string-time-separators.js
+M test/built-ins/Temporal/Instant/prototype/equals/branding.js
+M test/built-ins/Temporal/Instant/prototype/round/branding.js
+A test/built-ins/Temporal/Instant/prototype/since/argument-string-invalid.js
+A test/built-ins/Temporal/Instant/prototype/since/argument-string-time-separators.js
+M test/built-ins/Temporal/Instant/prototype/since/branding.js
+M test/built-ins/Temporal/Instant/prototype/subtract/argument-string-negative-fractional-units.js
 M test/built-ins/Temporal/Instant/prototype/subtract/branding.js
-A test/built-ins/Temporal/Instant/prototype/subtract/disallowed-duration-units.js
-M test/built-ins/Temporal/Instant/prototype/subtract/result-out-of-range.js
-A test/built-ins/Temporal/Instant/prototype/toJSON/year-format.js
-A test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-auto.js
-M test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-invalid-string.js
-M test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-non-integer.js
-A test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-number.js
-M test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-out-of-range.js
+M test/built-ins/Temporal/Instant/prototype/toJSON/basic.js
+M test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-auto.js
+M test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-number.js
 M test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-undefined.js
-M test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/toString/options-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/toString/rounding-cross-midnight.js
-A test/built-ins/Temporal/Instant/prototype/toString/rounding-direction.js
-A test/built-ins/Temporal/Instant/prototype/toString/roundingmode-ceil.js
-A test/built-ins/Temporal/Instant/prototype/toString/roundingmode-floor.js
-A test/built-ins/Temporal/Instant/prototype/toString/roundingmode-halfExpand.js
-M test/built-ins/Temporal/Instant/prototype/toString/roundingmode-invalid-string.js
-A test/built-ins/Temporal/Instant/prototype/toString/roundingmode-trunc.js
-A test/built-ins/Temporal/Instant/prototype/toString/smallestunit-fractionalseconddigits.js
-M test/built-ins/Temporal/Instant/prototype/toString/smallestunit-invalid-string.js
-M test/built-ins/Temporal/Instant/prototype/toString/smallestunit-valid-units.js
-A test/built-ins/Temporal/Instant/prototype/toString/timezone-string-leap-second.js
-A test/built-ins/Temporal/Instant/prototype/toString/timezone-string-year-zero.js
-A test/built-ins/Temporal/Instant/prototype/toString/timezone-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/toString/year-format.js
-A test/built-ins/Temporal/Instant/prototype/toZonedDateTime/calendar-number.js
-A test/built-ins/Temporal/Instant/prototype/toZonedDateTime/calendar-string-leap-second.js
-A test/built-ins/Temporal/Instant/prototype/toZonedDateTime/calendar-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/toZonedDateTime/timezone-string-leap-second.js
-A test/built-ins/Temporal/Instant/prototype/toZonedDateTime/timezone-string-year-zero.js
-A test/built-ins/Temporal/Instant/prototype/toZonedDateTime/timezone-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/timezone-string-leap-second.js
-A test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/timezone-string-year-zero.js
-A test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/timezone-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/until/argument-object-tostring.js
-A test/built-ins/Temporal/Instant/prototype/until/argument-wrong-type.js
-A test/built-ins/Temporal/Instant/prototype/until/instant-string-sub-minute-offset.js
-M test/built-ins/Temporal/Instant/prototype/until/largestunit-invalid-string.js
-A test/built-ins/Temporal/Instant/prototype/until/leap-second.js
-A test/built-ins/Temporal/Instant/prototype/until/options-wrong-type.js
-M test/built-ins/Temporal/Instant/prototype/until/roundingmode-invalid-string.js
-M test/built-ins/Temporal/Instant/prototype/until/smallestunit-invalid-string.js
-M test/built-ins/Temporal/Instant/prototype/until/year-zero.js
-A test/built-ins/Temporal/Now/plainDate/calendar-number.js
-A test/built-ins/Temporal/Now/plainDate/calendar-string-leap-second.js
-A test/built-ins/Temporal/Now/plainDate/calendar-wrong-type.js
-A test/built-ins/Temporal/Now/plainDate/timezone-string-leap-second.js
-A test/built-ins/Temporal/Now/plainDate/timezone-string-year-zero.js
-A test/built-ins/Temporal/Now/plainDate/timezone-wrong-type.js
-A test/built-ins/Temporal/Now/plainDateISO/timezone-string-leap-second.js
-A test/built-ins/Temporal/Now/plainDateISO/timezone-string-year-zero.js
-A test/built-ins/Temporal/Now/plainDateISO/timezone-wrong-type.js
-A test/built-ins/Temporal/Now/plainDateTime/calendar-number.js
-A test/built-ins/Temporal/Now/plainDateTime/calendar-string-leap-second.js
-A test/built-ins/Temporal/Now/plainDateTime/calendar-wrong-type.js
-A test/built-ins/Temporal/Now/plainDateTime/timezone-string-leap-second.js
-A test/built-ins/Temporal/Now/plainDateTime/timezone-string-year-zero.js
-A test/built-ins/Temporal/Now/plainDateTime/timezone-wrong-type.js
-A test/built-ins/Temporal/Now/plainDateTimeISO/timezone-string-leap-second.js
-A test/built-ins/Temporal/Now/plainDateTimeISO/timezone-string-year-zero.js
-A test/built-ins/Temporal/Now/plainDateTimeISO/timezone-wrong-type.js
-A test/built-ins/Temporal/Now/plainTimeISO/timezone-string-leap-second.js
-A test/built-ins/Temporal/Now/plainTimeISO/timezone-string-year-zero.js
-A test/built-ins/Temporal/Now/plainTimeISO/timezone-wrong-type.js
-A test/built-ins/Temporal/Now/zonedDateTime/calendar-number.js
-A test/built-ins/Temporal/Now/zonedDateTime/calendar-string-leap-second.js
-A test/built-ins/Temporal/Now/zonedDateTime/calendar-wrong-type.js
-A test/built-ins/Temporal/Now/zonedDateTime/timezone-string-leap-second.js
-A test/built-ins/Temporal/Now/zonedDateTime/timezone-string-year-zero.js
-A test/built-ins/Temporal/Now/zonedDateTime/timezone-wrong-type.js
-A test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-string-leap-second.js
-A test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-string-year-zero.js
-A test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-wrong-type.js
-A test/built-ins/Temporal/PlainDate/calendar-number.js
-A test/built-ins/Temporal/PlainDate/calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDate/compare/argument-number.js
-A test/built-ins/Temporal/PlainDate/compare/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDate/compare/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDate/compare/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDate/compare/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainDate/compare/argument-string-invalid.js
-A test/built-ins/Temporal/PlainDate/compare/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDate/compare/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainDate/compare/leap-second.js
-M test/built-ins/Temporal/PlainDate/compare/year-zero.js
-M test/built-ins/Temporal/PlainDate/from/argument-number.js
+M test/built-ins/Temporal/Instant/prototype/toStringTag/prop-desc.js
+M test/built-ins/Temporal/Instant/prototype/toZonedDateTime/branding.js
+M test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/branding.js
+A test/built-ins/Temporal/Instant/prototype/until/argument-string-invalid.js
+A test/built-ins/Temporal/Instant/prototype/until/argument-string-time-separators.js
+M test/built-ins/Temporal/Instant/prototype/until/branding.js
+A test/built-ins/Temporal/Instant/prototype/valueOf/basic.js
+A test/built-ins/Temporal/Instant/subclass.js
+A test/built-ins/Temporal/PlainDate/argument-convert.js
+A test/built-ins/Temporal/PlainDate/argument-invalid.js
+M test/built-ins/Temporal/PlainDate/compare/argument-plaindatetime.js
+A test/built-ins/Temporal/PlainDate/compare/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainDate/compare/argument-zoneddatetime-slots.js
+A test/built-ins/Temporal/PlainDate/compare/argument-zoneddatetime.js
+M test/built-ins/Temporal/PlainDate/constructor.js
+R100 test/built-ins/Temporal/PlainDate/from/leap-second.js test/built-ins/Temporal/PlainDate/from/argument-leap-second.js
 M test/built-ins/Temporal/PlainDate/from/argument-plaindate.js
-A test/built-ins/Temporal/PlainDate/from/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDate/from/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDate/from/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDate/from/argument-propertybag-calendar-year-zero.js
-M test/built-ins/Temporal/PlainDate/from/argument-string-invalid.js
-A test/built-ins/Temporal/PlainDate/from/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDate/from/leap-second.js
-A test/built-ins/Temporal/PlainDate/from/observable-get-overflow-argument-string-invalid.js
-R100 test/built-ins/Temporal/PlainDate/from/argument-string-overflow.js test/built-ins/Temporal/PlainDate/from/observable-get-overflow-argument-string.js
-A test/built-ins/Temporal/PlainDate/from/options-wrong-type.js
+A test/built-ins/Temporal/PlainDate/from/argument-propertybag-calendar.js
+A test/built-ins/Temporal/PlainDate/from/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime-slots.js
+A test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime.js
+D test/built-ins/Temporal/PlainDate/from/options-invalid.js
 M test/built-ins/Temporal/PlainDate/from/overflow-invalid-string.js
-M test/built-ins/Temporal/PlainDate/from/year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/add/options-wrong-type.js
-M test/built-ins/Temporal/PlainDate/prototype/add/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainDate/prototype/equals/argument-number.js
-A test/built-ins/Temporal/PlainDate/prototype/equals/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDate/prototype/equals/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDate/prototype/equals/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDate/prototype/equals/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/equals/argument-string-invalid.js
-M test/built-ins/Temporal/PlainDate/prototype/equals/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDate/prototype/equals/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainDate/prototype/equals/leap-second.js
-M test/built-ins/Temporal/PlainDate/prototype/equals/year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/since/argument-number.js
-A test/built-ins/Temporal/PlainDate/prototype/since/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDate/prototype/since/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDate/prototype/since/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDate/prototype/since/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/since/argument-string-invalid.js
-A test/built-ins/Temporal/PlainDate/prototype/since/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDate/prototype/since/calendar-datefromfields-called-with-options-undefined.js
-M test/built-ins/Temporal/PlainDate/prototype/since/largestunit-default.js
-M test/built-ins/Temporal/PlainDate/prototype/since/largestunit-higher-units.js
-M test/built-ins/Temporal/PlainDate/prototype/since/largestunit-invalid-string.js
-A test/built-ins/Temporal/PlainDate/prototype/since/leap-second.js
-A test/built-ins/Temporal/PlainDate/prototype/since/options-wrong-type.js
-M test/built-ins/Temporal/PlainDate/prototype/since/roundingmode-invalid-string.js
-M test/built-ins/Temporal/PlainDate/prototype/since/smallestunit-invalid-string.js
-M test/built-ins/Temporal/PlainDate/prototype/since/year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/subtract/options-wrong-type.js
-M test/built-ins/Temporal/PlainDate/prototype/subtract/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainDate/prototype/toJSON/year-format.js
-A test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-number.js
-M test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-time-designator-required-for-disambiguation.js
-A test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/leap-second.js
-A test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/limits.js
-M test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js
-M test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/toPlainMonthDay/calendar-monthdayfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/calendar-yearmonthfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainDate/prototype/toString/options-wrong-type.js
-A test/built-ins/Temporal/PlainDate/prototype/toString/year-format.js
-A test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-number.js
-M test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-time-designator-required-for-disambiguation.js
-A test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/leap-second.js
-M test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js
-A test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-string-leap-second.js
-A test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-string-year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-wrong-type.js
-M test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/until/argument-number.js
-A test/built-ins/Temporal/PlainDate/prototype/until/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDate/prototype/until/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDate/prototype/until/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDate/prototype/until/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/until/argument-string-invalid.js
-A test/built-ins/Temporal/PlainDate/prototype/until/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDate/prototype/until/calendar-datefromfields-called-with-options-undefined.js
-M test/built-ins/Temporal/PlainDate/prototype/until/largestunit-default.js
-M test/built-ins/Temporal/PlainDate/prototype/until/largestunit-higher-units.js
-M test/built-ins/Temporal/PlainDate/prototype/until/largestunit-invalid-string.js
-A test/built-ins/Temporal/PlainDate/prototype/until/leap-second.js
-A test/built-ins/Temporal/PlainDate/prototype/until/options-wrong-type.js
-M test/built-ins/Temporal/PlainDate/prototype/until/roundingmode-invalid-string.js
-M test/built-ins/Temporal/PlainDate/prototype/until/smallestunit-invalid-string.js
-M test/built-ins/Temporal/PlainDate/prototype/until/year-zero.js
-A test/built-ins/Temporal/PlainDate/prototype/with/options-wrong-type.js
-M test/built-ins/Temporal/PlainDate/prototype/with/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainDate/prototype/withCalendar/calendar-number.js
-A test/built-ins/Temporal/PlainDate/prototype/withCalendar/calendar-string-leap-second.js
-A test/built-ins/Temporal/PlainDate/prototype/withCalendar/calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/calendar-number.js
-A test/built-ins/Temporal/PlainDateTime/calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/compare/argument-number.js
-A test/built-ins/Temporal/PlainDateTime/compare/argument-object-insufficient-data.js
-A test/built-ins/Temporal/PlainDateTime/compare/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDateTime/compare/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDateTime/compare/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/compare/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainDateTime/compare/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/compare/basic.js
-A test/built-ins/Temporal/PlainDateTime/compare/calendar-ignored.js
-A test/built-ins/Temporal/PlainDateTime/compare/cast.js
-A test/built-ins/Temporal/PlainDateTime/compare/leap-second.js
-M test/built-ins/Temporal/PlainDateTime/compare/year-zero.js
-A test/built-ins/Temporal/PlainDateTime/constructor-full.js
-A test/built-ins/Temporal/PlainDateTime/datetime-math.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-number.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-object-month.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-object.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-plaindatetime.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string-comma-decimal-separator.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string-invalid.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string-minus-sign.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string-offset.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string-optional-data.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string-out-of-range.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string-subsecond.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string-time-separators.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string-timezone.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-string.js
-A test/built-ins/Temporal/PlainDateTime/from/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/from/leap-second.js
-A test/built-ins/Temporal/PlainDateTime/from/limits.js
-A test/built-ins/Temporal/PlainDateTime/from/options-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/from/overflow-default-constrain.js
-M test/built-ins/Temporal/PlainDateTime/from/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/from/overflow-reject.js
-M test/built-ins/Temporal/PlainDateTime/from/year-zero.js
-M test/built-ins/Temporal/PlainDateTime/hour-undefined.js
-A test/built-ins/Temporal/PlainDateTime/limits.js
-M test/built-ins/Temporal/PlainDateTime/microsecond-undefined.js
-M test/built-ins/Temporal/PlainDateTime/millisecond-undefined.js
-M test/built-ins/Temporal/PlainDateTime/minute-undefined.js
-M test/built-ins/Temporal/PlainDateTime/nanosecond-undefined.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/ambiguous-date.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/argument-duration.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/argument-object-insufficient-data.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/argument-plain-object-mixed-signs.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/hour-overflow.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/limits.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/negative-duration.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/options-empty.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/options-invalid.js
-A test/built-ins/Temporal/PlainDateTime/prototype/add/options-wrong-type.js
-M test/built-ins/Temporal/PlainDateTime/prototype/add/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/dayOfWeek/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/dayOfYear/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-object-insufficient-data.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-propertybag-calendar-year-zero.js
-M test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/calendar-checked.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/cast.js
-A test/built-ins/Temporal/PlainDateTime/prototype/equals/leap-second.js
-M test/built-ins/Temporal/PlainDateTime/prototype/equals/year-zero.js
-A test/built-ins/Temporal/PlainDateTime/prototype/monthsInYear/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/balance.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/limits.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/options-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/rounding-direction.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-divides.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-does-not-divide.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundingincrement-one-day.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-ceil-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-floor-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-halfexpand-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-halfexpand-is-default.js
-M test/built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundingmode-trunc-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/roundto-invalid-string.js
-D test/built-ins/Temporal/PlainDateTime/prototype/round/smallestunit-disallowed-units.js
-M test/built-ins/Temporal/PlainDateTime/prototype/round/smallestunit-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/throws-argument-object-insufficient-data.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/throws-argument-object.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/throws-no-argument.js
-A test/built-ins/Temporal/PlainDateTime/prototype/round/throws-undefined.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/argument-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/argument-object.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/argument-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/different-calendars-throws.js
-M test/built-ins/Temporal/PlainDateTime/prototype/since/largestunit-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/leap-second.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/no-unnecessary-units.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/options-empty.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/options-invalid.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/options-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/returns-days.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/round-relative-to-receiver.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-cleanly-divides.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/roundingincrement-does-not-divide.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-ceil-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-floor-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-halfexpand-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-halfexpand-default-changes.js
-M test/built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-trunc-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/roundingmode-trunc-is-default.js
-M test/built-ins/Temporal/PlainDateTime/prototype/since/smallestunit-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/subseconds.js
-A test/built-ins/Temporal/PlainDateTime/prototype/since/weeks-months-mutually-exclusive.js
-M test/built-ins/Temporal/PlainDateTime/prototype/since/year-zero.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/ambiguous-date.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/argument-duration.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/argument-object-insufficient-data.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/argument-plain-object-mixed-signs.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/hour-overflow.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/limits.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/negative-duration.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/options-empty.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/options-invalid.js
-A test/built-ins/Temporal/PlainDateTime/prototype/subtract/options-wrong-type.js
-M test/built-ins/Temporal/PlainDateTime/prototype/subtract/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toJSON/year-format.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toPlainMonthDay/calendar-monthdayfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toPlainTime/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toPlainYearMonth/calendar-yearmonthfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/calendarname-always.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/calendarname-auto.js
-M test/built-ins/Temporal/PlainDateTime/prototype/toString/calendarname-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/calendarname-never.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-auto.js
-M test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-invalid-string.js
-M test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-non-integer.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-number.js
-M test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-out-of-range.js
+M test/built-ins/Temporal/PlainDate/prototype/add/branding.js
+A test/built-ins/Temporal/PlainDate/prototype/add/calendar-invalid-return.js
+A test/built-ins/Temporal/PlainDate/prototype/add/custom.js
+D test/built-ins/Temporal/PlainDate/prototype/add/options-invalid.js
+M test/built-ins/Temporal/PlainDate/prototype/add/overflow-constrain.js
+A test/built-ins/Temporal/PlainDate/prototype/constructor.js
+A test/built-ins/Temporal/PlainDate/prototype/dayOfWeek/custom.js
+A test/built-ins/Temporal/PlainDate/prototype/dayOfYear/custom.js
+A test/built-ins/Temporal/PlainDate/prototype/daysInMonth/basic.js
+A test/built-ins/Temporal/PlainDate/prototype/daysInMonth/custom.js
+M test/built-ins/Temporal/PlainDate/prototype/daysInWeek/basic.js
+A test/built-ins/Temporal/PlainDate/prototype/daysInWeek/custom.js
+A test/built-ins/Temporal/PlainDate/prototype/daysInYear/basic.js
+A test/built-ins/Temporal/PlainDate/prototype/daysInYear/custom.js
+R100 test/built-ins/Temporal/PlainDate/prototype/equals/leap-second.js test/built-ins/Temporal/PlainDate/prototype/equals/argument-leap-second.js
+A test/built-ins/Temporal/PlainDate/prototype/equals/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainDate/prototype/equals/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/PlainDate/prototype/equals/argument-zoneddatetime-slots.js
+M test/built-ins/Temporal/PlainDate/prototype/equals/branding.js
+A test/built-ins/Temporal/PlainDate/prototype/getISOFields/custom.js
+A test/built-ins/Temporal/PlainDate/prototype/getISOFields/prototype.js
+A test/built-ins/Temporal/PlainDate/prototype/inLeapYear/basic.js
+A test/built-ins/Temporal/PlainDate/prototype/inLeapYear/custom.js
+A test/built-ins/Temporal/PlainDate/prototype/monthsInYear/custom.js
+R100 test/built-ins/Temporal/PlainDate/prototype/since/leap-second.js test/built-ins/Temporal/PlainDate/prototype/since/argument-leap-second.js
+A test/built-ins/Temporal/PlainDate/prototype/since/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainDate/prototype/since/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/PlainDate/prototype/since/argument-zoneddatetime-slots.js
+M test/built-ins/Temporal/PlainDate/prototype/since/branding.js
+A test/built-ins/Temporal/PlainDate/prototype/since/calendar-invalid-return.js
+A test/built-ins/Temporal/PlainDate/prototype/since/custom.js
+D test/built-ins/Temporal/PlainDate/prototype/since/options-invalid.js
+M test/built-ins/Temporal/PlainDate/prototype/subtract/branding.js
+A test/built-ins/Temporal/PlainDate/prototype/subtract/calendar-invalid-return.js
+A test/built-ins/Temporal/PlainDate/prototype/subtract/custom.js
+D test/built-ins/Temporal/PlainDate/prototype/subtract/options-invalid.js
+M test/built-ins/Temporal/PlainDate/prototype/subtract/overflow-constrain.js
+A test/built-ins/Temporal/PlainDate/prototype/toJSON/basic.js
+A test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-object.js
+A test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/basic.js
+A test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/custom.js
+A test/built-ins/Temporal/PlainDate/prototype/toPlainMonthDay/basic.js
+A test/built-ins/Temporal/PlainDate/prototype/toPlainMonthDay/calendar-invalid-return.js
+A test/built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/basic.js
+A test/built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/calendar-invalid-return.js
+A test/built-ins/Temporal/PlainDate/prototype/toString/calendar-tostring.js
+M test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-always.js
+M test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-auto.js
+M test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-invalid-string.js
+M test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-never.js
+M test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-undefined.js
+A test/built-ins/Temporal/PlainDate/prototype/toStringTag/prop-desc.js
+A test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/branding.js
+A test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/calendar.js
+A test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-getpossibleinstantsfor.js
+R100 test/built-ins/Temporal/PlainDate/prototype/until/leap-second.js test/built-ins/Temporal/PlainDate/prototype/until/argument-leap-second.js
+A test/built-ins/Temporal/PlainDate/prototype/until/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainDate/prototype/until/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/PlainDate/prototype/until/argument-zoneddatetime-slots.js
+M test/built-ins/Temporal/PlainDate/prototype/until/branding.js
+A test/built-ins/Temporal/PlainDate/prototype/until/calendar-invalid-return.js
+A test/built-ins/Temporal/PlainDate/prototype/until/custom.js
+D test/built-ins/Temporal/PlainDate/prototype/until/options-invalid.js
+A test/built-ins/Temporal/PlainDate/prototype/weekOfYear/custom.js
+M test/built-ins/Temporal/PlainDate/prototype/with/branding.js
+A test/built-ins/Temporal/PlainDate/prototype/with/calendar-invalid-return.js
+A test/built-ins/Temporal/PlainDate/prototype/with/custom.js
+D test/built-ins/Temporal/PlainDate/prototype/with/options-invalid.js
+M test/built-ins/Temporal/PlainDate/prototype/with/plaindatelike-invalid.js
+M test/built-ins/Temporal/PlainDate/prototype/withCalendar/basic.js
+M test/built-ins/Temporal/PlainDate/prototype/withCalendar/branding.js
+A test/built-ins/Temporal/PlainDate/subclass.js
+A test/built-ins/Temporal/PlainDateTime/compare/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainDateTime/constructor.js
+M test/built-ins/Temporal/PlainDateTime/from/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainDateTime/prototype/add/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/PlainDateTime/prototype/add/branding.js
+A test/built-ins/Temporal/PlainDateTime/prototype/constructor.js
+A test/built-ins/Temporal/PlainDateTime/prototype/dayOfWeek/custom.js
+A test/built-ins/Temporal/PlainDateTime/prototype/dayOfYear/custom.js
+M test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/basic.js
+A test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/custom.js
+M test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/basic.js
+A test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/custom.js
+M test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/basic.js
+A test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/custom.js
+A test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainDateTime/prototype/equals/branding.js
+A test/built-ins/Temporal/PlainDateTime/prototype/getISOFields/custom.js
+A test/built-ins/Temporal/PlainDateTime/prototype/getISOFields/prototype.js
+A test/built-ins/Temporal/PlainDateTime/prototype/inLeapYear/basic.js
+A test/built-ins/Temporal/PlainDateTime/prototype/inLeapYear/custom.js
+A test/built-ins/Temporal/PlainDateTime/prototype/monthsInYear/custom.js
+M test/built-ins/Temporal/PlainDateTime/prototype/round/branding.js
+A test/built-ins/Temporal/PlainDateTime/prototype/since/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainDateTime/prototype/since/branding.js
+M test/built-ins/Temporal/PlainDateTime/prototype/subtract/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/PlainDateTime/prototype/subtract/branding.js
+A test/built-ins/Temporal/PlainDateTime/prototype/toJSON/basic.js
+M test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-auto.js
+M test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-number.js
 M test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-undefined.js
-M test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/options-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/rounding-cross-midnight.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/rounding-direction.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/roundingmode-ceil.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/roundingmode-floor.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/roundingmode-halfExpand.js
-M test/built-ins/Temporal/PlainDateTime/prototype/toString/roundingmode-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/roundingmode-trunc.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/smallestunit-fractionalseconddigits.js
-M test/built-ins/Temporal/PlainDateTime/prototype/toString/smallestunit-invalid-string.js
-M test/built-ins/Temporal/PlainDateTime/prototype/toString/smallestunit-valid-units.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toString/year-format.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/basic.js
-M test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/disambiguation-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/invalid-instant.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/multiple-instants.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/options-object.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/options-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/timezone-string-leap-second.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/timezone-string-year-zero.js
-A test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/timezone-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/argument-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/argument-object.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/argument-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/argument-wrong-type.js
-M test/built-ins/Temporal/PlainDateTime/prototype/until/balance-negative-duration.js
-M test/built-ins/Temporal/PlainDateTime/prototype/until/balance.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/casts-argument.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/different-calendars-throws.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/inverse.js
-M test/built-ins/Temporal/PlainDateTime/prototype/until/largestunit-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/leap-second.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/no-unnecessary-units.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/options-empty.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/options-invalid.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/options-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/returns-days.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/round-relative-to-receiver.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-cleanly-divides.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/roundingincrement-does-not-divide.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-ceil-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-floor-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-halfexpand-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-halfexpand-default-changes.js
-M test/built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-trunc-basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/roundingmode-trunc-is-default.js
-M test/built-ins/Temporal/PlainDateTime/prototype/until/smallestunit-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/subseconds.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/units-changed.js
-A test/built-ins/Temporal/PlainDateTime/prototype/until/weeks-months-mutually-exclusive.js
-M test/built-ins/Temporal/PlainDateTime/prototype/until/year-zero.js
-A test/built-ins/Temporal/PlainDateTime/prototype/valueOf/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/argument-not-object.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/argument-object-insufficient-data.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/calendar-options.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/calendar-temporal-object-throws.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/calendar-throws.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/month-and-monthcode-must-agree.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/multiple-unrecognized-properties-ignored.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/options-empty.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/options-invalid.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/options-wrong-type.js
-M test/built-ins/Temporal/PlainDateTime/prototype/with/order-of-operations.js
-M test/built-ins/Temporal/PlainDateTime/prototype/with/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/string-throws.js
-A test/built-ins/Temporal/PlainDateTime/prototype/with/timezone-throws.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/argument-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/basic.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-string-leap-second.js
-M test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-temporal-object.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-object-insufficient-data.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-object.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-invalid.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-iso-calendar.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/leap-second.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/non-compatible-calendars-throw.js
-M test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/year-zero.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-number.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-object-insufficient-data.js
-M test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-designator-required-for-disambiguation.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-without-time-designator.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-time.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-wrong-type.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/leap-second.js
-A test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/no-argument-default-to-midnight.js
-M test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js
-M test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/year-zero.js
-M test/built-ins/Temporal/PlainDateTime/second-undefined.js
-A test/built-ins/Temporal/PlainMonthDay/calendar-always.js
-A test/built-ins/Temporal/PlainMonthDay/calendar-number.js
-A test/built-ins/Temporal/PlainMonthDay/calendar-wrong-type.js
-A test/built-ins/Temporal/PlainMonthDay/from/argument-number.js
-A test/built-ins/Temporal/PlainMonthDay/from/argument-plainmonthday.js
-A test/built-ins/Temporal/PlainMonthDay/from/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainMonthDay/from/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainMonthDay/from/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainMonthDay/from/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainMonthDay/from/argument-wrong-type.js
-A test/built-ins/Temporal/PlainMonthDay/from/calendar-monthdayfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainMonthDay/from/leap-second.js
-A test/built-ins/Temporal/PlainMonthDay/from/options-wrong-type.js
-M test/built-ins/Temporal/PlainMonthDay/from/overflow-invalid-string.js
-M test/built-ins/Temporal/PlainMonthDay/from/year-zero.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-number.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-propertybag-calendar-year-zero.js
-M test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-wrong-type.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/equals/calendar-monthdayfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/equals/leap-second.js
-M test/built-ins/Temporal/PlainMonthDay/prototype/equals/year-zero.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/toJSON/year-format.js
-M test/built-ins/Temporal/PlainMonthDay/prototype/toString/calendarname-always.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/toString/options-wrong-type.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/toString/year-format.js
-A test/built-ins/Temporal/PlainMonthDay/prototype/with/options-wrong-type.js
-M test/built-ins/Temporal/PlainMonthDay/prototype/with/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainTime/compare/argument-number.js
-M test/built-ins/Temporal/PlainTime/compare/argument-string-time-designator-required-for-disambiguation.js
-A test/built-ins/Temporal/PlainTime/compare/argument-wrong-type.js
-A test/built-ins/Temporal/PlainTime/compare/leap-second.js
-M test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js
-M test/built-ins/Temporal/PlainTime/compare/year-zero.js
-A test/built-ins/Temporal/PlainTime/from/argument-number.js
-A test/built-ins/Temporal/PlainTime/from/argument-object-leap-second.js
-A test/built-ins/Temporal/PlainTime/from/argument-object.js
-M test/built-ins/Temporal/PlainTime/from/argument-plaintime.js
-A test/built-ins/Temporal/PlainTime/from/argument-string-leap-second.js
-M test/built-ins/Temporal/PlainTime/from/argument-string-time-designator-required-for-disambiguation.js
-A test/built-ins/Temporal/PlainTime/from/argument-wrong-type.js
-A test/built-ins/Temporal/PlainTime/from/leap-second.js
-R100 test/built-ins/Temporal/PlainTime/from/argument-string-invalid.js test/built-ins/Temporal/PlainTime/from/observable-get-overflow-argument-string-invalid.js
-A test/built-ins/Temporal/PlainTime/from/options-wrong-type.js
-A test/built-ins/Temporal/PlainTime/from/overflow-constrain.js
-M test/built-ins/Temporal/PlainTime/from/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainTime/from/overflow-reject.js
-M test/built-ins/Temporal/PlainTime/from/year-zero.js
-A test/built-ins/Temporal/PlainTime/negative-zero.js
-A test/built-ins/Temporal/PlainTime/prototype/add/argument-duration.js
-A test/built-ins/Temporal/PlainTime/prototype/add/argument-higher-units.js
-A test/built-ins/Temporal/PlainTime/prototype/add/argument-object.js
-A test/built-ins/Temporal/PlainTime/prototype/equals/argument-number.js
-M test/built-ins/Temporal/PlainTime/prototype/equals/argument-string-time-designator-required-for-disambiguation.js
-M test/built-ins/Temporal/PlainTime/prototype/equals/argument-wrong-type.js
-A test/built-ins/Temporal/PlainTime/prototype/equals/leap-second.js
-M test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js
-M test/built-ins/Temporal/PlainTime/prototype/equals/year-zero.js
-A test/built-ins/Temporal/PlainTime/prototype/round/options-wrong-type.js
-A test/built-ins/Temporal/PlainTime/prototype/round/rounding-cross-midnight.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingincrement-hours.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingincrement-invalid.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingincrement-microseconds.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingincrement-milliseconds.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingincrement-minutes.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingincrement-nanoseconds.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingincrement-seconds.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingmode-ceil.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingmode-floor.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingmode-halfExpand.js
-M test/built-ins/Temporal/PlainTime/prototype/round/roundingmode-invalid-string.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundingmode-trunc.js
-M test/built-ins/Temporal/PlainTime/prototype/round/roundingmode-undefined.js
-A test/built-ins/Temporal/PlainTime/prototype/round/roundto-invalid-string.js
-D test/built-ins/Temporal/PlainTime/prototype/round/smallestunit-disallowed-units.js
-M test/built-ins/Temporal/PlainTime/prototype/round/smallestunit-invalid-string.js
-A test/built-ins/Temporal/PlainTime/prototype/round/smallestunit-missing.js
-A test/built-ins/Temporal/PlainTime/prototype/since/argument-cast.js
-A test/built-ins/Temporal/PlainTime/prototype/since/argument-number.js
-M test/built-ins/Temporal/PlainTime/prototype/since/argument-string-time-designator-required-for-disambiguation.js
-A test/built-ins/Temporal/PlainTime/prototype/since/argument-wrong-type.js
-A test/built-ins/Temporal/PlainTime/prototype/since/basic.js
-M test/built-ins/Temporal/PlainTime/prototype/since/largestunit-invalid-string.js
-M test/built-ins/Temporal/PlainTime/prototype/since/largestunit.js
-A test/built-ins/Temporal/PlainTime/prototype/since/leap-second.js
-A test/built-ins/Temporal/PlainTime/prototype/since/options-wrong-type.js
-M test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js
-A test/built-ins/Temporal/PlainTime/prototype/since/result-sub-second.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingincrement-hours.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingincrement-invalid.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingincrement-microseconds.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingincrement-milliseconds.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingincrement-minutes.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingincrement-nanoseconds.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingincrement-seconds.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingmode-ceil.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingmode-floor.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingmode-halfExpand.js
-M test/built-ins/Temporal/PlainTime/prototype/since/roundingmode-invalid-string.js
-A test/built-ins/Temporal/PlainTime/prototype/since/roundingmode-trunc.js
-M test/built-ins/Temporal/PlainTime/prototype/since/roundingmode-undefined.js
-M test/built-ins/Temporal/PlainTime/prototype/since/smallestunit-invalid-string.js
-M test/built-ins/Temporal/PlainTime/prototype/since/year-zero.js
-A test/built-ins/Temporal/PlainTime/prototype/subtract/argument-duration.js
-A test/built-ins/Temporal/PlainTime/prototype/subtract/argument-higher-units.js
-A test/built-ins/Temporal/PlainTime/prototype/subtract/argument-object.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-number.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-string-invalid.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-wrong-type.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/leap-second.js
-A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/limits.js
-M test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/year-zero.js
+A test/built-ins/Temporal/PlainDateTime/prototype/toStringTag/prop-desc.js
+M test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/branding.js
+A test/built-ins/Temporal/PlainDateTime/prototype/until/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainDateTime/prototype/until/branding.js
+A test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/custom.js
+M test/built-ins/Temporal/PlainDateTime/prototype/with/branding.js
+M test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/branding.js
+R100 test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/leap-second.js test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-leap-second.js
+M test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso.js
+M test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id.js
+M test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object.js
+M test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
+M test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-iso-calendar.js
+A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-slots.js
+M test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/branding.js
+A test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainDateTime/subclass.js
+M test/built-ins/Temporal/PlainMonthDay/constructor.js
+A test/built-ins/Temporal/PlainMonthDay/from/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainMonthDay/prototype/constructor.js
+A test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainMonthDay/prototype/equals/branding.js
+A test/built-ins/Temporal/PlainMonthDay/prototype/getISOFields/custom.js
+A test/built-ins/Temporal/PlainMonthDay/prototype/getISOFields/prototype.js
+M test/built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/branding.js
+A test/built-ins/Temporal/PlainMonthDay/prototype/toStringTag/prop-desc.js
+M test/built-ins/Temporal/PlainMonthDay/prototype/with/branding.js
+A test/built-ins/Temporal/PlainMonthDay/subclass.js
+A test/built-ins/Temporal/PlainTime/compare/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainTime/constructor.js
+A test/built-ins/Temporal/PlainTime/from/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainTime/prototype/add/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/PlainTime/prototype/add/branding.js
+A test/built-ins/Temporal/PlainTime/prototype/calendar/basic.js
+A test/built-ins/Temporal/PlainTime/prototype/constructor.js
+A test/built-ins/Temporal/PlainTime/prototype/equals/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainTime/prototype/equals/branding.js
+A test/built-ins/Temporal/PlainTime/prototype/getISOFields/custom.js
+A test/built-ins/Temporal/PlainTime/prototype/getISOFields/prototype.js
+M test/built-ins/Temporal/PlainTime/prototype/round/branding.js
+A test/built-ins/Temporal/PlainTime/prototype/since/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainTime/prototype/since/branding.js
+M test/built-ins/Temporal/PlainTime/prototype/subtract/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/PlainTime/prototype/subtract/branding.js
+A test/built-ins/Temporal/PlainTime/prototype/toJSON/basic.js
+R100 test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/leap-second.js test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-leap-second.js
+A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-slots.js
+M test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/branding.js
 M test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-auto.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-invalid-string.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-non-integer.js
 M test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-number.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-out-of-range.js
 M test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-undefined.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-wrong-type.js
-A test/built-ins/Temporal/PlainTime/prototype/toString/options-wrong-type.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/rounding-cross-midnight.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/roundingmode-ceil.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/roundingmode-floor.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/roundingmode-halfExpand.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/roundingmode-invalid-string.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/roundingmode-trunc.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/smallestunit-fractionalseconddigits.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/smallestunit-invalid-string.js
-M test/built-ins/Temporal/PlainTime/prototype/toString/smallestunit-valid-units.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-number.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-string-invalid.js
-M test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-string-with-utc-designator.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-wrong-type.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/leap-second.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-string-leap-second.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-string-year-zero.js
-A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-wrong-type.js
-M test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/year-zero.js
-A test/built-ins/Temporal/PlainTime/prototype/until/argument-cast.js
-A test/built-ins/Temporal/PlainTime/prototype/until/argument-number.js
-M test/built-ins/Temporal/PlainTime/prototype/until/argument-string-time-designator-required-for-disambiguation.js
-A test/built-ins/Temporal/PlainTime/prototype/until/argument-wrong-type.js
-A test/built-ins/Temporal/PlainTime/prototype/until/basic.js
-M test/built-ins/Temporal/PlainTime/prototype/until/largestunit-invalid-string.js
-A test/built-ins/Temporal/PlainTime/prototype/until/largestunit.js
-A test/built-ins/Temporal/PlainTime/prototype/until/leap-second.js
-A test/built-ins/Temporal/PlainTime/prototype/until/options-wrong-type.js
-M test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js
-A test/built-ins/Temporal/PlainTime/prototype/until/result-sub-second.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingincrement-hours.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingincrement-invalid.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingincrement-microseconds.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingincrement-milliseconds.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingincrement-minutes.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingincrement-nanoseconds.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingincrement-seconds.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingmode-ceil.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingmode-floor.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingmode-halfExpand.js
-M test/built-ins/Temporal/PlainTime/prototype/until/roundingmode-invalid-string.js
-A test/built-ins/Temporal/PlainTime/prototype/until/roundingmode-trunc.js
-M test/built-ins/Temporal/PlainTime/prototype/until/roundingmode-undefined.js
-M test/built-ins/Temporal/PlainTime/prototype/until/smallestunit-invalid-string.js
-M test/built-ins/Temporal/PlainTime/prototype/until/year-zero.js
-A test/built-ins/Temporal/PlainTime/prototype/with/options-wrong-type.js
+A test/built-ins/Temporal/PlainTime/prototype/toStringTag/prop-desc.js
+R100 test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/leap-second.js test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-leap-second.js
+A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-missing-properties.js
+A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-slots.js
+M test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/branding.js
+A test/built-ins/Temporal/PlainTime/prototype/until/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainTime/prototype/until/branding.js
+M test/built-ins/Temporal/PlainTime/prototype/with/branding.js
 M test/built-ins/Temporal/PlainTime/prototype/with/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainYearMonth/calendar-always.js
-A test/built-ins/Temporal/PlainYearMonth/calendar-number.js
-A test/built-ins/Temporal/PlainYearMonth/calendar-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/compare/argument-number.js
-A test/built-ins/Temporal/PlainYearMonth/compare/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainYearMonth/compare/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/compare/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainYearMonth/compare/argument-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/compare/calendar-yearmonthfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainYearMonth/compare/leap-second.js
-M test/built-ins/Temporal/PlainYearMonth/compare/year-zero.js
-M test/built-ins/Temporal/PlainYearMonth/from/argument-number.js
-M test/built-ins/Temporal/PlainYearMonth/from/argument-plainyearmonth.js
-A test/built-ins/Temporal/PlainYearMonth/from/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainYearMonth/from/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainYearMonth/from/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/from/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainYearMonth/from/argument-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/from/calendar-yearmonthfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainYearMonth/from/leap-second.js
-A test/built-ins/Temporal/PlainYearMonth/from/options-wrong-type.js
-M test/built-ins/Temporal/PlainYearMonth/from/overflow-invalid-string.js
-M test/built-ins/Temporal/PlainYearMonth/from/year-zero.js
-M test/built-ins/Temporal/PlainYearMonth/limits.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/add/calendar-datefromfields-called.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/add/options-wrong-type.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/add/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-number.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-propertybag-calendar-year-zero.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/equals/calendar-yearmonthfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/equals/leap-second.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/equals/year-zero.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-number.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/calendar-yearmonthfromfields-called-with-options-undefined.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/since/largestunit-invalid-string.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/leap-second.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/since/options-wrong-type.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/since/roundingmode-invalid-string.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/since/smallestunit-invalid-string.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/since/year-zero.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/subtract/calendar-datefromfields-called.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/subtract/options-wrong-type.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/subtract/overflow-invalid-string.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/toJSON/year-format.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/toString/calendarname-always.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/toString/options-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/toString/year-format.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-number.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-wrong-type.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/calendar-yearmonthfromfields-called-with-options-undefined.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/until/largestunit-invalid-string.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/leap-second.js
-A test/built-ins/Temporal/PlainYearMonth/prototype/until/options-wrong-type.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/until/roundingmode-invalid-string.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/until/smallestunit-invalid-string.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/until/year-zero.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/with/options-wrong-type.js
-M test/built-ins/Temporal/PlainYearMonth/prototype/with/overflow-invalid-string.js
-A test/built-ins/Temporal/TimeZone/from/timezone-string-leap-second.js
-A test/built-ins/Temporal/TimeZone/from/timezone-string-year-zero.js
-A test/built-ins/Temporal/TimeZone/from/timezone-wrong-type.js
-A test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-number.js
-A test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-wrong-type.js
-A test/built-ins/Temporal/TimeZone/prototype/getInstantFor/leap-second.js
-A test/built-ins/Temporal/TimeZone/prototype/getInstantFor/options-wrong-type.js
-M test/built-ins/Temporal/TimeZone/prototype/getInstantFor/year-zero.js
-A test/built-ins/Temporal/TimeZone/prototype/getNextTransition/leap-second.js
-M test/built-ins/Temporal/TimeZone/prototype/getNextTransition/year-zero.js
-A test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/leap-second.js
-M test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/year-zero.js
-A test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/leap-second.js
-M test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/year-zero.js
-A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-object-tostring.js
-A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-wrong-type.js
-A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/calendar-number.js
-A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/calendar-string-leap-second.js
-A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/calendar-wrong-type.js
-A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/instant-string-sub-minute-offset.js
-A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/leap-second.js
-A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/limits.js
-M test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/year-zero.js
-A test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-number.js
-A test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-wrong-type.js
-A test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/leap-second.js
-M test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/year-zero.js
-A test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/leap-second.js
-M test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/calendar-number.js
-A test/built-ins/Temporal/ZonedDateTime/calendar-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/compare/argument-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/compare/leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/compare/timezone-string-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/compare/timezone-string-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/compare/timezone-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/compare/year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/from/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/from/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/ZonedDateTime/from/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/from/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/from/argument-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/from/argument-zoneddatetime.js
-A test/built-ins/Temporal/ZonedDateTime/from/leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/from/options-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/from/overflow-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/from/timezone-string-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/from/timezone-string-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/from/timezone-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/from/year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/add/options-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/add/overflow-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/equals/leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/equals/timezone-string-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/equals/timezone-string-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/equals/timezone-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/equals/year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/round/options-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/round/rounding-direction.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/round/roundingmode-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/round/roundto-invalid-string.js
-D test/built-ins/Temporal/ZonedDateTime/prototype/round/smallestunit-disallowed-units.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/round/smallestunit-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/calendar-dateadd-called-with-options-undefined.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/since/largestunit-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/options-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/since/roundingmode-invalid-string.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/since/smallestunit-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/timezone-string-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/timezone-string-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/since/timezone-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/since/year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/subtract/options-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/subtract/overflow-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/year-format.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toPlainMonthDay/calendar-monthdayfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toPlainYearMonth/calendar-yearmonthfromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-auto.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-invalid-string.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-non-integer.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-number.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-out-of-range.js
+A test/built-ins/Temporal/PlainTime/subclass.js
+A test/built-ins/Temporal/PlainYearMonth/compare/argument-string-time-separators.js
+A test/built-ins/Temporal/PlainYearMonth/from/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/add/branding.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/add/calendar-datefromfields-called.js
+A test/built-ins/Temporal/PlainYearMonth/prototype/constructor.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/daysInMonth/basic.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/daysInYear/basic.js
+A test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/equals/branding.js
+A test/built-ins/Temporal/PlainYearMonth/prototype/getISOFields/custom.js
+A test/built-ins/Temporal/PlainYearMonth/prototype/getISOFields/prototype.js
+A test/built-ins/Temporal/PlainYearMonth/prototype/inLeapYear/basic.js
+A test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/since/branding.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/subtract/branding.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/subtract/calendar-datefromfields-called.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/toPlainDate/branding.js
+A test/built-ins/Temporal/PlainYearMonth/prototype/toStringTag/prop-desc.js
+A test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-string-time-separators.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/until/branding.js
+M test/built-ins/Temporal/PlainYearMonth/prototype/with/branding.js
+A test/built-ins/Temporal/PlainYearMonth/subclass.js
+M test/built-ins/Temporal/TimeZone/constructor.js
+A test/built-ins/Temporal/TimeZone/prototype/constructor.js
+A test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-string-time-separators.js
+M test/built-ins/Temporal/TimeZone/prototype/getInstantFor/branding.js
+A test/built-ins/Temporal/TimeZone/prototype/getNextTransition/argument-string-invalid.js
+A test/built-ins/Temporal/TimeZone/prototype/getNextTransition/argument-string-time-separators.js
+M test/built-ins/Temporal/TimeZone/prototype/getNextTransition/branding.js
+A test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/argument-string-invalid.js
+A test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/argument-string-time-separators.js
+M test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/branding.js
+A test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/argument-string-invalid.js
+A test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/argument-string-time-separators.js
+M test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/branding.js
+A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-string-invalid.js
+A test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-string-time-separators.js
+M test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/branding.js
+A test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-string-time-separators.js
+M test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/branding.js
+A test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/argument-string-invalid.js
+A test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/argument-string-time-separators.js
+M test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/branding.js
+A test/built-ins/Temporal/TimeZone/prototype/toStringTag/prop-desc.js
+A test/built-ins/Temporal/TimeZone/subclass.js
+A test/built-ins/Temporal/ZonedDateTime/compare/argument-string-time-separators.js
+M test/built-ins/Temporal/ZonedDateTime/constructor.js
+A test/built-ins/Temporal/ZonedDateTime/from/argument-string-time-separators.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/add/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/add/branding.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/constructor.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/daysInYear/basic.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-string-time-separators.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/equals/branding.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/custom.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/prototype.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/inLeapYear/basic.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/round/branding.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-string-time-separators.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/since/branding.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/subtract/argument-string-negative-fractional-units.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/subtract/branding.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/basic.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-auto.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-number.js
 M test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-undefined.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/options-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/rounding-cross-midnight.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/rounding-direction.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/roundingmode-ceil.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/roundingmode-floor.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/roundingmode-halfExpand.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/toString/roundingmode-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/roundingmode-trunc.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/smallestunit-fractionalseconddigits.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/toString/smallestunit-invalid-string.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/toString/smallestunit-valid-units.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/toString/year-format.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/calendar-dateadd-called-with-options-undefined.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/until/largestunit-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/options-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/until/roundingmode-invalid-string.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/until/smallestunit-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/timezone-string-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/timezone-string-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/until/timezone-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/until/year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/with/options-wrong-type.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/with/overflow-invalid-string.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/calendar-number.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/calendar-string-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/calendar-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-number.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-propertybag-calendar-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-propertybag-calendar-number.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-propertybag-calendar-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-propertybag-calendar-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-string-invalid.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/calendar-datefromfields-called-with-options-undefined.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/leap-second.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-number.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-time-designator-required-for-disambiguation.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/leap-second.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js
-M test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/timezone-string-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/timezone-string-year-zero.js
-A test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/timezone-wrong-type.js
-A test/built-ins/Temporal/ZonedDateTime/timezone-string-leap-second.js
-A test/built-ins/Temporal/ZonedDateTime/timezone-string-multiple-offsets.js
-A test/built-ins/Temporal/ZonedDateTime/timezone-wrong-type.js
-D test/built-ins/TypedArray/prototype/set/BigInt/array-arg-targetbuffer-detached-on-get-src-value-throws.js
-A test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-no-throw.js
-D test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-throws.js
-D test/built-ins/TypedArray/prototype/sort/BigInt/detached-buffer-comparefn.js
-D test/built-ins/TypedArray/prototype/sort/detached-buffer-comparefn-coerce.js
-D test/built-ins/TypedArray/prototype/sort/detached-buffer-comparefn.js
-M test/built-ins/TypedArray/prototype/sort/sort-tonumber.js
-A test/built-ins/TypedArrayConstructors/ctors/no-species.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/detached-when-species-retrieved-different-type.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/detached-when-species-retrieved-same-type.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-access-throws.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-custom-species.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-not-object-throws.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-access-throws.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-not-ctor-throws.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-null.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-prototype-throws.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-undefined.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-different-type.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-same-type.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-access-throws.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-custom.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-not-ctor.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-prototype-throws.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-throws.js
-D test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-value-not-obj-throws.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/detached-when-species-retrieved-different-type.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/detached-when-species-retrieved-same-type.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/other-ctor-buffer-ctor-access-throws.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/other-ctor-buffer-ctor-custom-species.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/other-ctor-buffer-ctor-not-object-throws.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/other-ctor-buffer-ctor-species-access-throws.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/other-ctor-buffer-ctor-species-not-ctor-throws.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/other-ctor-buffer-ctor-species-prototype-throws.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/same-ctor-buffer-ctor-access-throws.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/same-ctor-buffer-ctor-species-custom.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/same-ctor-buffer-ctor-species-not-ctor.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/same-ctor-buffer-ctor-species-prototype-throws.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/same-ctor-buffer-ctor-species-throws.js
-D test/built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/same-ctor-buffer-ctor-value-not-obj-throws.js
-M test/built-ins/parseInt/15.1.2.2-2-1.js
-A test/harness/temporalHelpers-one-shift-time-zone.js
-A test/intl402/DurationFormat/constructor-locales-invalid.js
-A test/intl402/DurationFormat/constructor-locales-valid.js
-A test/intl402/DurationFormat/constructor-options-defaults.js
-A test/intl402/DurationFormat/constructor-options-fractionalDigits-invalid.js
-A test/intl402/DurationFormat/constructor-options-fractionalDigits-valid.js
-A test/intl402/DurationFormat/constructor-options-invalid.js
-A test/intl402/DurationFormat/constructor-options-localeMatcher-invalid.js
-A test/intl402/DurationFormat/constructor-options-localeMatcher-valid.js
-A test/intl402/DurationFormat/constructor-options-numberingSystem-invalid.js
-A test/intl402/DurationFormat/constructor-options-numberingSystem-valid.js
-A test/intl402/DurationFormat/constructor-options-order.js
-A test/intl402/DurationFormat/constructor-options-style-invalid.js
-A test/intl402/DurationFormat/constructor-options-style-valid.js
-R100 test/intl402/DurationFormat/instance/extensibility.js test/intl402/DurationFormat/extensibility.js
-R100 test/intl402/DurationFormat/instance/length.js test/intl402/DurationFormat/length.js
-R100 test/intl402/DurationFormat/instance/name.js test/intl402/DurationFormat/name.js
-A test/intl402/DurationFormat/newtarget-undefined.js
-R100 test/intl402/DurationFormat/instance/prop-desc.js test/intl402/DurationFormat/prop-desc.js
-R100 test/intl402/DurationFormat/instance/prototype.js test/intl402/DurationFormat/prototype.js
-A test/intl402/DurationFormat/supportedLocalesOf/basic.js
-A test/intl402/DurationFormat/supportedLocalesOf/branding.js
-A test/intl402/DurationFormat/supportedLocalesOf/length.js
-A test/intl402/DurationFormat/supportedLocalesOf/locales-empty.js
-A test/intl402/DurationFormat/supportedLocalesOf/locales-invalid.js
-A test/intl402/DurationFormat/supportedLocalesOf/locales-specific.js
-A test/intl402/DurationFormat/supportedLocalesOf/name.js
-A test/intl402/DurationFormat/supportedLocalesOf/prop-desc.js
-A test/intl402/Intl/DateTimeFormat/prototype/formatRange/fails-on-distinct-temporal-types.js
-A test/intl402/Intl/DateTimeFormat/prototype/formatRangeToParts/fails-on-distinct-temporal-types.js
-M test/intl402/NumberFormat/constructor-roundingIncrement-invalid.js
-M test/intl402/NumberFormat/constructor-roundingIncrement.js
-A test/intl402/NumberFormat/prototype/format/format-max-min-fraction-significant-digits.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-10.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-100.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-1000.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-2.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-20.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-200.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-2000.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-25.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-250.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-2500.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-5.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-50.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-500.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-increment-5000.js
-M test/intl402/NumberFormat/prototype/format/format-rounding-priority-more-precision.js
-M test/intl402/NumberFormat/prototype/formatRange/x-greater-than-y-throws.js
-M test/intl402/NumberFormat/prototype/formatRangeToParts/x-greater-than-y-throws.js
-A test/intl402/Temporal/Calendar/prototype/era/argument-number.js
-A test/intl402/Temporal/Calendar/prototype/era/argument-propertybag-calendar-leap-second.js
-A test/intl402/Temporal/Calendar/prototype/era/argument-propertybag-calendar-number.js
-A test/intl402/Temporal/Calendar/prototype/era/argument-propertybag-calendar-wrong-type.js
-A test/intl402/Temporal/Calendar/prototype/era/argument-propertybag-calendar-year-zero.js
-A test/intl402/Temporal/Calendar/prototype/era/argument-string-invalid.js
-A test/intl402/Temporal/Calendar/prototype/era/argument-wrong-type.js
-A test/intl402/Temporal/Calendar/prototype/era/calendar-datefromfields-called-with-options-undefined.js
-A test/intl402/Temporal/Calendar/prototype/era/leap-second.js
-M test/intl402/Temporal/Calendar/prototype/era/year-zero.js
-A test/intl402/Temporal/Calendar/prototype/eraYear/argument-number.js
-A test/intl402/Temporal/Calendar/prototype/eraYear/argument-propertybag-calendar-leap-second.js
-A test/intl402/Temporal/Calendar/prototype/eraYear/argument-propertybag-calendar-number.js
-A test/intl402/Temporal/Calendar/prototype/eraYear/argument-propertybag-calendar-wrong-type.js
-A test/intl402/Temporal/Calendar/prototype/eraYear/argument-propertybag-calendar-year-zero.js
-A test/intl402/Temporal/Calendar/prototype/eraYear/argument-string-invalid.js
-A test/intl402/Temporal/Calendar/prototype/eraYear/argument-wrong-type.js
-A test/intl402/Temporal/Calendar/prototype/eraYear/calendar-datefromfields-called-with-options-undefined.js
-A test/intl402/Temporal/Calendar/prototype/eraYear/leap-second.js
-M test/intl402/Temporal/Calendar/prototype/eraYear/year-zero.js
-A test/intl402/Temporal/Duration/compare/relativeto-hour.js
-A test/intl402/Temporal/Instant/prototype/toString/timezone-offset.js
-A test/intl402/Temporal/PlainDateTime/prototype/toString/calendarname-always.js
-A test/intl402/Temporal/PlainDateTime/prototype/toString/calendarname-auto.js
-A test/intl402/Temporal/PlainDateTime/prototype/toString/calendarname-never.js
-A test/intl402/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso.js
-A test/intl402/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id.js
-A test/intl402/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object.js
-A test/intl402/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
-A test/intl402/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-calendar.js
-A test/intl402/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-iso-calendar.js
-A test/intl402/Temporal/TimeZone/etc-timezone.js
-R074 test/language/expressions/compound-assignment/left-hand-side-private-reference-accessor-property-and.js test/language/expressions/logical-assignment/left-hand-side-private-reference-accessor-property-and.js
-R075 test/language/expressions/compound-assignment/left-hand-side-private-reference-accessor-property-nullish.js test/language/expressions/logical-assignment/left-hand-side-private-reference-accessor-property-nullish.js
-R075 test/language/expressions/compound-assignment/left-hand-side-private-reference-accessor-property-or.js test/language/expressions/logical-assignment/left-hand-side-private-reference-accessor-property-or.js
-A test/language/expressions/logical-assignment/left-hand-side-private-reference-accessor-property-short-circuit-and.js
-A test/language/expressions/logical-assignment/left-hand-side-private-reference-accessor-property-short-circuit-nullish.js
-A test/language/expressions/logical-assignment/left-hand-side-private-reference-accessor-property-short-circuit-or.js
-R073 test/language/expressions/compound-assignment/left-hand-side-private-reference-data-property-and.js test/language/expressions/logical-assignment/left-hand-side-private-reference-data-property-and.js
-R073 test/language/expressions/compound-assignment/left-hand-side-private-reference-data-property-nullish.js test/language/expressions/logical-assignment/left-hand-side-private-reference-data-property-nullish.js
-R073 test/language/expressions/compound-assignment/left-hand-side-private-reference-data-property-or.js test/language/expressions/logical-assignment/left-hand-side-private-reference-data-property-or.js
-A test/language/expressions/logical-assignment/left-hand-side-private-reference-data-property-short-circuit-and.js
-A test/language/expressions/logical-assignment/left-hand-side-private-reference-data-property-short-circuit-nullish.js
-A test/language/expressions/logical-assignment/left-hand-side-private-reference-data-property-short-circuit-or.js
-R072 test/language/expressions/compound-assignment/left-hand-side-private-reference-method-and.js test/language/expressions/logical-assignment/left-hand-side-private-reference-method-and.js
-R056 test/language/expressions/compound-assignment/left-hand-side-private-reference-method-nullish.js test/language/expressions/logical-assignment/left-hand-side-private-reference-method-short-circuit-nullish.js
-R055 test/language/expressions/compound-assignment/left-hand-side-private-reference-method-or.js test/language/expressions/logical-assignment/left-hand-side-private-reference-method-short-circuit-or.js
-R069 test/language/expressions/compound-assignment/left-hand-side-private-reference-readonly-accessor-property-and.js test/language/expressions/logical-assignment/left-hand-side-private-reference-readonly-accessor-property-and.js
-R071 test/language/expressions/compound-assignment/left-hand-side-private-reference-readonly-accessor-property-nullish.js test/language/expressions/logical-assignment/left-hand-side-private-reference-readonly-accessor-property-nullish.js
-R069 test/language/expressions/compound-assignment/left-hand-side-private-reference-readonly-accessor-property-or.js test/language/expressions/logical-assignment/left-hand-side-private-reference-readonly-accessor-property-or.js
-A test/language/expressions/logical-assignment/left-hand-side-private-reference-readonly-accessor-property-short-circuit-and.js
-A test/language/expressions/logical-assignment/left-hand-side-private-reference-readonly-accessor-property-short-circuit-nullish.js
-A test/language/expressions/logical-assignment/left-hand-side-private-reference-readonly-accessor-property-short-circuit-or.js
-M test/language/expressions/unary-plus/S11.4.6_A3_T3.js
-M test/language/statements/for-in/S12.6.4_A7_T2.js
\ No newline at end of file
+A test/built-ins/Temporal/ZonedDateTime/prototype/toStringTag/prop-desc.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-string-time-separators.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/until/branding.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/valueOf/basic.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/with/branding.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/branding.js
+R100 test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/leap-second.js test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-leap-second.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-string-time-separators.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-convert.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-slots.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/branding.js
+A test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-time-separators.js
+M test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/branding.js
+A test/built-ins/Temporal/ZonedDateTime/subclass.js
+A test/intl402/NumberFormat/test-option-roundingPriority-mixed-options.js
+A test/intl402/Temporal/Calendar/prototype/dateFromFields/order-of-operations.js
+R100 test/intl402/Temporal/Calendar/prototype/era/leap-second.js test/intl402/Temporal/Calendar/prototype/era/argument-leap-second.js
+A test/intl402/Temporal/Calendar/prototype/era/argument-string-time-separators.js
+A test/intl402/Temporal/Calendar/prototype/era/argument-zoneddatetime-convert.js
+A test/intl402/Temporal/Calendar/prototype/era/argument-zoneddatetime-slots.js
+R100 test/intl402/Temporal/Calendar/prototype/eraYear/leap-second.js test/intl402/Temporal/Calendar/prototype/eraYear/argument-leap-second.js
+A test/intl402/Temporal/Calendar/prototype/eraYear/argument-string-time-separators.js
+A test/intl402/Temporal/Calendar/prototype/eraYear/argument-zoneddatetime-convert.js
+A test/intl402/Temporal/Calendar/prototype/eraYear/argument-zoneddatetime-slots.js
+A test/intl402/Temporal/Calendar/prototype/monthDayFromFields/order-of-operations.js
+A test/intl402/Temporal/Calendar/prototype/yearMonthFromFields/order-of-operations.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-break-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-case-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-catch-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-class-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-const-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-continue-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-debugger-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped-ext.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-delete-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-do-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-else-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-enum-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-export-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped-ext.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-finally-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-for-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-function-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-if-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-implements-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-import-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-in-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-instanceof-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-interface-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-let-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-new-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-package-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-private-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-protected-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-public-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-return-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-static-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-super-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-switch-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-this-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-throw-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-try-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-typeof-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-var-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-void-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-while-escaped.js
+M test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-with-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-break-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-case-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-catch-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-class-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-const-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-continue-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-debugger-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped-ext.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-default.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-delete-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-do-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-else-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-enum-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-export-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped-ext.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-finally-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-for-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-function-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-if-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-implements-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-import-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-in-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-instanceof-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-interface-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-let-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-new-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-package-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-private-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-protected-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-public-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-return-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-static-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-super-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-switch-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-this-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-throw-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-try-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-typeof-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-var-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-void-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-while-escaped.js
+M test/language/expressions/assignment/dstr/syntax-error-ident-ref-with-escaped.js
+A test/language/expressions/class/decorator/syntax/class-valid/decorator-member-expr-private-identifier.js
+A test/language/expressions/class/decorator/syntax/valid/decorator-call-expr-identifier-reference-yield.js
+A test/language/expressions/class/decorator/syntax/valid/decorator-call-expr-identifier-reference.js
+A test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-decorator-member-expr.js
+A test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-identifier-reference-yield.js
+A test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-identifier-reference.js
+A test/language/expressions/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference-yield.js
+A test/language/expressions/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference.js
+A test/language/expressions/class/elements/field-definition-accessor-no-line-terminator.js
+A test/language/expressions/class/elements/syntax/valid/grammar-field-accessor.js
+M test/language/module-code/early-dup-lex.js
+A test/language/statements/class/decorator/syntax/class-valid/decorator-member-expr-private-identifier.js
+A test/language/statements/class/decorator/syntax/valid/decorator-call-expr-identifier-reference-yield.js
+A test/language/statements/class/decorator/syntax/valid/decorator-call-expr-identifier-reference.js
+A test/language/statements/class/decorator/syntax/valid/decorator-member-expr-decorator-member-expr.js
+A test/language/statements/class/decorator/syntax/valid/decorator-member-expr-identifier-reference-yield.js
+A test/language/statements/class/decorator/syntax/valid/decorator-member-expr-identifier-reference.js
+A test/language/statements/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference-yield.js
+A test/language/statements/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference.js
+A test/language/statements/class/elements/field-definition-accessor-no-line-terminator.js
+A test/language/statements/class/elements/syntax/valid/grammar-field-accessor.js
+M test/language/statements/for/head-const-bound-names-in-stmt.js
+M test/language/statements/for/labelled-fn-stmt-const.js
+M test/language/statements/for-in/S12.6.4_A7_T2.js
+M test/language/statements/function/S14_A5_T1.js
+M test/language/statements/function/S14_A5_T2.js
\ No newline at end of file
diff --git a/JSTests/test262/test/built-ins/AsyncGeneratorPrototype/return/return-state-completed-broken-promise.js b/JSTests/test262/test/built-ins/AsyncGeneratorPrototype/return/return-state-completed-broken-promise.js
new file mode 100644
index 0000000..ca3f605
--- /dev/null
+++ b/JSTests/test262/test/built-ins/AsyncGeneratorPrototype/return/return-state-completed-broken-promise.js
@@ -0,0 +1,62 @@
+// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-asyncgenerator-prototype-return
+description: >
+  A broken promise should reject the returned promise of
+  AsyncGenerator.prototype.return when the generator is completed.
+info: |
+  AsyncGenerator.prototype.return ( value )
+  ...
+  8. If state is either suspendedStart or completed, then
+    a. Set generator.[[AsyncGeneratorState]] to awaiting-return.
+    b. Perform ! AsyncGeneratorAwaitReturn(generator).
+  ...
+
+  AsyncGeneratorAwaitReturn ( generator )
+  ...
+  6. Let promise be Completion(PromiseResolve(%Promise%, completion.[[Value]])).
+  7. If promiseCompletion is an abrupt completion, then
+    a. Set generator.[[AsyncGeneratorState]] to completed.
+    b. Perform AsyncGeneratorCompleteStep(generator, promiseCompletion, true).
+    c. Perform AsyncGeneratorDrainQueue(generator).
+    d. Return unused.
+  8. Assert: promiseCompletion.[[Type]] is normal.
+  9. Let promise be promiseCompletion.[[Value]].
+  ...
+
+flags: [async]
+features: [async-iteration]
+---*/
+
+let unblock;
+let blocking = new Promise(resolve => { unblock = resolve; });
+let unblocked = false;
+var g = async function*() {
+  await blocking;
+  unblocked = true;
+};
+
+var it = g();
+let brokenPromise = Promise.resolve(42);
+Object.defineProperty(brokenPromise, 'constructor', {
+  get: function () {
+    throw new Error('broken promise');
+  }
+});
+
+it.next();
+it.return(brokenPromise)
+  .then(
+    () => {
+      throw new Test262Error("Expected rejection");
+    },
+    err => {
+      assert(unblocked, false, 'return should be rejected before generator is resumed');
+      assert.sameValue(err.message, 'broken promise');
+    }
+  )
+  .then($DONE, $DONE);
+
+unblock();
diff --git a/JSTests/test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-broken-promise.js b/JSTests/test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-broken-promise.js
new file mode 100644
index 0000000..993ca81
--- /dev/null
+++ b/JSTests/test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-broken-promise.js
@@ -0,0 +1,54 @@
+// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-asyncgenerator-prototype-return
+description: >
+  A broken promise should reject the returned promise of
+  AsyncGenerator.prototype.return when the generator's state is suspendedStart.
+info: |
+  AsyncGenerator.prototype.return ( value )
+  ...
+  8. If state is either suspendedStart or completed, then
+    a. Set generator.[[AsyncGeneratorState]] to awaiting-return.
+    b. Perform AsyncGeneratorAwaitReturn(_generator_).
+  ...
+
+  AsyncGeneratorAwaitReturn ( generator )
+  ...
+  6. Let promise be Completion(PromiseResolve(%Promise%, completion.[[Value]])).
+  7. If promiseCompletion is an abrupt completion, then
+    a. Set generator.[[AsyncGeneratorState]] to completed.
+    b. Perform AsyncGeneratorCompleteStep(generator, promiseCompletion, true).
+    c. Perform AsyncGeneratorDrainQueue(generator).
+    d. Return unused.
+  8. Assert: promiseCompletion.[[Type]] is normal.
+  9. Let promise be promiseCompletion.[[Value]].
+  ...
+
+flags: [async]
+features: [async-iteration]
+---*/
+
+var g = async function*() {
+  throw new Test262Error('Generator must not be resumed.');
+};
+
+var it = g();
+let brokenPromise = Promise.resolve(42);
+Object.defineProperty(brokenPromise, 'constructor', {
+  get: function () {
+    throw new Error('broken promise');
+  }
+});
+
+it.return(brokenPromise)
+  .then(
+    () => {
+      throw new Test262Error("Expected rejection");
+    },
+    err => {
+      assert.sameValue(err.message, 'broken promise');
+    }
+  )
+  .then($DONE, $DONE);
diff --git a/JSTests/test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js b/JSTests/test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js
new file mode 100644
index 0000000..7fc3312
--- /dev/null
+++ b/JSTests/test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js
@@ -0,0 +1,64 @@
+// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-asyncgenerator-prototype-return
+description: >
+  A broken promise should resume the generator and reject with
+  the exception when the generator's state is suspendedYield.
+info: |
+  AsyncGenerator.prototype.return ( value )
+  ...
+  9. Else if state is suspendedYield, then
+    a. Perform AsyncGeneratorResume(generator, completion).
+  ...
+
+  AsyncGeneratorCompleteStep ( generator, completion, done [ , realm ] )
+  Resumes the steps defined at AsyncGeneratorStart ( generator, generatorBody )
+  ...
+  4. Set the code evaluation state of genContext such that when evaluation is resumed for that execution context the following steps will be performed:
+    ...
+    i. Perform AsyncGeneratorDrainQueue(generator).
+    j. Return undefined.
+
+  AsyncGeneratorDrainQueue ( generator )
+  ...
+  5. Repeat, while done is false,
+    a. Let next be the first element of queue.
+    b. Let completion be Completion(next.[[Completion]]).
+    c. If completion.[[Type]] is return, then
+        i. Set generator.[[AsyncGeneratorState]] to awaiting-return.
+        ii. Perform AsyncGeneratorAwaitReturn(generator).
+        iii. Set done to true.
+  ...
+
+flags: [async]
+features: [async-iteration]
+---*/
+
+let caughtErr;
+var g = async function*() {
+  try {
+    yield;
+    return 'this is never returned';
+  } catch (err) {
+    caughtErr = err;
+    return 1;
+  }
+};
+
+let brokenPromise = Promise.resolve(42);
+Object.defineProperty(brokenPromise, 'constructor', {
+  get: function () {
+    throw new Error('broken promise');
+  }
+});
+
+var it = g();
+it.next().then(() => {
+  return it.return(brokenPromise);
+}).then(ret => {
+  assert.sameValue(caughtErr.message, 'broken promise');
+  assert.sameValue(ret.value, 1, 'returned value');
+  assert.sameValue(ret.done, true, 'iterator is closed');
+}).then($DONE, $DONE);
diff --git a/JSTests/test262/test/built-ins/NativeErrors/AggregateError/newtarget-proto-custom.js b/JSTests/test262/test/built-ins/NativeErrors/AggregateError/newtarget-proto-custom.js
index ddd365f..4dcee27 100644
--- a/JSTests/test262/test/built-ins/NativeErrors/AggregateError/newtarget-proto-custom.js
+++ b/JSTests/test262/test/built-ins/NativeErrors/AggregateError/newtarget-proto-custom.js
@@ -27,7 +27,7 @@
     a. Let realm be ? GetFunctionRealm(constructor).
     b. Set proto to realm's intrinsic object named intrinsicDefaultProto.
   Return proto.
-features: [AggregateError]
+features: [AggregateError, Reflect.construct]
 ---*/
 
 var custom = { x: 42 };
diff --git a/JSTests/test262/test/built-ins/ShadowRealm/prototype/importValue/exportName-tostring.js b/JSTests/test262/test/built-ins/ShadowRealm/prototype/importValue/throws-if-exportname-not-string.js
similarity index 80%
rename from JSTests/test262/test/built-ins/ShadowRealm/prototype/importValue/exportName-tostring.js
rename to JSTests/test262/test/built-ins/ShadowRealm/prototype/importValue/throws-if-exportname-not-string.js
index d60773b..a3c22ba 100644
--- a/JSTests/test262/test/built-ins/ShadowRealm/prototype/importValue/exportName-tostring.js
+++ b/JSTests/test262/test/built-ins/ShadowRealm/prototype/importValue/throws-if-exportname-not-string.js
@@ -3,7 +3,7 @@
 /*---
 esid: sec-shadowrealm.prototype.importvalue
 description: >
-  ShadowRealm.prototype.importValue coerces exportName to string.
+  ShadowRealm.prototype.importValue throws if exportName is not a string.
 features: [ShadowRealm]
 ---*/
 
@@ -23,8 +23,8 @@
   }
 };
 
-assert.throws(Test262Error, () => {
+assert.throws(TypeError, () => {
   r.importValue('', exportName);
 });
 
-assert.sameValue(count, 1);
+assert.sameValue(count, 0);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/constructor.js b/JSTests/test262/test/built-ins/Temporal/Calendar/constructor.js
index 461b9ec..5221ae4 100644
--- a/JSTests/test262/test/built-ins/Temporal/Calendar/constructor.js
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/constructor.js
@@ -9,4 +9,4 @@
 features: [Temporal]
 ---*/
 
-assert.throws(TypeError, () => Temporal.Calendar());
+assert.throws(TypeError, () => Temporal.Calendar("iso8601"));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/constructor.js
new file mode 100644
index 0000000..78996f2
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.constructor
+description: Test for Temporal.Calendar.prototype.constructor.
+info: The initial value of Temporal.Calendar.prototype.constructor is %Temporal.Calendar%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.Calendar.prototype, "constructor", {
+  value: Temporal.Calendar,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-string-time-separators.js
new file mode 100644
index 0000000..909b4ac
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dateadd
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.dateAdd(arg, new Temporal.Duration());
+
+  TemporalHelpers.assertPlainDate(
+    result,
+    2000, 5, "M05", 2,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..66640fe
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dateadd
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.dateAdd(arg, new Temporal.Duration()));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..81afe45
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateAdd/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dateadd
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.dateAdd(arg, new Temporal.Duration());
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateFromFields/missing-properties.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateFromFields/missing-properties.js
new file mode 100644
index 0000000..e1694cc
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateFromFields/missing-properties.js
@@ -0,0 +1,45 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.datefromfields
+description: Errors due to missing properties on fields object are thrown in the correct order
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const instance = new Temporal.Calendar("iso8601");
+
+const missingDay = {
+  get year() {
+    TemporalHelpers.assertUnreachable("day should be checked first");
+  },
+  get month() {
+    TemporalHelpers.assertUnreachable("day should be checked first");
+  },
+  get monthCode() {
+    TemporalHelpers.assertUnreachable("day should be checked first");
+  },
+};
+assert.throws(TypeError, () => instance.dateFromFields(missingDay), "day should be checked before year and month");
+
+let getMonth = false;
+let getMonthCode = false;
+const missingYearAndMonth = {
+  day: 1,
+  get month() {
+    getMonth = true;
+  },
+  get monthCode() {
+    getMonthCode = true;
+  },
+};
+assert.throws(TypeError, () => instance.dateFromFields(missingYearAndMonth), "year should be checked after fetching but before resolving the month");
+assert(getMonth, "year is fetched after month");
+assert(getMonthCode, "year is fetched after monthCode");
+
+const missingMonth = {
+  day: 1,
+  year: 2000,
+};
+assert.throws(TypeError, () => instance.dateFromFields(missingMonth), "month should be resolved last");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateFromFields/order-of-operations.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateFromFields/order-of-operations.js
new file mode 100644
index 0000000..e682993
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateFromFields/order-of-operations.js
@@ -0,0 +1,68 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.datefromfields
+description: Properties on objects passed to dateFromFields() are accessed in the correct order
+includes: [compareArray.js, temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const expected = [
+  "get options.overflow",
+  "get options.overflow.toString",
+  "call options.overflow.toString",
+  "get fields.day",
+  "get fields.day.valueOf",
+  "call fields.day.valueOf",
+  "get fields.month",
+  "get fields.month.valueOf",
+  "call fields.month.valueOf",
+  "get fields.monthCode",
+  "get fields.monthCode.toString",
+  "call fields.monthCode.toString",
+  "get fields.year",
+  "get fields.year.valueOf",
+  "call fields.year.valueOf",
+];
+const actual = [];
+
+const instance = new Temporal.Calendar("iso8601");
+
+const fields = {
+  year: 1.7,
+  month: 1.7,
+  monthCode: "M01",
+  day: 1.7,
+};
+const arg1 = new Proxy(fields, {
+  get(target, key) {
+    actual.push(`get fields.${key}`);
+    if (key === "calendar") return instance;
+    const result = target[key];
+    return TemporalHelpers.toPrimitiveObserver(actual, result, `fields.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has fields.${key}`);
+    return key in target;
+  },
+});
+
+const options = {
+  overflow: "reject",
+};
+const arg2 = new Proxy(options, {
+  get(target, key) {
+    actual.push(`get options.${key}`);
+    return TemporalHelpers.toPrimitiveObserver(actual, target[key], `options.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has options.${key}`);
+    return key in target;
+  },
+});
+
+const result = instance.dateFromFields(arg1, arg2);
+TemporalHelpers.assertPlainDate(result, 1, 1, "M01", 1, "date result");
+assert.sameValue(result.calendar, instance, "calendar result");
+assert.compareArray(actual, expected, "order of operations");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-string-time-separators.js
new file mode 100644
index 0000000..ce4b1b0
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-string-time-separators.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dateuntil
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const date = new Temporal.PlainDate(2000, 5, 3);
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  TemporalHelpers.assertDuration(
+    instance.dateUntil(arg, date),
+    0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description}), first argument`
+  );
+
+  TemporalHelpers.assertDuration(
+    instance.dateUntil(date, arg),
+    0, 0, 0, -1, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description}), second argument`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..b3f3618
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dateUntil/argument-zoneddatetime-slots.js
@@ -0,0 +1,38 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dateuntil
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.dateUntil(arg, new Temporal.PlainDate(1977, 11, 19));
+instance.dateUntil(new Temporal.PlainDate(1977, 11, 19), arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-string-time-separators.js
new file mode 100644
index 0000000..7b1d040
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.day
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.day(arg);
+
+  assert.sameValue(
+    result,
+    2,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..8018094
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.day
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.day(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..492ed24
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/day/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.day
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.day(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-string-time-separators.js
new file mode 100644
index 0000000..262f525
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dayofweek
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.dayOfWeek(arg);
+
+  assert.sameValue(
+    result,
+    2,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..b411625
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dayofweek
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.dayOfWeek(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..856218e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfWeek/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dayofweek
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.dayOfWeek(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-string-time-separators.js
new file mode 100644
index 0000000..5d0f436
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dayofyear
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.dayOfYear(arg);
+
+  assert.sameValue(
+    result,
+    123,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..81fb544
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dayofyear
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.dayOfYear(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..8738b26
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/dayOfYear/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.dayofyear
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.dayOfYear(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-time-separators.js
new file mode 100644
index 0000000..53b94d8
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.daysinmonth
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.daysInMonth(arg);
+
+  assert.sameValue(
+    result,
+    31,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..db08f30
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.daysinmonth
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.daysInMonth(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..c6a233a
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.daysinmonth
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.daysInMonth(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-string-time-separators.js
new file mode 100644
index 0000000..1e545cf
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.daysinweek
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.daysInWeek(arg);
+
+  assert.sameValue(
+    result,
+    7,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..aec5f24
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.daysinweek
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.daysInWeek(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..2a96f91
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInWeek/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.daysinweek
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.daysInWeek(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-string-time-separators.js
new file mode 100644
index 0000000..2ef6c0f
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.daysinyear
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.daysInYear(arg);
+
+  assert.sameValue(
+    result,
+    366,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..5fa002c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.daysinyear
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.daysInYear(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..44d112e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/daysInYear/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.daysinyear
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.daysInYear(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/fields/branding.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/fields/branding.js
index bd62883..9b42252 100644
--- a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/fields/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/fields/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof fields, "function");
 
-assert.throws(TypeError, () => fields.call(undefined), "undefined");
-assert.throws(TypeError, () => fields.call(null), "null");
-assert.throws(TypeError, () => fields.call(true), "true");
-assert.throws(TypeError, () => fields.call(""), "empty string");
-assert.throws(TypeError, () => fields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => fields.call(1), "1");
-assert.throws(TypeError, () => fields.call({}), "plain object");
-assert.throws(TypeError, () => fields.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => fields.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
+const args = [[]];
+
+assert.throws(TypeError, () => fields.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => fields.apply(null, args), "null");
+assert.throws(TypeError, () => fields.apply(true, args), "true");
+assert.throws(TypeError, () => fields.apply("", args), "empty string");
+assert.throws(TypeError, () => fields.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => fields.apply(1, args), "1");
+assert.throws(TypeError, () => fields.apply({}, args), "plain object");
+assert.throws(TypeError, () => fields.apply(Temporal.Calendar, args), "Temporal.Calendar");
+assert.throws(TypeError, () => fields.apply(Temporal.Calendar.prototype, args), "Temporal.Calendar.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-string-time-separators.js
new file mode 100644
index 0000000..a963e6d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.inleapyear
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.inLeapYear(arg);
+
+  assert.sameValue(
+    result,
+    true,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..477767c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.inleapyear
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.inLeapYear(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..afc1f70
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.inleapyear
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.inLeapYear(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/branding.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/branding.js
index 003cf49..4cde009 100644
--- a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/inLeapYear/branding.js
@@ -11,14 +11,14 @@
 
 assert.sameValue(typeof inLeapYear, "function");
 
-const arg = new Temporal.PlainDate(2021, 3, 4);
+const args = [new Temporal.PlainDate(2021, 3, 4)];
 
-assert.throws(TypeError, () => inLeapYear.call(undefined, arg), "undefined");
-assert.throws(TypeError, () => inLeapYear.call(null, arg), "null");
-assert.throws(TypeError, () => inLeapYear.call(true, arg), "true");
-assert.throws(TypeError, () => inLeapYear.call("", arg), "empty string");
-assert.throws(TypeError, () => inLeapYear.call(Symbol(), arg), "symbol");
-assert.throws(TypeError, () => inLeapYear.call(1, arg), "1");
-assert.throws(TypeError, () => inLeapYear.call({}, arg), "plain object");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.Calendar, arg), "Temporal.Calendar");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.Calendar.prototype, arg), "Temporal.Calendar.prototype");
+assert.throws(TypeError, () => inLeapYear.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => inLeapYear.apply(null, args), "null");
+assert.throws(TypeError, () => inLeapYear.apply(true, args), "true");
+assert.throws(TypeError, () => inLeapYear.apply("", args), "empty string");
+assert.throws(TypeError, () => inLeapYear.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => inLeapYear.apply(1, args), "1");
+assert.throws(TypeError, () => inLeapYear.apply({}, args), "plain object");
+assert.throws(TypeError, () => inLeapYear.apply(Temporal.Calendar, args), "Temporal.Calendar");
+assert.throws(TypeError, () => inLeapYear.apply(Temporal.Calendar.prototype, args), "Temporal.Calendar.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/mergeFields/branding.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/mergeFields/branding.js
index 0ef2b3f..a1189bb 100644
--- a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/mergeFields/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/mergeFields/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof mergeFields, "function");
 
-assert.throws(TypeError, () => mergeFields.call(undefined), "undefined");
-assert.throws(TypeError, () => mergeFields.call(null), "null");
-assert.throws(TypeError, () => mergeFields.call(true), "true");
-assert.throws(TypeError, () => mergeFields.call(""), "empty string");
-assert.throws(TypeError, () => mergeFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => mergeFields.call(1), "1");
-assert.throws(TypeError, () => mergeFields.call({}), "plain object");
-assert.throws(TypeError, () => mergeFields.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => mergeFields.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
+const args = [{}, {}];
+
+assert.throws(TypeError, () => mergeFields.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => mergeFields.apply(null, args), "null");
+assert.throws(TypeError, () => mergeFields.apply(true, args), "true");
+assert.throws(TypeError, () => mergeFields.apply("", args), "empty string");
+assert.throws(TypeError, () => mergeFields.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => mergeFields.apply(1, args), "1");
+assert.throws(TypeError, () => mergeFields.apply({}, args), "plain object");
+assert.throws(TypeError, () => mergeFields.apply(Temporal.Calendar, args), "Temporal.Calendar");
+assert.throws(TypeError, () => mergeFields.apply(Temporal.Calendar.prototype, args), "Temporal.Calendar.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-string-time-separators.js
new file mode 100644
index 0000000..a238e54
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.month
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.month(arg);
+
+  assert.sameValue(
+    result,
+    5,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..fc454a1
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.month
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.month(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..523b92d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/month/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.month
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.month(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-string-time-separators.js
new file mode 100644
index 0000000..942c0ec
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.monthcode
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.monthCode(arg);
+
+  assert.sameValue(
+    result,
+    "M05",
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..5f19824
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.monthcode
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.monthCode(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..c1e05a4
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthCode/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.monthcode
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.monthCode(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/branding.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/branding.js
index 63691c7..05cefbf 100644
--- a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof monthDayFromFields, "function");
 
-assert.throws(TypeError, () => monthDayFromFields.call(undefined), "undefined");
-assert.throws(TypeError, () => monthDayFromFields.call(null), "null");
-assert.throws(TypeError, () => monthDayFromFields.call(true), "true");
-assert.throws(TypeError, () => monthDayFromFields.call(""), "empty string");
-assert.throws(TypeError, () => monthDayFromFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthDayFromFields.call(1), "1");
-assert.throws(TypeError, () => monthDayFromFields.call({}), "plain object");
-assert.throws(TypeError, () => monthDayFromFields.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => monthDayFromFields.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
+const args = [{ monthCode: "M01", day: 1 }];
+
+assert.throws(TypeError, () => monthDayFromFields.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => monthDayFromFields.apply(null, args), "null");
+assert.throws(TypeError, () => monthDayFromFields.apply(true, args), "true");
+assert.throws(TypeError, () => monthDayFromFields.apply("", args), "empty string");
+assert.throws(TypeError, () => monthDayFromFields.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => monthDayFromFields.apply(1, args), "1");
+assert.throws(TypeError, () => monthDayFromFields.apply({}, args), "plain object");
+assert.throws(TypeError, () => monthDayFromFields.apply(Temporal.Calendar, args), "Temporal.Calendar");
+assert.throws(TypeError, () => monthDayFromFields.apply(Temporal.Calendar.prototype, args), "Temporal.Calendar.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/missing-properties.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/missing-properties.js
new file mode 100644
index 0000000..3f7b3ee
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/missing-properties.js
@@ -0,0 +1,42 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.monthdayfromfields
+description: Errors due to missing properties on fields object are thrown in the correct order
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const instance = new Temporal.Calendar("iso8601");
+
+const missingDay = {
+  get year() {
+    TemporalHelpers.assertUnreachable("day should be checked first");
+  },
+  get month() {
+    TemporalHelpers.assertUnreachable("day should be checked first");
+  },
+  get monthCode() {
+    TemporalHelpers.assertUnreachable("day should be checked first");
+  },
+};
+assert.throws(TypeError, () => instance.monthDayFromFields(missingDay), "day should be checked before year and month");
+
+let getMonthCode = false;
+let getYear = false;
+const monthWithoutYear = {
+  day: 1,
+  month: 5,
+  get monthCode() {
+    getMonthCode = true;
+  },
+  get year() {
+    getYear = true;
+  },
+};
+assert.throws(TypeError, () => instance.monthDayFromFields(monthWithoutYear), "year/month should be checked after fetching but before resolving the month code");
+assert(getMonthCode, "year/month is checked after fetching monthCode");
+assert(getYear, "year/month is fetched after fetching month");
+
+assert.throws(TypeError, () => instance.monthDayFromFields({ day: 1 }), "month should be resolved last");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/order-of-operations.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/order-of-operations.js
new file mode 100644
index 0000000..d8e5eb4
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthDayFromFields/order-of-operations.js
@@ -0,0 +1,68 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.monthdayfromfields
+description: Properties on objects passed to monthDayFromFields() are accessed in the correct order
+includes: [compareArray.js, temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const expected = [
+  "get options.overflow",
+  "get options.overflow.toString",
+  "call options.overflow.toString",
+  "get fields.day",
+  "get fields.day.valueOf",
+  "call fields.day.valueOf",
+  "get fields.month",
+  "get fields.month.valueOf",
+  "call fields.month.valueOf",
+  "get fields.monthCode",
+  "get fields.monthCode.toString",
+  "call fields.monthCode.toString",
+  "get fields.year",
+  "get fields.year.valueOf",
+  "call fields.year.valueOf",
+];
+const actual = [];
+
+const instance = new Temporal.Calendar("iso8601");
+
+const fields = {
+  year: 1.7,
+  month: 1.7,
+  monthCode: "M01",
+  day: 1.7,
+};
+const arg1 = new Proxy(fields, {
+  get(target, key) {
+    actual.push(`get fields.${key}`);
+    if (key === "calendar") return instance;
+    const result = target[key];
+    return TemporalHelpers.toPrimitiveObserver(actual, result, `fields.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has fields.${key}`);
+    return key in target;
+  },
+});
+
+const options = {
+  overflow: "reject",
+};
+const arg2 = new Proxy(options, {
+  get(target, key) {
+    actual.push(`get options.${key}`);
+    return TemporalHelpers.toPrimitiveObserver(actual, target[key], `options.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has options.${key}`);
+    return key in target;
+  },
+});
+
+const result = instance.monthDayFromFields(arg1, arg2);
+TemporalHelpers.assertPlainMonthDay(result, "M01", 1, "monthDay result");
+assert.sameValue(result.calendar, instance, "calendar result");
+assert.compareArray(actual, expected, "order of operations");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-string-time-separators.js
new file mode 100644
index 0000000..aa8a24f
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.monthsinyear
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.monthsInYear(arg);
+
+  assert.sameValue(
+    result,
+    12,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..a5050bb
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.monthsinyear
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.monthsInYear(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..c3d9394
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.monthsinyear
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.monthsInYear(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/branding.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/branding.js
index 4d16a00..8db1850 100644
--- a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/monthsInYear/branding.js
@@ -11,14 +11,14 @@
 
 assert.sameValue(typeof monthsInYear, "function");
 
-const arg = new Temporal.PlainDate(2021, 3, 4);
+const args = [new Temporal.PlainDate(2021, 3, 4)];
 
-assert.throws(TypeError, () => monthsInYear.call(undefined, arg), "undefined");
-assert.throws(TypeError, () => monthsInYear.call(null, arg), "null");
-assert.throws(TypeError, () => monthsInYear.call(true, arg), "true");
-assert.throws(TypeError, () => monthsInYear.call("", arg), "empty string");
-assert.throws(TypeError, () => monthsInYear.call(Symbol(), arg), "symbol");
-assert.throws(TypeError, () => monthsInYear.call(1, arg), "1");
-assert.throws(TypeError, () => monthsInYear.call({}, arg), "plain object");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.Calendar, arg), "Temporal.Calendar");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.Calendar.prototype, arg), "Temporal.Calendar.prototype");
+assert.throws(TypeError, () => monthsInYear.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => monthsInYear.apply(null, args), "null");
+assert.throws(TypeError, () => monthsInYear.apply(true, args), "true");
+assert.throws(TypeError, () => monthsInYear.apply("", args), "empty string");
+assert.throws(TypeError, () => monthsInYear.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => monthsInYear.apply(1, args), "1");
+assert.throws(TypeError, () => monthsInYear.apply({}, args), "plain object");
+assert.throws(TypeError, () => monthsInYear.apply(Temporal.Calendar, args), "Temporal.Calendar");
+assert.throws(TypeError, () => monthsInYear.apply(Temporal.Calendar.prototype, args), "Temporal.Calendar.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/toStringTag/prop-desc.js
new file mode 100644
index 0000000..a1a6b83
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/toStringTag/prop-desc.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype-@@tostringtag
+description: The @@toStringTag property of Temporal.Calendar
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.Calendar.prototype, Symbol.toStringTag, {
+  value: "Temporal.Calendar",
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-string-time-separators.js
new file mode 100644
index 0000000..5ab5184
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.weekofyear
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.weekOfYear(arg);
+
+  assert.sameValue(
+    result,
+    18,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..1a09253
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.weekofyear
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.weekOfYear(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..e185350
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.weekofyear
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.weekOfYear(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/branding.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/branding.js
index d6b5a0f..dc217ea 100644
--- a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/weekOfYear/branding.js
@@ -11,14 +11,14 @@
 
 assert.sameValue(typeof weekOfYear, "function");
 
-const arg = new Temporal.PlainDate(2021, 7, 20);
+const args = [new Temporal.PlainDate(2021, 7, 20)];
 
-assert.throws(TypeError, () => weekOfYear.call(undefined, arg), "undefined");
-assert.throws(TypeError, () => weekOfYear.call(null, arg), "null");
-assert.throws(TypeError, () => weekOfYear.call(true, arg), "true");
-assert.throws(TypeError, () => weekOfYear.call("", arg), "empty string");
-assert.throws(TypeError, () => weekOfYear.call(Symbol(), arg), "symbol");
-assert.throws(TypeError, () => weekOfYear.call(1, arg), "1");
-assert.throws(TypeError, () => weekOfYear.call({}, arg), "plain object");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.Calendar, arg), "Temporal.Calendar");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.Calendar.prototype, arg), "Temporal.Calendar.prototype");
+assert.throws(TypeError, () => weekOfYear.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => weekOfYear.apply(null, args), "null");
+assert.throws(TypeError, () => weekOfYear.apply(true, args), "true");
+assert.throws(TypeError, () => weekOfYear.apply("", args), "empty string");
+assert.throws(TypeError, () => weekOfYear.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => weekOfYear.apply(1, args), "1");
+assert.throws(TypeError, () => weekOfYear.apply({}, args), "plain object");
+assert.throws(TypeError, () => weekOfYear.apply(Temporal.Calendar, args), "Temporal.Calendar");
+assert.throws(TypeError, () => weekOfYear.apply(Temporal.Calendar.prototype, args), "Temporal.Calendar.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/leap-second.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-string-time-separators.js
new file mode 100644
index 0000000..7e2aa42
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.year
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.year(arg);
+
+  assert.sameValue(
+    result,
+    2000,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..1d5119c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.year
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.year(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..5436a91
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/year/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.year
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.year(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/branding.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/branding.js
index 7212b7f..8fdd4c9 100644
--- a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/branding.js
@@ -11,14 +11,14 @@
 
 assert.sameValue(typeof yearMonthFromFields, "function");
 
-const arg = { year: 2021, month: 1 };
+const args = [{ year: 2021, month: 1 }];
 
-assert.throws(TypeError, () => yearMonthFromFields.call(undefined, arg), "undefined");
-assert.throws(TypeError, () => yearMonthFromFields.call(null, arg), "null");
-assert.throws(TypeError, () => yearMonthFromFields.call(true, arg), "true");
-assert.throws(TypeError, () => yearMonthFromFields.call("", arg), "empty string");
-assert.throws(TypeError, () => yearMonthFromFields.call(Symbol(), arg), "symbol");
-assert.throws(TypeError, () => yearMonthFromFields.call(1, arg), "1");
-assert.throws(TypeError, () => yearMonthFromFields.call({}, arg), "plain object");
-assert.throws(TypeError, () => yearMonthFromFields.call(Temporal.Calendar, arg), "Temporal.Calendar");
-assert.throws(TypeError, () => yearMonthFromFields.call(Temporal.Calendar.prototype, arg), "Temporal.Calendar.prototype");
+assert.throws(TypeError, () => yearMonthFromFields.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => yearMonthFromFields.apply(null, args), "null");
+assert.throws(TypeError, () => yearMonthFromFields.apply(true, args), "true");
+assert.throws(TypeError, () => yearMonthFromFields.apply("", args), "empty string");
+assert.throws(TypeError, () => yearMonthFromFields.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => yearMonthFromFields.apply(1, args), "1");
+assert.throws(TypeError, () => yearMonthFromFields.apply({}, args), "plain object");
+assert.throws(TypeError, () => yearMonthFromFields.apply(Temporal.Calendar, args), "Temporal.Calendar");
+assert.throws(TypeError, () => yearMonthFromFields.apply(Temporal.Calendar.prototype, args), "Temporal.Calendar.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/missing-properties.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/missing-properties.js
new file mode 100644
index 0000000..d8fb8e2
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/missing-properties.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.yearmonthfromfields
+description: Errors due to missing properties on fields object are thrown in the correct order
+features: [Temporal]
+---*/
+
+const instance = new Temporal.Calendar("iso8601");
+
+let getMonth = false;
+let getMonthCode = false;
+const missingYearAndMonth = {
+  get month() {
+    getMonth = true;
+  },
+  get monthCode() {
+    getMonthCode = true;
+  },
+};
+assert.throws(TypeError, () => instance.yearMonthFromFields(missingYearAndMonth), "year should be checked after fetching but before resolving the month");
+assert(getMonth, "year is fetched after month");
+assert(getMonthCode, "year is fetched after monthCode");
+
+assert.throws(TypeError, () => instance.yearMonthFromFields({ year: 2000 }), "month should be resolved last");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/order-of-operations.js b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/order-of-operations.js
new file mode 100644
index 0000000..f9cd798
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/prototype/yearMonthFromFields/order-of-operations.js
@@ -0,0 +1,64 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.yearmonthfromfields
+description: Properties on objects passed to yearMonthFromFields() are accessed in the correct order
+includes: [compareArray.js, temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const expected = [
+  "get options.overflow",
+  "get options.overflow.toString",
+  "call options.overflow.toString",
+  "get fields.month",
+  "get fields.month.valueOf",
+  "call fields.month.valueOf",
+  "get fields.monthCode",
+  "get fields.monthCode.toString",
+  "call fields.monthCode.toString",
+  "get fields.year",
+  "get fields.year.valueOf",
+  "call fields.year.valueOf",
+];
+const actual = [];
+
+const instance = new Temporal.Calendar("iso8601");
+
+const fields = {
+  year: 1.7,
+  month: 1.7,
+  monthCode: "M01",
+};
+const arg1 = new Proxy(fields, {
+  get(target, key) {
+    actual.push(`get fields.${key}`);
+    if (key === "calendar") return instance;
+    const result = target[key];
+    return TemporalHelpers.toPrimitiveObserver(actual, result, `fields.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has fields.${key}`);
+    return key in target;
+  },
+});
+
+const options = {
+  overflow: "reject",
+};
+const arg2 = new Proxy(options, {
+  get(target, key) {
+    actual.push(`get options.${key}`);
+    return TemporalHelpers.toPrimitiveObserver(actual, target[key], `options.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has options.${key}`);
+    return key in target;
+  },
+});
+
+const result = instance.yearMonthFromFields(arg1, arg2);
+TemporalHelpers.assertPlainYearMonth(result, 1, 1, "M01", "yearMonth result");
+assert.sameValue(result.calendar, instance, "calendar result");
+assert.compareArray(actual, expected, "order of operations");
diff --git a/JSTests/test262/test/built-ins/Temporal/Calendar/subclass.js b/JSTests/test262/test/built-ins/Temporal/Calendar/subclass.js
new file mode 100644
index 0000000..e127b012
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Calendar/subclass.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar
+description: Test for Temporal.Calendar subclassing.
+features: [Temporal]
+---*/
+
+class CustomCalendar extends Temporal.Calendar {
+}
+
+const instance = new CustomCalendar("iso8601");
+assert.sameValue(instance.toString(), "iso8601");
+assert.sameValue(Object.getPrototypeOf(instance), CustomCalendar.prototype, "Instance of CustomCalendar");
+assert(instance instanceof CustomCalendar, "Instance of CustomCalendar");
+assert(instance instanceof Temporal.Calendar, "Instance of Temporal.Calendar");
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/compare/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/Duration/compare/argument-string-negative-fractional-units.js
index d5552da..b120807 100644
--- a/JSTests/test262/test/built-ins/Temporal/Duration/compare/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/compare/argument-string-negative-fractional-units.js
@@ -7,13 +7,13 @@
 features: [Temporal]
 ---*/
 
-const expectedHours = new Temporal.Duration(0, 0, 0, 0, -24, -34, -4, -404, -442, -799);
+const expectedHours = new Temporal.Duration(0, 0, 0, 0, -24, -34, -4, -404, -442, -800);
 const resultHours1 = Temporal.Duration.compare("-PT24.567890123H", expectedHours);
 assert.sameValue(resultHours1, 0, "negative fractional hours (first argument)");
 const resultHours2 = Temporal.Duration.compare(expectedHours, "-PT24.567890123H");
 assert.sameValue(resultHours2, 0, "negative fractional hours (second argument)");
 
-const expectedMinutes = new Temporal.Duration(0, 0, 0, 0, 0, -1440, -34, -73, -407, -379);
+const expectedMinutes = new Temporal.Duration(0, 0, 0, 0, 0, -1440, -34, -73, -407, -380);
 const resultMinutes1 = Temporal.Duration.compare("-PT1440.567890123M", expectedMinutes);
 assert.sameValue(resultMinutes1, 0, "negative fractional minutes (first argument)");
 const resultMinutes2 = Temporal.Duration.compare("-PT1440.567890123M", expectedMinutes);
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/from/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/Duration/from/argument-string-negative-fractional-units.js
index b9d66b3..0374db1 100644
--- a/JSTests/test262/test/built-ins/Temporal/Duration/from/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/from/argument-string-negative-fractional-units.js
@@ -9,7 +9,7 @@
 ---*/
 
 const resultHours = Temporal.Duration.from("-PT24.567890123H");
-TemporalHelpers.assertDuration(resultHours, 0, 0, 0, 0, -24, -34, -4, -404, -442, -799, "negative fractional hours");
+TemporalHelpers.assertDuration(resultHours, 0, 0, 0, 0, -24, -34, -4, -404, -442, -800, "negative fractional hours");
 
 const resultMinutes = Temporal.Duration.from("-PT1440.567890123M");
-TemporalHelpers.assertDuration(resultMinutes, 0, 0, 0, 0, 0, -1440, -34, -73, -407, -379, "negative fractional minutes");
+TemporalHelpers.assertDuration(resultMinutes, 0, 0, 0, 0, 0, -1440, -34, -73, -407, -380, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/add/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/add/argument-string-negative-fractional-units.js
index 8c4b038..e0e0e56 100644
--- a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/add/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/add/argument-string-negative-fractional-units.js
@@ -11,7 +11,7 @@
 const instance = new Temporal.Duration();
 
 const resultHours = instance.add("-PT24.567890123H");
-TemporalHelpers.assertDuration(resultHours, 0, 0, 0, 0, -24, -34, -4, -404, -442, -799, "negative fractional hours");
+TemporalHelpers.assertDuration(resultHours, 0, 0, 0, 0, -24, -34, -4, -404, -442, -800, "negative fractional hours");
 
 const resultMinutes = instance.add("-PT1440.567890123M");
-TemporalHelpers.assertDuration(resultMinutes, 0, 0, 0, 0, 0, -1440, -34, -73, -407, -379, "negative fractional minutes");
+TemporalHelpers.assertDuration(resultMinutes, 0, 0, 0, 0, 0, -1440, -34, -73, -407, -380, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/add/branding.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/add/branding.js
index e311bd4..efc325d 100644
--- a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/add/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/add/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof add, "function");
 
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => add.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
+const args = [new Temporal.Duration(0, 0, 0, 0, 5)];
+
+assert.throws(TypeError, () => add.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => add.apply(null, args), "null");
+assert.throws(TypeError, () => add.apply(true, args), "true");
+assert.throws(TypeError, () => add.apply("", args), "empty string");
+assert.throws(TypeError, () => add.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => add.apply(1, args), "1");
+assert.throws(TypeError, () => add.apply({}, args), "plain object");
+assert.throws(TypeError, () => add.apply(Temporal.Duration, args), "Temporal.Duration");
+assert.throws(TypeError, () => add.apply(Temporal.Duration.prototype, args), "Temporal.Duration.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/constructor.js
new file mode 100644
index 0000000..38cd1d6
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.duration.prototype.constructor
+description: Test for Temporal.Duration.prototype.constructor.
+info: The initial value of Temporal.Duration.prototype.constructor is %Temporal.Duration%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.Duration.prototype, "constructor", {
+  value: Temporal.Duration,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/branding.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/branding.js
index 503b77f..8b5bc66 100644
--- a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof round, "function");
 
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => round.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
+const args = ["hour"];
+
+assert.throws(TypeError, () => round.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => round.apply(null, args), "null");
+assert.throws(TypeError, () => round.apply(true, args), "true");
+assert.throws(TypeError, () => round.apply("", args), "empty string");
+assert.throws(TypeError, () => round.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => round.apply(1, args), "1");
+assert.throws(TypeError, () => round.apply({}, args), "plain object");
+assert.throws(TypeError, () => round.apply(Temporal.Duration, args), "Temporal.Duration");
+assert.throws(TypeError, () => round.apply(Temporal.Duration.prototype, args), "Temporal.Duration.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-convert.js
new file mode 100644
index 0000000..1113fd3
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.duration.prototype.round
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Duration(0, 0, 0, 365);
+
+assert.throws(Test262Error, () => instance.round({ relativeTo: arg, largestUnit: "years" }));
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-slots.js
new file mode 100644
index 0000000..dfb3364
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.duration.prototype.round
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Duration(0, 0, 0, 365);
+instance.round({ relativeTo: arg, largestUnit: "years" });
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/subtract/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/subtract/argument-string-negative-fractional-units.js
index 3c940f2..ed93599 100644
--- a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/subtract/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/subtract/argument-string-negative-fractional-units.js
@@ -11,7 +11,7 @@
 const instance = new Temporal.Duration();
 
 const resultHours = instance.subtract("-PT24.567890123H");
-TemporalHelpers.assertDuration(resultHours, 0, 0, 0, 0, 24, 34, 4, 404, 442, 799, "negative fractional hours");
+TemporalHelpers.assertDuration(resultHours, 0, 0, 0, 0, 24, 34, 4, 404, 442, 800, "negative fractional hours");
 
 const resultMinutes = instance.subtract("-PT1440.567890123M");
-TemporalHelpers.assertDuration(resultMinutes, 0, 0, 0, 0, 0, 1440, 34, 73, 407, 379, "negative fractional minutes");
+TemporalHelpers.assertDuration(resultMinutes, 0, 0, 0, 0, 0, 1440, 34, 73, 407, 380, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/subtract/branding.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/subtract/branding.js
index e9264d8..f9dca06 100644
--- a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/subtract/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/subtract/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof subtract, "function");
 
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => subtract.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
+const args = [new Temporal.Duration(0, 0, 0, 0, 5)];
+
+assert.throws(TypeError, () => subtract.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => subtract.apply(null, args), "null");
+assert.throws(TypeError, () => subtract.apply(true, args), "true");
+assert.throws(TypeError, () => subtract.apply("", args), "empty string");
+assert.throws(TypeError, () => subtract.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => subtract.apply(1, args), "1");
+assert.throws(TypeError, () => subtract.apply({}, args), "plain object");
+assert.throws(TypeError, () => subtract.apply(Temporal.Duration, args), "Temporal.Duration");
+assert.throws(TypeError, () => subtract.apply(Temporal.Duration.prototype, args), "Temporal.Duration.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/toStringTag/prop-desc.js
new file mode 100644
index 0000000..39e847f
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/toStringTag/prop-desc.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.duration.prototype-@@tostringtag
+description: The @@toStringTag property of Temporal.Duration
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.Duration.prototype, Symbol.toStringTag, {
+  value: "Temporal.Duration",
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/total/branding.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/total/branding.js
index a6841b0b..325012a 100644
--- a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/total/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/total/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof total, "function");
 
-assert.throws(TypeError, () => total.call(undefined), "undefined");
-assert.throws(TypeError, () => total.call(null), "null");
-assert.throws(TypeError, () => total.call(true), "true");
-assert.throws(TypeError, () => total.call(""), "empty string");
-assert.throws(TypeError, () => total.call(Symbol()), "symbol");
-assert.throws(TypeError, () => total.call(1), "1");
-assert.throws(TypeError, () => total.call({}), "plain object");
-assert.throws(TypeError, () => total.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => total.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
+const args = ["hour"];
+
+assert.throws(TypeError, () => total.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => total.apply(null, args), "null");
+assert.throws(TypeError, () => total.apply(true, args), "true");
+assert.throws(TypeError, () => total.apply("", args), "empty string");
+assert.throws(TypeError, () => total.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => total.apply(1, args), "1");
+assert.throws(TypeError, () => total.apply({}, args), "plain object");
+assert.throws(TypeError, () => total.apply(Temporal.Duration, args), "Temporal.Duration");
+assert.throws(TypeError, () => total.apply(Temporal.Duration.prototype, args), "Temporal.Duration.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/with/branding.js b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/with/branding.js
index b04b2fe..3df3c4f 100644
--- a/JSTests/test262/test/built-ins/Temporal/Duration/prototype/with/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/prototype/with/branding.js
@@ -11,14 +11,14 @@
 
 assert.sameValue(typeof with_, "function");
 
-const arg = { years: 3 };
+const args = [{ years: 3 }];
 
-assert.throws(TypeError, () => with_.call(undefined, arg), "undefined");
-assert.throws(TypeError, () => with_.call(null, arg), "null");
-assert.throws(TypeError, () => with_.call(true, arg), "true");
-assert.throws(TypeError, () => with_.call("", arg), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol(), arg), "symbol");
-assert.throws(TypeError, () => with_.call(1, arg), "1");
-assert.throws(TypeError, () => with_.call({}, arg), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.Duration, arg), "Temporal.Duration");
-assert.throws(TypeError, () => with_.call(Temporal.Duration.prototype, arg), "Temporal.Duration.prototype");
+assert.throws(TypeError, () => with_.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => with_.apply(null, args), "null");
+assert.throws(TypeError, () => with_.apply(true, args), "true");
+assert.throws(TypeError, () => with_.apply("", args), "empty string");
+assert.throws(TypeError, () => with_.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => with_.apply(1, args), "1");
+assert.throws(TypeError, () => with_.apply({}, args), "plain object");
+assert.throws(TypeError, () => with_.apply(Temporal.Duration, args), "Temporal.Duration");
+assert.throws(TypeError, () => with_.apply(Temporal.Duration.prototype, args), "Temporal.Duration.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Duration/subclass.js b/JSTests/test262/test/built-ins/Temporal/Duration/subclass.js
new file mode 100644
index 0000000..7363d21
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Duration/subclass.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.duration
+description: Test for Temporal.Duration subclassing.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+class CustomDuration extends Temporal.Duration {
+}
+
+const instance = new CustomDuration(1, 1, 0, 1);
+TemporalHelpers.assertDuration(instance, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0);
+assert.sameValue(Object.getPrototypeOf(instance), CustomDuration.prototype, "Instance of CustomDuration");
+assert(instance instanceof CustomDuration, "Instance of CustomDuration");
+assert(instance instanceof Temporal.Duration, "Instance of Temporal.Duration");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/compare/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/Instant/compare/argument-string-invalid.js
new file mode 100644
index 0000000..1687124
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/compare/argument-string-invalid.js
@@ -0,0 +1,71 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.compare
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+
+const epoch = new Temporal.Instant(0n);
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => Temporal.Instant.compare(arg, epoch),
+    `"${arg}" should not be a valid ISO string for an Instant (first argument)`
+  );
+  assert.throws(
+    RangeError,
+    () => Temporal.Instant.compare(epoch, arg),
+    `"${arg}" should not be a valid ISO string for an Instant (second argument)`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/compare/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Instant/compare/argument-string-time-separators.js
new file mode 100644
index 0000000..82cf3b5
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/compare/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.compare
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const epoch = new Temporal.Instant(0n);
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  assert.sameValue(
+    Temporal.Instant.compare(arg, epoch),
+    0,
+    `variant time separators (${description}), first argument`
+  );
+
+  assert.sameValue(
+    Temporal.Instant.compare(epoch, arg),
+    0,
+    `variant time separators (${description}), second argument`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/constructor.js b/JSTests/test262/test/built-ins/Temporal/Instant/constructor.js
index ec1d0d7..1b653c8 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/constructor.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/constructor.js
@@ -9,4 +9,4 @@
 features: [Temporal]
 ---*/
 
-assert.throws(TypeError, () => Temporal.Instant());
+assert.throws(TypeError, () => Temporal.Instant(0n));
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/from/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/Instant/from/argument-string-invalid.js
new file mode 100644
index 0000000..8797b8e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/from/argument-string-invalid.js
@@ -0,0 +1,64 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.from
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => Temporal.Instant.from(arg),
+    `"${arg}" should not be a valid ISO string for an Instant`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/from/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Instant/from/argument-string-time-separators.js
new file mode 100644
index 0000000..d179983
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/from/argument-string-time-separators.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.from
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  const result = Temporal.Instant.from(arg);
+
+  assert.sameValue(
+    result.epochNanoseconds,
+    0n,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/from/argument-string.js b/JSTests/test262/test/built-ins/Temporal/Instant/from/argument-string.js
new file mode 100644
index 0000000..be1af8e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/from/argument-string.js
@@ -0,0 +1,53 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.from
+description: Various string arguments.
+features: [Temporal]
+---*/
+
+const tests = [
+  ['1976-11-18T15:23z', 217178580000000000n],
+  ['1976-11-18T15:23:30.1Z', 217178610100000000n],
+  ['1976-11-18T15:23:30.12Z', 217178610120000000n],
+  ['1976-11-18T15:23:30.123Z', 217178610123000000n],
+  ['1976-11-18T15:23:30.1234Z', 217178610123400000n],
+  ['1976-11-18T15:23:30.12345Z', 217178610123450000n],
+  ['1976-11-18T15:23:30.123456Z', 217178610123456000n],
+  ['1976-11-18T15:23:30.1234567Z', 217178610123456700n],
+  ['1976-11-18T15:23:30.12345678Z', 217178610123456780n],
+  ['1976-11-18T15:23:30.123456789Z', 217178610123456789n],
+  ['1976-11-18T15:23:30,12Z', 217178610120000000n],
+  ['1976-11-18T15:23:30.12\u221202:00', 217185810120000000n],
+  ['\u2212009999-11-18T15:23:30.12Z', -377677326989880000000n],
+  ['19761118T15:23:30.1+00:00', 217178610100000000n],
+  ['1976-11-18T152330.1+00:00', 217178610100000000n],
+  ['1976-11-18T15:23:30.1+0000', 217178610100000000n],
+  ['1976-11-18T152330.1+0000', 217178610100000000n],
+  ['19761118T15:23:30.1+0000', 217178610100000000n],
+  ['19761118T152330.1+00:00', 217178610100000000n],
+  ['+0019761118T15:23:30.1+00:00', 217178610100000000n],
+  ['+001976-11-18T152330.1+00:00', 217178610100000000n],
+  ['+001976-11-18T15:23:30.1+0000', 217178610100000000n],
+  ['+001976-11-18T152330.1+0000', 217178610100000000n],
+  ['+0019761118T15:23:30.1+0000', 217178610100000000n],
+  ['+0019761118T152330.1+00:00', 217178610100000000n],
+  ['+0019761118T152330.1+0000', 217178610100000000n],
+  ['1976-11-18T15:23:30+00', 217178610000000000n],
+  ['1976-11-18T15Z', 217177200000000000n],
+  ['1976-11-18T15:23:30.123456789Z[u-ca=discord]', 217178610123456789n],
+  ['1976-11-18T15:23:30.123456789Z[+00]', 217178610123456789n],
+  ['1976-11-18T15:23:30.123456789Z[+00:00]', 217178610123456789n],
+  ['1976-11-18T15:23:30.123456789Z[-00]', 217178610123456789n],
+  ['1976-11-18T15:23:30.123456789Z[-00:00]', 217178610123456789n],
+  ['1976-11-18T15:23:30.123456789Z[+12]', 217178610123456789n],
+  ['1976-11-18T15:23:30.123456789Z[UTC]', 217178610123456789n],
+  ['1976-11-18T15:23:30.123456789Z[Europe/Paris]', 217178610123456789n],
+  ['1976-11-18T15:23:30.123456789Z[NotATimeZone]', 217178610123456789n],
+];
+
+for (const [arg, expected] of tests) {
+  const result = Temporal.Instant.from(arg);
+  assert.sameValue(result.epochNanoseconds, expected, `Instant.from(${arg})`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/add/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/add/argument-string-negative-fractional-units.js
index 9fee0fa..fa7b07b 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/add/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/add/argument-string-negative-fractional-units.js
@@ -10,7 +10,7 @@
 const instance = new Temporal.Instant(1_000_000_000_000_000_000n);
 
 const resultHours = instance.add("-PT24.567890123H");
-assert.sameValue(resultHours.epochNanoseconds, 999_911_555_595_557_201n, "negative fractional hours");
+assert.sameValue(resultHours.epochNanoseconds, 999_911_555_595_557_200n, "negative fractional hours");
 
 const resultMinutes = instance.add("-PT1440.567890123M");
-assert.sameValue(resultMinutes.epochNanoseconds, 999_913_565_926_592_621n, "negative fractional minutes");
+assert.sameValue(resultMinutes.epochNanoseconds, 999_913_565_926_592_620n, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/add/branding.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/add/branding.js
index cccdbf6..996c907 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/add/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/add/branding.js
@@ -11,14 +11,14 @@
 
 assert.sameValue(typeof add, "function");
 
-const arg = new Temporal.Duration(0, 0, 0, 0, 5);
+const args = [new Temporal.Duration(0, 0, 0, 0, 5)];
 
-assert.throws(TypeError, () => add.call(undefined, arg), "undefined");
-assert.throws(TypeError, () => add.call(null, arg), "null");
-assert.throws(TypeError, () => add.call(true, arg), "true");
-assert.throws(TypeError, () => add.call("", arg), "empty string");
-assert.throws(TypeError, () => add.call(Symbol(), arg), "symbol");
-assert.throws(TypeError, () => add.call(1, arg), "1");
-assert.throws(TypeError, () => add.call({}, arg), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.Instant, arg), "Temporal.Instant");
-assert.throws(TypeError, () => add.call(Temporal.Instant.prototype, arg), "Temporal.Instant.prototype");
+assert.throws(TypeError, () => add.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => add.apply(null, args), "null");
+assert.throws(TypeError, () => add.apply(true, args), "true");
+assert.throws(TypeError, () => add.apply("", args), "empty string");
+assert.throws(TypeError, () => add.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => add.apply(1, args), "1");
+assert.throws(TypeError, () => add.apply({}, args), "plain object");
+assert.throws(TypeError, () => add.apply(Temporal.Instant, args), "Temporal.Instant");
+assert.throws(TypeError, () => add.apply(Temporal.Instant.prototype, args), "Temporal.Instant.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/constructor.js
new file mode 100644
index 0000000..a93677d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.prototype.constructor
+description: Test for Temporal.Instant.prototype.constructor.
+info: The initial value of Temporal.Instant.prototype.constructor is %Temporal.Instant%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.Instant.prototype, "constructor", {
+  value: Temporal.Instant,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/argument-string-invalid.js
new file mode 100644
index 0000000..581de1c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/argument-string-invalid.js
@@ -0,0 +1,66 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.prototype.equals
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+
+const instance = new Temporal.Instant(0n);
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => instance.equals(arg),
+    `"${arg}" should not be a valid ISO string for an Instant`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/argument-string-time-separators.js
new file mode 100644
index 0000000..4fb47ea
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.prototype.equals
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+const instance = new Temporal.Instant(0n);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.equals(arg);
+
+  assert.sameValue(
+    result,
+    true,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/branding.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/branding.js
index 5aafe30..2a02133 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/equals/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof equals, "function");
 
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => equals.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
+const args = [new Temporal.Instant(123456n)];
+
+assert.throws(TypeError, () => equals.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => equals.apply(null, args), "null");
+assert.throws(TypeError, () => equals.apply(true, args), "true");
+assert.throws(TypeError, () => equals.apply("", args), "empty string");
+assert.throws(TypeError, () => equals.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => equals.apply(1, args), "1");
+assert.throws(TypeError, () => equals.apply({}, args), "plain object");
+assert.throws(TypeError, () => equals.apply(Temporal.Instant, args), "Temporal.Instant");
+assert.throws(TypeError, () => equals.apply(Temporal.Instant.prototype, args), "Temporal.Instant.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/round/branding.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/round/branding.js
index 116f31b..7231383 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/round/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/round/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof round, "function");
 
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => round.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
+const args = ["hour"];
+
+assert.throws(TypeError, () => round.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => round.apply(null, args), "null");
+assert.throws(TypeError, () => round.apply(true, args), "true");
+assert.throws(TypeError, () => round.apply("", args), "empty string");
+assert.throws(TypeError, () => round.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => round.apply(1, args), "1");
+assert.throws(TypeError, () => round.apply({}, args), "plain object");
+assert.throws(TypeError, () => round.apply(Temporal.Instant, args), "Temporal.Instant");
+assert.throws(TypeError, () => round.apply(Temporal.Instant.prototype, args), "Temporal.Instant.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/argument-string-invalid.js
new file mode 100644
index 0000000..9ce112b
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/argument-string-invalid.js
@@ -0,0 +1,66 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.prototype.since
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+
+const instance = new Temporal.Instant(0n);
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => instance.since(arg),
+    `"${arg}" should not be a valid ISO string for an Instant`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/argument-string-time-separators.js
new file mode 100644
index 0000000..6dbacec
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.prototype.since
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+const instance = new Temporal.Instant(0n);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.since(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/branding.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/branding.js
index 0716c62..87f70cd 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/since/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof since, "function");
 
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => since.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
+const args = [new Temporal.Instant(123456n)];
+
+assert.throws(TypeError, () => since.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => since.apply(null, args), "null");
+assert.throws(TypeError, () => since.apply(true, args), "true");
+assert.throws(TypeError, () => since.apply("", args), "empty string");
+assert.throws(TypeError, () => since.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => since.apply(1, args), "1");
+assert.throws(TypeError, () => since.apply({}, args), "plain object");
+assert.throws(TypeError, () => since.apply(Temporal.Instant, args), "Temporal.Instant");
+assert.throws(TypeError, () => since.apply(Temporal.Instant.prototype, args), "Temporal.Instant.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/subtract/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/subtract/argument-string-negative-fractional-units.js
index 4ae5476..4ccd922 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/subtract/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/subtract/argument-string-negative-fractional-units.js
@@ -10,7 +10,7 @@
 const instance = new Temporal.Instant(1_000_000_000_000_000_000n);
 
 const resultHours = instance.subtract("-PT24.567890123H");
-assert.sameValue(resultHours.epochNanoseconds, 1_000_088_444_404_442_799n, "negative fractional hours");
+assert.sameValue(resultHours.epochNanoseconds, 1_000_088_444_404_442_800n, "negative fractional hours");
 
 const resultMinutes = instance.subtract("-PT1440.567890123M");
-assert.sameValue(resultMinutes.epochNanoseconds, 1_000_086_434_073_407_379n, "negative fractional minutes");
+assert.sameValue(resultMinutes.epochNanoseconds, 1_000_086_434_073_407_380n, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/subtract/branding.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/subtract/branding.js
index a7aac12..55c7e45 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/subtract/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/subtract/branding.js
@@ -11,14 +11,14 @@
 
 assert.sameValue(typeof subtract, "function");
 
-const arg = new Temporal.Duration(0, 0, 0, 0, 5);
+const args = [new Temporal.Duration(0, 0, 0, 0, 5)];
 
-assert.throws(TypeError, () => subtract.call(undefined, arg), "undefined");
-assert.throws(TypeError, () => subtract.call(null, arg), "null");
-assert.throws(TypeError, () => subtract.call(true, arg), "true");
-assert.throws(TypeError, () => subtract.call("", arg), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol(), arg), "symbol");
-assert.throws(TypeError, () => subtract.call(1, arg), "1");
-assert.throws(TypeError, () => subtract.call({}, arg), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.Instant, arg), "Temporal.Instant");
-assert.throws(TypeError, () => subtract.call(Temporal.Instant.prototype, arg), "Temporal.Instant.prototype");
+assert.throws(TypeError, () => subtract.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => subtract.apply(null, args), "null");
+assert.throws(TypeError, () => subtract.apply(true, args), "true");
+assert.throws(TypeError, () => subtract.apply("", args), "empty string");
+assert.throws(TypeError, () => subtract.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => subtract.apply(1, args), "1");
+assert.throws(TypeError, () => subtract.apply({}, args), "plain object");
+assert.throws(TypeError, () => subtract.apply(Temporal.Instant, args), "Temporal.Instant");
+assert.throws(TypeError, () => subtract.apply(Temporal.Instant.prototype, args), "Temporal.Instant.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toJSON/basic.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toJSON/basic.js
index 9e65443..fd6ed3d 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toJSON/basic.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toJSON/basic.js
@@ -1,16 +1,23 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
 esid: sec-temporal.instant.prototype.tojson
-description: Basic tests for toJSON()
-features: [Temporal]
+description: Basic behavior for toJSON
+features: [BigInt, Temporal]
 ---*/
 
-const instantBeforeEpoch = Temporal.Instant.from("1963-02-13T10:36:29.123456789+01:00");
-assert.sameValue(instantBeforeEpoch.toJSON(), "1963-02-13T09:36:29.123456789Z");
+const tests = [
+  [new Temporal.Instant(192_258_181_000_000_000n), "1976-02-04T05:03:01Z"],
+  [new Temporal.Instant(0n), "1970-01-01T00:00:00Z"],
+  [new Temporal.Instant(30_000_000_000n), "1970-01-01T00:00:30Z"],
+  [new Temporal.Instant(30_123_400_000n), "1970-01-01T00:00:30.1234Z"],
+];
 
-const instantAfterEpoch = Temporal.Instant.from("1976-11-18T15:23:30.123456789+01:00");
-assert.sameValue(instantAfterEpoch.toJSON(), "1976-11-18T14:23:30.123456789Z");
-assert.sameValue(instantAfterEpoch.toJSON("+01:00"), "1976-11-18T14:23:30.123456789Z",
-  "after epoch with ignored argument");
+const options = new Proxy({}, {
+  get() { throw new Test262Error("should not get properties off argument") }
+});
+for (const [instant, expected] of tests) {
+  assert.sameValue(instant.toJSON(), expected, "toJSON without argument");
+  assert.sameValue(instant.toJSON(options), expected, "toJSON with argument");
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-auto.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-auto.js
index 5e37b7f..6c47829 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-auto.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-auto.js
@@ -7,14 +7,11 @@
 features: [BigInt, Temporal]
 ---*/
 
-const zeroSeconds = new Temporal.Instant(0n);
-const wholeSeconds = new Temporal.Instant(30_000_000_000n);
-const subSeconds = new Temporal.Instant(30_123_400_000n);
-
 const tests = [
-  [zeroSeconds, "1970-01-01T00:00:00Z"],
-  [wholeSeconds, "1970-01-01T00:00:30Z"],
-  [subSeconds, "1970-01-01T00:00:30.1234Z"],
+  [new Temporal.Instant(192_258_181_000_000_000n), "1976-02-04T05:03:01Z"],
+  [new Temporal.Instant(0n), "1970-01-01T00:00:00Z"],
+  [new Temporal.Instant(30_000_000_000n), "1970-01-01T00:00:30Z"],
+  [new Temporal.Instant(30_123_400_000n), "1970-01-01T00:00:30.1234Z"],
 ];
 
 for (const [instant, expected] of tests) {
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-number.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-number.js
index e6ba963..f79500d 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-number.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-number.js
@@ -7,10 +7,13 @@
 features: [BigInt, Temporal]
 ---*/
 
+const fewSeconds = new Temporal.Instant(192_258_181_000_000_000n);
 const zeroSeconds = new Temporal.Instant(0n);
 const wholeSeconds = new Temporal.Instant(30_000_000_000n);
 const subSeconds = new Temporal.Instant(30_123_400_000n);
 
+assert.sameValue(fewSeconds.toString({ fractionalSecondDigits: 0 }), "1976-02-04T05:03:01Z",
+  "pads parts with 0");
 assert.sameValue(subSeconds.toString({ fractionalSecondDigits: 0 }), "1970-01-01T00:00:30Z",
   "truncates 4 decimal places to 0");
 assert.sameValue(zeroSeconds.toString({ fractionalSecondDigits: 2 }), "1970-01-01T00:00:00.00Z",
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-undefined.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-undefined.js
index be0fbf7..05b0d85 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-undefined.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toString/fractionalseconddigits-undefined.js
@@ -16,14 +16,11 @@
 features: [Temporal]
 ---*/
 
-const zeroSeconds = new Temporal.Instant(0n);
-const wholeSeconds = new Temporal.Instant(30_000_000_000n);
-const subSeconds = new Temporal.Instant(30_123_400_000n);
-
 const tests = [
-  [zeroSeconds, "1970-01-01T00:00:00Z"],
-  [wholeSeconds, "1970-01-01T00:00:30Z"],
-  [subSeconds, "1970-01-01T00:00:30.1234Z"],
+  [new Temporal.Instant(192_258_181_000_000_000n), "1976-02-04T05:03:01Z"],
+  [new Temporal.Instant(0n), "1970-01-01T00:00:00Z"],
+  [new Temporal.Instant(30_000_000_000n), "1970-01-01T00:00:30Z"],
+  [new Temporal.Instant(30_123_400_000n), "1970-01-01T00:00:30.1234Z"],
 ];
 
 for (const [instant, expected] of tests) {
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toStringTag/prop-desc.js
index 90e55d4..74a41b0 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toStringTag/prop-desc.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toStringTag/prop-desc.js
@@ -8,8 +8,7 @@
 features: [Temporal]
 ---*/
 
-const { Instant } = Temporal;
-verifyProperty(Instant.prototype, Symbol.toStringTag, {
+verifyProperty(Temporal.Instant.prototype, Symbol.toStringTag, {
   value: "Temporal.Instant",
   writable: false,
   enumerable: false,
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/branding.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/branding.js
index 71409a3..3c68208 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof toZonedDateTime, "function");
 
-assert.throws(TypeError, () => toZonedDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTime.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTime.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTime.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
+const args = [{ calendar: new Temporal.Calendar("iso8601"), timeZone: new Temporal.TimeZone("UTC") }];
+
+assert.throws(TypeError, () => toZonedDateTime.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => toZonedDateTime.apply(null, args), "null");
+assert.throws(TypeError, () => toZonedDateTime.apply(true, args), "true");
+assert.throws(TypeError, () => toZonedDateTime.apply("", args), "empty string");
+assert.throws(TypeError, () => toZonedDateTime.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => toZonedDateTime.apply(1, args), "1");
+assert.throws(TypeError, () => toZonedDateTime.apply({}, args), "plain object");
+assert.throws(TypeError, () => toZonedDateTime.apply(Temporal.Instant, args), "Temporal.Instant");
+assert.throws(TypeError, () => toZonedDateTime.apply(Temporal.Instant.prototype, args), "Temporal.Instant.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/branding.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/branding.js
index 091591a..a5997e2 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof toZonedDateTimeISO, "function");
 
-assert.throws(TypeError, () => toZonedDateTimeISO.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTimeISO.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
+const args = [{ timeZone: new Temporal.TimeZone("UTC") }];
+
+assert.throws(TypeError, () => toZonedDateTimeISO.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => toZonedDateTimeISO.apply(null, args), "null");
+assert.throws(TypeError, () => toZonedDateTimeISO.apply(true, args), "true");
+assert.throws(TypeError, () => toZonedDateTimeISO.apply("", args), "empty string");
+assert.throws(TypeError, () => toZonedDateTimeISO.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => toZonedDateTimeISO.apply(1, args), "1");
+assert.throws(TypeError, () => toZonedDateTimeISO.apply({}, args), "plain object");
+assert.throws(TypeError, () => toZonedDateTimeISO.apply(Temporal.Instant, args), "Temporal.Instant");
+assert.throws(TypeError, () => toZonedDateTimeISO.apply(Temporal.Instant.prototype, args), "Temporal.Instant.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/argument-string-invalid.js
new file mode 100644
index 0000000..9658525
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/argument-string-invalid.js
@@ -0,0 +1,66 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.prototype.until
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+
+const instance = new Temporal.Instant(0n);
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => instance.until(arg),
+    `"${arg}" should not be a valid ISO string for an Instant`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/argument-string-time-separators.js
new file mode 100644
index 0000000..beb1b48
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.prototype.until
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+const instance = new Temporal.Instant(0n);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.until(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/branding.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/branding.js
index 70fb066..6ccbce1 100644
--- a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/until/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof until, "function");
 
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => until.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
+const args = [new Temporal.Instant(123456n)];
+
+assert.throws(TypeError, () => until.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => until.apply(null, args), "null");
+assert.throws(TypeError, () => until.apply(true, args), "true");
+assert.throws(TypeError, () => until.apply("", args), "empty string");
+assert.throws(TypeError, () => until.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => until.apply(1, args), "1");
+assert.throws(TypeError, () => until.apply({}, args), "plain object");
+assert.throws(TypeError, () => until.apply(Temporal.Instant, args), "Temporal.Instant");
+assert.throws(TypeError, () => until.apply(Temporal.Instant.prototype, args), "Temporal.Instant.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/prototype/valueOf/basic.js b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/valueOf/basic.js
new file mode 100644
index 0000000..6f4bcea
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/prototype/valueOf/basic.js
@@ -0,0 +1,21 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant.prototype.valueof
+description: Basic tests for valueOf().
+features: [Temporal]
+---*/
+
+const instant = new Temporal.Instant(100n);
+const instant2 = new Temporal.Instant(987654321n);
+
+assert.throws(TypeError, () => instant.valueOf(), "valueOf");
+assert.throws(TypeError, () => instant < instant, "<");
+assert.throws(TypeError, () => instant <= instant, "<=");
+assert.throws(TypeError, () => instant > instant, ">");
+assert.throws(TypeError, () => instant >= instant, ">=");
+assert.sameValue(instant === instant, true, "===");
+assert.sameValue(instant === instant2, false, "===");
+assert.sameValue(instant !== instant, false, "!==");
+assert.sameValue(instant !== instant2, true, "!==");
diff --git a/JSTests/test262/test/built-ins/Temporal/Instant/subclass.js b/JSTests/test262/test/built-ins/Temporal/Instant/subclass.js
new file mode 100644
index 0000000..8af21a1
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/Instant/subclass.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.instant
+description: Test for Temporal.Instant subclassing.
+features: [Temporal]
+---*/
+
+class CustomInstant extends Temporal.Instant {
+}
+
+const instance = new CustomInstant(0n);
+assert.sameValue(instance.epochNanoseconds, 0n);
+assert.sameValue(Object.getPrototypeOf(instance), CustomInstant.prototype, "Instance of CustomInstant");
+assert(instance instanceof CustomInstant, "Instance of CustomInstant");
+assert(instance instanceof Temporal.Instant, "Instance of Temporal.Instant");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/argument-convert.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/argument-convert.js
new file mode 100644
index 0000000..0e00a12
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/argument-convert.js
@@ -0,0 +1,53 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate
+description: PlainDate constructor with non-integer arguments.
+includes: [compareArray.js, temporalHelpers.js]
+features: [Temporal]
+---*/
+
+TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2020.6, 11.7, 24.1),
+  2020, 11, "M11", 24, "positive fractional");
+
+TemporalHelpers.assertPlainDate(new Temporal.PlainDate(-2020.6, 11.7, 24.1),
+  -2020, 11, "M11", 24, "negative fractional");
+
+TemporalHelpers.assertPlainDate(new Temporal.PlainDate(undefined, 11, 24),
+  0, 11, "M11", 24, "undefined");
+
+TemporalHelpers.assertPlainDate(new Temporal.PlainDate(null, 11, 24),
+  0, 11, "M11", 24, "null");
+
+TemporalHelpers.assertPlainDate(new Temporal.PlainDate(true, 11, 24),
+  1, 11, "M11", 24, "boolean");
+
+TemporalHelpers.assertPlainDate(new Temporal.PlainDate("2020.6", "11.7", "24.1"),
+  2020, 11, "M11", 24, "fractional strings");
+
+TemporalHelpers.assertPlainDate(new Temporal.PlainDate("invalid", 11, 24),
+  0, 11, "M11", 24, "invalid string");
+
+for (const invalid of [Symbol(), 1n]) {
+  assert.throws(TypeError, () => new Temporal.PlainDate(invalid, 11, 24), `year ${typeof invalid}`);
+  assert.throws(TypeError, () => new Temporal.PlainDate(2020, invalid, 24), `month ${typeof invalid}`);
+  assert.throws(TypeError, () => new Temporal.PlainDate(2020, 11, invalid), `day ${typeof invalid}`);
+}
+
+const actual = [];
+const args = [
+  TemporalHelpers.toPrimitiveObserver(actual, 2020, "year"),
+  TemporalHelpers.toPrimitiveObserver(actual, 11, "month"),
+  TemporalHelpers.toPrimitiveObserver(actual, 24, "day"),
+];
+TemporalHelpers.assertPlainDate(new Temporal.PlainDate(...args),
+  2020, 11, "M11", 24, "invalid string");
+assert.compareArray(actual, [
+  "get year.valueOf",
+  "call year.valueOf",
+  "get month.valueOf",
+  "call month.valueOf",
+  "get day.valueOf",
+  "call day.valueOf",
+]);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/argument-invalid.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/argument-invalid.js
new file mode 100644
index 0000000..2b9ea5d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/argument-invalid.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate
+description: PlainDate constructor with invalid iso dates
+features: [Temporal]
+---*/
+
+const tests = [
+  [2020, 0, 24],
+  [2020, 13, 24],
+  [2020, -3, 24],
+  [2020, 12, 32],
+  [2020, 2, 30],
+  [2019, 2, 29],
+  [2019, 2, 0],
+  [2019, 2, -20],
+];
+
+for (const [year, month, day] of tests) {
+  assert.throws(RangeError, () => new Temporal.PlainDate(year, month, day),
+    `year=${year}, month=${month}, day=${day}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-plaindatetime.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-plaindatetime.js
index a41d6b0..be83e03 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-plaindatetime.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-plaindatetime.js
@@ -15,14 +15,36 @@
 features: [Temporal]
 ---*/
 
-const date = new Temporal.PlainDate(2000, 5, 2);
+const sameDate = new Temporal.PlainDate(2000, 5, 2);
+const earlierDate = new Temporal.PlainDate(1920, 7, 3);
+const laterDate = new Temporal.PlainDate(2005, 1, 12);
 
 TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
-  const result = Temporal.PlainDate.compare(datetime, date);
-  assert.sameValue(result, 0, "comparison result");
-});
+  const result = Temporal.PlainDate.compare(datetime, sameDate);
+  assert.sameValue(result, 0, "First argument, same date: comparison result");
+}, "First argument, same date");
 
 TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
-  const result = Temporal.PlainDate.compare(date, datetime);
-  assert.sameValue(result, 0, "comparison result");
-});
+  const result = Temporal.PlainDate.compare(datetime, earlierDate);
+  assert.sameValue(result, 1, "First argument, earlier date: comparison result");
+}, "First argument, earlier date");
+
+TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
+  const result = Temporal.PlainDate.compare(datetime, laterDate);
+  assert.sameValue(result, -1, "First argument, later date: comparison result");
+}, "First argument, later date");
+
+TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
+  const result = Temporal.PlainDate.compare(sameDate, datetime);
+  assert.sameValue(result, 0, "Second argument, same date: comparison result");
+}, "Second argument, same date");
+
+TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
+  const result = Temporal.PlainDate.compare(earlierDate, datetime);
+  assert.sameValue(result, -1, "Second argument, earlier date: comparison result");
+}, "Second argument, earlier date");
+
+TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
+  const result = Temporal.PlainDate.compare(laterDate, datetime);
+  assert.sameValue(result, 1, "Second argument, later date: comparison result");
+}, "Second argument, later date");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-string-time-separators.js
new file mode 100644
index 0000000..3f9ecb4
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.compare
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const date = new Temporal.PlainDate(2000, 5, 2);
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  assert.sameValue(
+    Temporal.PlainDate.compare(arg, date),
+    0,
+    `variant time separators (${description}), first argument`
+  );
+
+  assert.sameValue(
+    Temporal.PlainDate.compare(date, arg),
+    0,
+    `variant time separators (${description}), second argument`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..cea7713
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.compare
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+Temporal.PlainDate.compare(arg, new Temporal.PlainDate(1976, 11, 18));
+Temporal.PlainDate.compare(new Temporal.PlainDate(1976, 11, 18), arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-zoneddatetime.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-zoneddatetime.js
new file mode 100644
index 0000000..5decb5a
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/compare/argument-zoneddatetime.js
@@ -0,0 +1,22 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.compare
+description: ZonedDateTime is supported.
+features: [Temporal]
+---*/
+
+const zdt = new Temporal.ZonedDateTime(0n, "UTC");
+assert.sameValue(
+  Temporal.PlainDate.compare(zdt, new Temporal.PlainDate(1970, 1, 1)),
+  0, "same date, ZDT first");
+assert.sameValue(
+  Temporal.PlainDate.compare(new Temporal.PlainDate(1970, 1, 1), zdt),
+  0, "same date, ZDT second");
+assert.sameValue(
+  Temporal.PlainDate.compare(zdt, new Temporal.PlainDate(1976, 11, 18)),
+  -1, "different date, ZDT first");
+assert.sameValue(
+  Temporal.PlainDate.compare(new Temporal.PlainDate(1976, 11, 18), zdt),
+  1, "different date, ZDT second");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/constructor.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/constructor.js
index 67400c0..ba24a20 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/constructor.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/constructor.js
@@ -9,4 +9,4 @@
 features: [Temporal]
 ---*/
 
-assert.throws(TypeError, () => Temporal.PlainDate());
+assert.throws(TypeError, () => Temporal.PlainDate(1970, 1, 2));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/leap-second.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/PlainDate/from/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-plaindate.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-plaindate.js
index 6eb685f..5dbdceb 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-plaindate.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-plaindate.js
@@ -8,7 +8,8 @@
 features: [Temporal]
 ---*/
 
-const orig = new Temporal.PlainDate(2000, 5, 2);
+const calendar = new Temporal.Calendar("iso8601");
+const orig = new Temporal.PlainDate(2000, 5, 2, calendar);
 const result = Temporal.PlainDate.from(orig);
 
 TemporalHelpers.assertPlainDate(
@@ -17,6 +18,12 @@
   "PlainDate is copied"
 );
 
+assert.sameValue(
+  result.calendar,
+  calendar,
+  "Calendar is copied"
+);
+
 assert.notSameValue(
   result,
   orig,
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-propertybag-calendar.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-propertybag-calendar.js
new file mode 100644
index 0000000..8747c7e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-propertybag-calendar.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.from
+description: Property bag is correctly converted into PlainDate
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = new Temporal.Calendar("iso8601");
+const plainDate = Temporal.PlainDate.from({ year: 1976, month: 11, day: 18, calendar });
+TemporalHelpers.assertPlainDate(plainDate, 1976, 11, "M11", 18);
+assert.sameValue(plainDate.calendar, calendar);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-string-time-separators.js
new file mode 100644
index 0000000..31e8f4b
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-string-time-separators.js
@@ -0,0 +1,25 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.from
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  const result = Temporal.PlainDate.from(arg);
+
+  TemporalHelpers.assertPlainDate(
+    result,
+    2000, 5, "M05", 2,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..658e86c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.from
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.PlainDate(1976, 11, 18);
+
+assert.throws(Test262Error, () => Temporal.PlainDate.from(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..0341c0c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime-slots.js
@@ -0,0 +1,36 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.from
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+Temporal.PlainDate.from(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime.js
new file mode 100644
index 0000000..133ea14
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/argument-zoneddatetime.js
@@ -0,0 +1,25 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.from
+description: A ZonedDateTime object is handled separately
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = new Temporal.Calendar("iso8601");
+const zdt = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
+const result = Temporal.PlainDate.from(zdt);
+
+TemporalHelpers.assertPlainDate(
+  result,
+  2001, 9, "M09", 9,
+  "ZonedDateTime is converted"
+);
+
+assert.sameValue(
+  result.calendar,
+  calendar,
+  "Calendar is copied"
+);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/options-invalid.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/options-invalid.js
deleted file mode 100644
index 615c95c..0000000
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/options-invalid.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const fields = { year: 2000, month: 11, day: 2 };
-
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
-  assert.throws(TypeError, () => Temporal.PlainDate.from(fields, badOptions));
-}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/overflow-invalid-string.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/overflow-invalid-string.js
index 27e4999..f33ca21 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/from/overflow-invalid-string.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/from/overflow-invalid-string.js
@@ -27,13 +27,6 @@
   { year: 2000, month: 5, day: 2 },
   "2000-05-02",
 ];
-const invalidOverflow = [
-  "",
-  "other string",
-  "balance",
-  "CONSTRAIN",
-  "constra\u0131n",
-];
 
 const badOverflows = ["", "CONSTRAIN", "balance", "other string", "constra\u0131n", "reject\0"];
 for (const item of validItems) {
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/branding.js
index b60ec44..fe9b336 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof add, "function");
 
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => add.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
+const args = [new Temporal.Duration(5)];
+
+assert.throws(TypeError, () => add.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => add.apply(null, args), "null");
+assert.throws(TypeError, () => add.apply(true, args), "true");
+assert.throws(TypeError, () => add.apply("", args), "empty string");
+assert.throws(TypeError, () => add.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => add.apply(1, args), "1");
+assert.throws(TypeError, () => add.apply({}, args), "plain object");
+assert.throws(TypeError, () => add.apply(Temporal.PlainDate, args), "Temporal.PlainDate");
+assert.throws(TypeError, () => add.apply(Temporal.PlainDate.prototype, args), "Temporal.PlainDate.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/calendar-invalid-return.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/calendar-invalid-return.js
new file mode 100644
index 0000000..982c09e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/calendar-invalid-return.js
@@ -0,0 +1,36 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.add
+description: Throw when the returned value from the calendar's dateAdd method is not a PlainDate.
+features: [Temporal]
+---*/
+
+class CustomCalendar extends Temporal.Calendar {
+  constructor(value) {
+    super("iso8601");
+    this.value = value;
+  }
+  dateAdd() {
+    return this.value;
+  }
+}
+
+const tests = [
+  [undefined],
+  [null, "null"],
+  [true],
+  ["2000-05"],
+  [Symbol()],
+  [200005],
+  [200005n],
+  [{}, "plain object"],
+  [() => {}, "lambda"],
+  [Temporal.PlainDate, "Temporal.PlainDate"],
+  [Temporal.PlainDate.prototype, "Temporal.PlainDate.prototype"],
+];
+for (const [test, description = typeof test] of tests) {
+  const plainDate = new Temporal.PlainDate(2000, 5, 2, new CustomCalendar(test));
+  assert.throws(TypeError, () => plainDate.add({ years: 1 }), `Expected error with ${description}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/custom.js
new file mode 100644
index 0000000..5e449dc
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/custom.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.add
+description: Basic tests with custom calendar
+includes: [compareArray.js,temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const result = new Temporal.PlainDate(1920, 5, 3);
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  dateAdd(...args) {
+    ++calls;
+    assert.sameValue(args.length, 3, "Three arguments");
+    assert.sameValue(args[0], plainDate, "First argument");
+    TemporalHelpers.assertDuration(args[1], 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Second argument");
+    assert.sameValue(typeof args[2], "object", "Third argument: type");
+    assert.sameValue(Object.getPrototypeOf(args[2]), null, "Third argument: prototype");
+    assert.compareArray(Object.keys(args[2]), [], "Third argument: keys");
+    return result;
+  }
+}
+const calendar = new CustomCalendar();
+const plainDate = new Temporal.PlainDate(1976, 11, 18, calendar);
+assert.sameValue(plainDate.add({ years: 43 }), result);
+assert.sameValue(calls, 1);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/options-invalid.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/options-invalid.js
deleted file mode 100644
index 6788944..0000000
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/options-invalid.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(2000, 1, 31);
-const duration = { months: 1 };
-
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
-  assert.throws(TypeError, () => plainDate.add(duration, badOptions));
-}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/overflow-constrain.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/overflow-constrain.js
index 68cc468..8ce45d4 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/overflow-constrain.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/add/overflow-constrain.js
@@ -9,7 +9,5 @@
 ---*/
 
 const jan31 = Temporal.PlainDate.from("2020-01-31");
-TemporalHelpers.assertPlainDate(jan31.add({ months: 1 }),
-  2020, 2, "M02", 29, "implicit");
 TemporalHelpers.assertPlainDate(jan31.add({ months: 1 }, { overflow: "constrain" }),
-  2020, 2, "M02", 29, "explicit");
+  2020, 2, "M02", 29);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/constructor.js
new file mode 100644
index 0000000..dae8f18
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.constructor
+description: Test for Temporal.PlainDate.prototype.constructor.
+info: The initial value of Temporal.PlainDate.prototype.constructor is %Temporal.PlainDate%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainDate.prototype, "constructor", {
+  value: Temporal.PlainDate,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/dayOfWeek/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/dayOfWeek/custom.js
new file mode 100644
index 0000000..faadc30
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/dayOfWeek/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.dayofweek
+description: Custom calendar tests for dayOfWeek().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  dayOfWeek(...args) {
+    ++calls;
+    assert.compareArray(args, [pd], "dayOfWeek arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pd = new Temporal.PlainDate(1830, 8, 25, calendar);
+const result = pd.dayOfWeek;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/dayOfYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/dayOfYear/custom.js
new file mode 100644
index 0000000..f435eec
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/dayOfYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.dayofyear
+description: Custom calendar tests for dayOfYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  dayOfYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pd], "dayOfYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pd = new Temporal.PlainDate(1830, 8, 25, calendar);
+const result = pd.dayOfYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInMonth/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInMonth/basic.js
new file mode 100644
index 0000000..fb2cc1c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInMonth/basic.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.daysinmonth
+description: Checking days in month for a "normal" case (non-undefined, non-boundary case, etc.)
+features: [Temporal]
+---*/
+
+const tests = [
+  [new Temporal.PlainDate(1976, 2, 18), 29],
+  [new Temporal.PlainDate(1976, 11, 18), 30],
+  [new Temporal.PlainDate(1976, 12, 18), 31],
+  [new Temporal.PlainDate(1977, 2, 18), 28],
+];
+for (const [plainDate, expected] of tests) {
+  assert.sameValue(plainDate.daysInMonth, expected, `${expected} days in the month of ${plainDate}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInMonth/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInMonth/custom.js
new file mode 100644
index 0000000..9ad671a
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInMonth/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.daysinmonth
+description: Custom calendar tests for daysInMonth().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  daysInMonth(...args) {
+    ++calls;
+    assert.compareArray(args, [pd], "daysInMonth arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pd = new Temporal.PlainDate(1830, 8, 25, calendar);
+const result = pd.daysInMonth;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInWeek/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInWeek/basic.js
index c3eccf9..4a13d1b 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInWeek/basic.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInWeek/basic.js
@@ -7,5 +7,11 @@
 features: [Temporal]
 ---*/
 
-const plainDate = new Temporal.PlainDate(1976, 11, 18);
-assert.sameValue(plainDate.daysInWeek, 7);
+const tests = [
+  new Temporal.PlainDate(1976, 1, 1),
+  new Temporal.PlainDate(1976, 11, 18),
+  new Temporal.PlainDate(1976, 12, 31),
+];
+for (const plainDate of tests) {
+  assert.sameValue(plainDate.daysInWeek, 7, `Seven days in the week of ${plainDate}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInWeek/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInWeek/custom.js
new file mode 100644
index 0000000..f181ac8
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInWeek/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.daysinweek
+description: Custom calendar tests for daysInWeek().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  daysInWeek(...args) {
+    ++calls;
+    assert.compareArray(args, [pd], "daysInWeek arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pd = new Temporal.PlainDate(1830, 8, 25, calendar);
+const result = pd.daysInWeek;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInYear/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInYear/basic.js
new file mode 100644
index 0000000..a2baf72
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInYear/basic.js
@@ -0,0 +1,11 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.daysinyear
+description: Basic tests for daysInYear.
+features: [Temporal]
+---*/
+
+assert.sameValue((new Temporal.PlainDate(1976, 11, 18)).daysInYear, 366, "leap year");
+assert.sameValue((new Temporal.PlainDate(1977, 11, 18)).daysInYear, 365, "non-leap year");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInYear/custom.js
new file mode 100644
index 0000000..1878dee
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/daysInYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.daysinyear
+description: Custom calendar tests for daysInYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  daysInYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pd], "daysInYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pd = new Temporal.PlainDate(1830, 8, 25, calendar);
+const result = pd.daysInYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/leap-second.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-string-time-separators.js
new file mode 100644
index 0000000..0bda78f
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.equals
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainDate(2000, 5, 2);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.equals(arg);
+
+  assert.sameValue(
+    result,
+    true,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..2e2b82d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.equals
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.PlainDate(1976, 11, 18);
+
+assert.throws(Test262Error, () => instance.equals(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..89a5e5b
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.equals
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.PlainDate(1976, 11, 18);
+instance.equals(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/branding.js
index 58c78e6..c2d9576 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/equals/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof equals, "function");
 
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => equals.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
+const args = [new Temporal.PlainDate(2022, 6, 22)];
+
+assert.throws(TypeError, () => equals.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => equals.apply(null, args), "null");
+assert.throws(TypeError, () => equals.apply(true, args), "true");
+assert.throws(TypeError, () => equals.apply("", args), "empty string");
+assert.throws(TypeError, () => equals.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => equals.apply(1, args), "1");
+assert.throws(TypeError, () => equals.apply({}, args), "plain object");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainDate, args), "Temporal.PlainDate");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainDate.prototype, args), "Temporal.PlainDate.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/getISOFields/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/getISOFields/custom.js
new file mode 100644
index 0000000..0e9e7a3
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/getISOFields/custom.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.getisofields
+description: getISOFields does not call into user code.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = TemporalHelpers.calendarThrowEverything();
+const instance = new Temporal.PlainDate(2000, 5, 2, calendar);
+const result = instance.getISOFields();
+
+assert.sameValue(result.isoYear, 2000, "isoYear result");
+assert.sameValue(result.isoMonth, 5, "isoMonth result");
+assert.sameValue(result.isoDay, 2, "isoDay result");
+assert.sameValue(result.calendar, calendar, "calendar result");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/getISOFields/prototype.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/getISOFields/prototype.js
new file mode 100644
index 0000000..769df65
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/getISOFields/prototype.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.getisofields
+description: Correct prototype on the object returned from getISOFields
+features: [Temporal]
+---*/
+
+const instance = new Temporal.PlainDate(2000, 5, 2);
+const result = instance.getISOFields();
+assert.sameValue(Object.getPrototypeOf(result), Object.prototype, "prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/inLeapYear/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/inLeapYear/basic.js
new file mode 100644
index 0000000..f6def8c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/inLeapYear/basic.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.inleapyear
+description: Basic test for inLeapYear
+features: [Temporal]
+---*/
+
+assert.sameValue((new Temporal.PlainDate(1976, 11, 18)).inLeapYear,
+  true, "leap year");
+assert.sameValue((new Temporal.PlainDate(1977, 11, 18)).inLeapYear,
+  false, "non-leap year");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/inLeapYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/inLeapYear/custom.js
new file mode 100644
index 0000000..d8ca270
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/inLeapYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.inleapyear
+description: Custom calendar tests for inLeapYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  inLeapYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pd], "inLeapYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pd = new Temporal.PlainDate(1830, 8, 25, calendar);
+const result = pd.inLeapYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/monthsInYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/monthsInYear/custom.js
new file mode 100644
index 0000000..7a6a588
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/monthsInYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.monthsinyear
+description: Custom calendar tests for monthsInYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  monthsInYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pd], "monthsInYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pd = new Temporal.PlainDate(1830, 8, 25, calendar);
+const result = pd.monthsInYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/leap-second.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-string-time-separators.js
new file mode 100644
index 0000000..0c5b754
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.since
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainDate(2000, 5, 2);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.since(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..30c2ff3
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.since
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.PlainDate(1976, 11, 18);
+
+assert.throws(Test262Error, () => instance.since(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..2d59c35
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.since
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.PlainDate(1976, 11, 18);
+instance.since(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/branding.js
index 7b7ea57..e1c3b17 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof since, "function");
 
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => since.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
+const args = [new Temporal.PlainDate(2022, 6, 22)];
+
+assert.throws(TypeError, () => since.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => since.apply(null, args), "null");
+assert.throws(TypeError, () => since.apply(true, args), "true");
+assert.throws(TypeError, () => since.apply("", args), "empty string");
+assert.throws(TypeError, () => since.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => since.apply(1, args), "1");
+assert.throws(TypeError, () => since.apply({}, args), "plain object");
+assert.throws(TypeError, () => since.apply(Temporal.PlainDate, args), "Temporal.PlainDate");
+assert.throws(TypeError, () => since.apply(Temporal.PlainDate.prototype, args), "Temporal.PlainDate.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/calendar-invalid-return.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/calendar-invalid-return.js
new file mode 100644
index 0000000..6ecd46d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/calendar-invalid-return.js
@@ -0,0 +1,36 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.since
+description: Throw when the returned value from the calendar's dateUntil method is not a Duration.
+features: [Temporal]
+---*/
+
+class CustomCalendar extends Temporal.Calendar {
+  constructor(value) {
+    super("iso8601");
+    this.value = value;
+  }
+  dateUntil() {
+    return this.value;
+  }
+}
+
+const tests = [
+  [undefined],
+  [null, "null"],
+  [true],
+  ["2000-05"],
+  [Symbol()],
+  [200005],
+  [200005n],
+  [{}, "plain object"],
+  [() => {}, "lambda"],
+  [Temporal.Duration, "Temporal.Duration"],
+  [Temporal.Duration.prototype, "Temporal.Duration.prototype"],
+];
+for (const [test, description = typeof test] of tests) {
+  const plainDate = new Temporal.PlainDate(2000, 5, 2, new CustomCalendar(test));
+  assert.throws(TypeError, () => plainDate.since("2022-06-20"), `Expected error with ${description}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/custom.js
new file mode 100644
index 0000000..d768512
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/custom.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.since
+description: Basic tests with custom calendar
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const result = new Temporal.Duration(1, 3, 5, 7, 9);
+const options = {};
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  dateUntil(...args) {
+    ++calls;
+    assert.sameValue(args.length, 3, "Three arguments");
+    assert.sameValue(args[0], plainDate, "First argument");
+    assert.sameValue(args[1], other, "Second argument");
+    assert.sameValue(args[2].largestUnit, "day", "Third argument: largestUnit");
+    return result;
+  }
+}
+const calendar = new CustomCalendar();
+const plainDate = new Temporal.PlainDate(1976, 11, 18, calendar);
+const other = new Temporal.PlainDate(2022, 6, 20, calendar);
+TemporalHelpers.assertDuration(plainDate.since(other, options),
+  -1, -3, -5, -7, 0, 0, 0, 0, 0, 0, "result");
+assert.sameValue(calls, 1);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/options-invalid.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/options-invalid.js
deleted file mode 100644
index 58d2281..0000000
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/since/options-invalid.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const feb20 = Temporal.PlainDate.from("2020-02-01");
-const feb21 = Temporal.PlainDate.from("2021-02-01");
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
-  assert.throws(TypeError, () => feb21.since(feb20, badOptions));
-}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/branding.js
index fb89bca..dfc9dd6 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof subtract, "function");
 
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
+const args = [new Temporal.Duration(5)];
+
+assert.throws(TypeError, () => subtract.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => subtract.apply(null, args), "null");
+assert.throws(TypeError, () => subtract.apply(true, args), "true");
+assert.throws(TypeError, () => subtract.apply("", args), "empty string");
+assert.throws(TypeError, () => subtract.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => subtract.apply(1, args), "1");
+assert.throws(TypeError, () => subtract.apply({}, args), "plain object");
+assert.throws(TypeError, () => subtract.apply(Temporal.PlainDate, args), "Temporal.PlainDate");
+assert.throws(TypeError, () => subtract.apply(Temporal.PlainDate.prototype, args), "Temporal.PlainDate.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/calendar-invalid-return.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/calendar-invalid-return.js
new file mode 100644
index 0000000..574040a
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/calendar-invalid-return.js
@@ -0,0 +1,36 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.subtract
+description: Throw when the returned value from the calendar's dateAdd method is not a PlainDate.
+features: [Temporal]
+---*/
+
+class CustomCalendar extends Temporal.Calendar {
+  constructor(value) {
+    super("iso8601");
+    this.value = value;
+  }
+  dateAdd() {
+    return this.value;
+  }
+}
+
+const tests = [
+  [undefined],
+  [null, "null"],
+  [true],
+  ["2000-05"],
+  [Symbol()],
+  [200005],
+  [200005n],
+  [{}, "plain object"],
+  [() => {}, "lambda"],
+  [Temporal.PlainDate, "Temporal.PlainDate"],
+  [Temporal.PlainDate.prototype, "Temporal.PlainDate.prototype"],
+];
+for (const [test, description = typeof test] of tests) {
+  const plainDate = new Temporal.PlainDate(2000, 5, 2, new CustomCalendar(test));
+  assert.throws(TypeError, () => plainDate.subtract({ years: 1 }), `Expected error with ${description}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/custom.js
new file mode 100644
index 0000000..33098d5
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/custom.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.subtract
+description: Basic tests with custom calendar
+includes: [compareArray.js,temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const result = new Temporal.PlainDate(1920, 5, 3);
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  dateAdd(...args) {
+    ++calls;
+    assert.sameValue(args.length, 3, "Three arguments");
+    assert.sameValue(args[0], plainDate, "First argument");
+    TemporalHelpers.assertDuration(args[1], -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Second argument");
+    assert.sameValue(typeof args[2], "object", "Third argument: type");
+    assert.sameValue(Object.getPrototypeOf(args[2]), null, "Third argument: prototype");
+    assert.compareArray(Object.keys(args[2]), [], "Third argument: keys");
+    return result;
+  }
+}
+const calendar = new CustomCalendar();
+const plainDate = new Temporal.PlainDate(1976, 11, 18, calendar);
+assert.sameValue(plainDate.subtract({ years: 43 }), result);
+assert.sameValue(calls, 1);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/options-invalid.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/options-invalid.js
deleted file mode 100644
index 5d4f1c6..0000000
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/options-invalid.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(2000, 3, 31);
-const duration = { months: 1 };
-
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
-  assert.throws(TypeError, () => plainDate.subtract(duration, badOptions));
-}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/overflow-constrain.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/overflow-constrain.js
index 553f84e..c3f08f0 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/overflow-constrain.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/subtract/overflow-constrain.js
@@ -9,7 +9,5 @@
 ---*/
 
 const mar31 = Temporal.PlainDate.from("2020-03-31");
-TemporalHelpers.assertPlainDate(mar31.subtract({ months: 1 }),
-  2020, 2, "M02", 29, "implicit");
 TemporalHelpers.assertPlainDate(mar31.subtract({ months: 1 }, { overflow: "constrain" }),
-  2020, 2, "M02", 29, "explicit");
+  2020, 2, "M02", 29);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toJSON/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toJSON/basic.js
new file mode 100644
index 0000000..2d383ed
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toJSON/basic.js
@@ -0,0 +1,21 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.tojson
+description: Basic behavior for toJSON
+features: [Temporal]
+---*/
+
+const tests = [
+  [new Temporal.PlainDate(1976, 2, 4), "1976-02-04"],
+  [new Temporal.PlainDate(1976, 11, 18), "1976-11-18"],
+];
+
+const options = new Proxy({}, {
+  get() { throw new Test262Error("should not get properties off argument") }
+});
+for (const [datetime, expected] of tests) {
+  assert.sameValue(datetime.toJSON(), expected, "toJSON without argument");
+  assert.sameValue(datetime.toJSON(options), expected, "toJSON with argument");
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-object.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-object.js
new file mode 100644
index 0000000..1f01230
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-object.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.toplaindatetime
+description: Tests for toPlainDateTime() with an object argument.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const plainDate = new Temporal.PlainDate(2000, 5, 2);
+const calendar = { toString() { return "iso8601" } };
+const withOverflow = plainDate.toPlainDateTime({ hour: 25, minute: 70, second: 23 });
+TemporalHelpers.assertPlainDateTime(withOverflow, 2000, 5, "M05", 2, 23, 59, 23, 0, 0, 0, "with overflow");
+assert.sameValue(withOverflow.calendar, plainDate.calendar, "with overflow calendar");
+
+const withCalendar = plainDate.toPlainDateTime({ hour: 13, calendar });
+TemporalHelpers.assertPlainDateTime(withCalendar, 2000, 5, "M05", 2, 13, 0, 0, 0, 0, 0, "with calendar");
+assert.sameValue(withCalendar.calendar, plainDate.calendar, "with calendar calendar");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-time-separators.js
new file mode 100644
index 0000000..96190d7
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.toplaindatetime
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1976-11-18T12:34:56.987654321", "uppercase T"],
+  ["1976-11-18t12:34:56.987654321", "lowercase T"],
+  ["1976-11-18 12:34:56.987654321", "space between date and time"],
+  ["T12:34:56.987654321", "time-only uppercase T"],
+  ["t12:34:56.987654321", "time-only lowercase T"],
+];
+
+const instance = new Temporal.PlainDate(2000, 5, 2);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.toPlainDateTime(arg);
+
+  TemporalHelpers.assertPlainDateTime(
+    result,
+    2000, 5, "M05", 2, 12, 34, 56, 987, 654, 321,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/basic.js
index f9bdc52..93e39a5 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/basic.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/basic.js
@@ -12,15 +12,20 @@
 
 const string = date.toPlainDateTime("11:30:23");
 TemporalHelpers.assertPlainDateTime(string, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "string");
+assert.sameValue(string.calendar, date.calendar, "string calendar");
 
 const optionBag = date.toPlainDateTime({ hour: 11, minute: 30, second: 23 });
 TemporalHelpers.assertPlainDateTime(optionBag, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "option bag");
+assert.sameValue(optionBag.calendar, date.calendar, "option bag calendar");
 
 const plainTime = date.toPlainDateTime(Temporal.PlainTime.from("11:30:23"));
 TemporalHelpers.assertPlainDateTime(plainTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainTime");
+assert.sameValue(plainTime.calendar, date.calendar, "PlainTime calendar");
 
 const plainDateTime = date.toPlainDateTime(Temporal.PlainDateTime.from("1999-07-14T11:30:23"));
-TemporalHelpers.assertPlainDateTime(plainDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainTime");
+TemporalHelpers.assertPlainDateTime(plainDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainDateTime");
+assert.sameValue(plainDateTime.calendar, date.calendar, "PlainDateTime calendar");
 
 const zonedDateTime = date.toPlainDateTime(Temporal.ZonedDateTime.from("1999-07-14T11:30:23Z[UTC]"));
-TemporalHelpers.assertPlainDateTime(zonedDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainTime");
+TemporalHelpers.assertPlainDateTime(zonedDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "ZonedDateTime");
+assert.sameValue(zonedDateTime.calendar, date.calendar, "ZonedDateTime calendar");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/custom.js
new file mode 100644
index 0000000..ead40f9
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/custom.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.toplaindatetime
+description: toPlainDateTime() doesn't call into the calendar.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = TemporalHelpers.calendarThrowEverything();
+const plainDate = new Temporal.PlainDate(2000, 5, 2, calendar);
+const result = plainDate.toPlainDateTime("11:30:23");
+assert.sameValue(result.calendar, calendar, "calendar");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainMonthDay/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainMonthDay/basic.js
new file mode 100644
index 0000000..1c00017
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainMonthDay/basic.js
@@ -0,0 +1,15 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.toplainmonthday
+description: Basic toPlainMonthDay tests.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = new Temporal.Calendar("iso8601");
+const pd = new Temporal.PlainDate(1970, 12, 24, calendar);
+const pmd = pd.toPlainMonthDay();
+TemporalHelpers.assertPlainMonthDay(pmd, "M12", 24);
+assert.sameValue(pmd.calendar, calendar);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainMonthDay/calendar-invalid-return.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainMonthDay/calendar-invalid-return.js
new file mode 100644
index 0000000..93f3b4f
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainMonthDay/calendar-invalid-return.js
@@ -0,0 +1,36 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.toplainmonthday
+description: Throw when the returned value is not a PlainMonthDay.
+features: [Temporal]
+---*/
+
+class CustomCalendar extends Temporal.Calendar {
+  constructor(value) {
+    super("iso8601");
+    this.value = value;
+  }
+  monthDayFromFields() {
+    return this.value;
+  }
+}
+
+const tests = [
+  [undefined],
+  [null, "null"],
+  [true],
+  ["2000-05"],
+  [Symbol()],
+  [200005],
+  [200005n],
+  [{}, "plain object"],
+  [() => {}, "lambda"],
+  [Temporal.PlainMonthDay, "Temporal.PlainMonthDay"],
+  [Temporal.PlainMonthDay.prototype, "Temporal.PlainMonthDay.prototype"],
+];
+for (const [test, description = typeof test] of tests) {
+  const plainDate = new Temporal.PlainDate(2000, 5, 2, new CustomCalendar(test));
+  assert.throws(TypeError, () => plainDate.toPlainMonthDay(), `Expected error with ${description}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/basic.js
new file mode 100644
index 0000000..1a8bb52
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/basic.js
@@ -0,0 +1,15 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.toplainyearmonth
+description: Basic toPlainYearMonth tests.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = new Temporal.Calendar("iso8601");
+const pd = new Temporal.PlainDate(1970, 12, 24, calendar);
+const pym = pd.toPlainYearMonth();
+TemporalHelpers.assertPlainYearMonth(pym, 1970, 12, "M12");
+assert.sameValue(pym.calendar, calendar);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/calendar-invalid-return.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/calendar-invalid-return.js
new file mode 100644
index 0000000..d7d5a1e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toPlainYearMonth/calendar-invalid-return.js
@@ -0,0 +1,36 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.toplainyearmonth
+description: Throw when the returned value is not a PlainYearMonth.
+features: [Temporal]
+---*/
+
+class CustomCalendar extends Temporal.Calendar {
+  constructor(value) {
+    super("iso8601");
+    this.value = value;
+  }
+  yearMonthFromFields() {
+    return this.value;
+  }
+}
+
+const tests = [
+  [undefined],
+  [null, "null"],
+  [true],
+  ["2000-05"],
+  [Symbol()],
+  [200005],
+  [200005n],
+  [{}, "plain object"],
+  [() => {}, "lambda"],
+  [Temporal.PlainYearMonth, "Temporal.PlainYearMonth"],
+  [Temporal.PlainYearMonth.prototype, "Temporal.PlainYearMonth.prototype"],
+];
+for (const [test, description = typeof test] of tests) {
+  const plainDate = new Temporal.PlainDate(2000, 5, 2, new CustomCalendar(test));
+  assert.throws(TypeError, () => plainDate.toPlainYearMonth(), `Expected error with ${description}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendar-tostring.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendar-tostring.js
new file mode 100644
index 0000000..0684a09
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendar-tostring.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.protoype.tostring
+description: Should always call 'toString' on the calendar once.
+features: [Temporal]
+---*/
+
+let calls;
+const customCalendar = {
+  toString() {
+    ++calls;
+    return "custom";
+  }
+};
+const date = new Temporal.PlainDate(2000, 5, 2, customCalendar);
+[
+  ["always", "2000-05-02[u-ca=custom]"],
+  ["auto", "2000-05-02[u-ca=custom]"],
+  ["never", "2000-05-02"],
+  [undefined, "2000-05-02[u-ca=custom]"],
+].forEach(([calendarName, expected]) => {
+  calls = 0;
+  const result = date.toString({ calendarName });
+  assert.sameValue(result, expected, `calendarName = ${calendarName}: expected ${expected}`);
+  assert.sameValue(calls, 1, `calendarName = ${calendarName}: expected one call to 'toString'`);
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-always.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-always.js
index 53bcac4..629955a 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-always.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-always.js
@@ -7,15 +7,16 @@
 features: [Temporal]
 ---*/
 
-const calendar = {
+const customCalendar = {
   toString() { return "custom"; }
 };
-const date1 = new Temporal.PlainDate(2000, 5, 2);
-const date2 = new Temporal.PlainDate(2000, 5, 2, calendar);
-
+const customISOCalendar = {
+  toString() { return "iso8601"; }
+};
 [
-  [date1, "2000-05-02[u-ca=iso8601]"],
-  [date2, "2000-05-02[u-ca=custom]"],
+  [new Temporal.PlainDate(2000, 5, 2), "2000-05-02[u-ca=iso8601]"],
+  [new Temporal.PlainDate(2000, 5, 2, customCalendar), "2000-05-02[u-ca=custom]"],
+  [new Temporal.PlainDate(2000, 5, 2, customISOCalendar), "2000-05-02[u-ca=iso8601]"],
 ].forEach(([date, expected]) => {
   const result = date.toString({ calendarName: "always" });
   assert.sameValue(result, expected, "expected " + expected);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-auto.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-auto.js
index 08ad287..7acb8c6 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-auto.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-auto.js
@@ -7,15 +7,16 @@
 features: [Temporal]
 ---*/
 
-const calendar = {
+const customCalendar = {
   toString() { return "custom"; }
 };
-const date1 = new Temporal.PlainDate(2000, 5, 2);
-const date2 = new Temporal.PlainDate(2000, 5, 2, calendar);
-
+const customISOCalendar = {
+  toString() { return "iso8601"; }
+};
 [
-  [date1, "2000-05-02"],
-  [date2, "2000-05-02[u-ca=custom]"],
+  [new Temporal.PlainDate(2000, 5, 2), "2000-05-02"],
+  [new Temporal.PlainDate(2000, 5, 2, customCalendar), "2000-05-02[u-ca=custom]"],
+  [new Temporal.PlainDate(2000, 5, 2, customISOCalendar), "2000-05-02"],
 ].forEach(([date, expected]) => {
   const result = date.toString({ calendarName: "auto" });
   assert.sameValue(result, expected, "expected " + expected);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-invalid-string.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-invalid-string.js
index bca22e7..5491e59 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-invalid-string.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-invalid-string.js
@@ -15,7 +15,7 @@
 ---*/
 
 const date = new Temporal.PlainDate(2000, 5, 2);
-const values = ["ALWAYS", "sometimes", "other string"];
+const values = ["ALWAYS", "sometimes", "other string", "auto\0"];
 
 for (const calendarName of values) {
   assert.throws(RangeError, () => date.toString({ calendarName }));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-never.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-never.js
index a937872..75fe99b 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-never.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-never.js
@@ -7,15 +7,16 @@
 features: [Temporal]
 ---*/
 
-const calendar = {
+const customCalendar = {
   toString() { return "custom"; }
 };
-const date1 = new Temporal.PlainDate(2000, 5, 2);
-const date2 = new Temporal.PlainDate(2000, 5, 2, calendar);
-
+const customISOCalendar = {
+  toString() { return "iso8601"; }
+};
 [
-  [date1, "2000-05-02"],
-  [date2, "2000-05-02"],
+  [new Temporal.PlainDate(2000, 5, 2), "2000-05-02"],
+  [new Temporal.PlainDate(2000, 5, 2, customCalendar), "2000-05-02"],
+  [new Temporal.PlainDate(2000, 5, 2, customISOCalendar), "2000-05-02"],
 ].forEach(([date, expected]) => {
   const result = date.toString({ calendarName: "never" });
   assert.sameValue(result, expected, "expected " + expected);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-undefined.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-undefined.js
index 0d5e93e..aa3364c 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-undefined.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toString/calendarname-undefined.js
@@ -14,15 +14,16 @@
 features: [Temporal]
 ---*/
 
-const calendar = {
+const customCalendar = {
   toString() { return "custom"; }
 };
-const date1 = new Temporal.PlainDate(2000, 5, 2);
-const date2 = new Temporal.PlainDate(2000, 5, 2, calendar);
-
+const customISOCalendar = {
+  toString() { return "iso8601"; }
+};
 [
-  [date1, "2000-05-02"],
-  [date2, "2000-05-02[u-ca=custom]"],
+  [new Temporal.PlainDate(2000, 5, 2), "2000-05-02"],
+  [new Temporal.PlainDate(2000, 5, 2, customCalendar), "2000-05-02[u-ca=custom]"],
+  [new Temporal.PlainDate(2000, 5, 2, customISOCalendar), "2000-05-02"],
 ].forEach(([date, expected]) => {
   const explicit = date.toString({ calendarName: undefined });
   assert.sameValue(explicit, expected, "default calendarName option is auto");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toStringTag/prop-desc.js
new file mode 100644
index 0000000..6308330
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toStringTag/prop-desc.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype-@@tostringtag
+description: The @@toStringTag property of Temporal.PlainDate
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainDate.prototype, Symbol.toStringTag, {
+  value: "Temporal.PlainDate",
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-time-separators.js
new file mode 100644
index 0000000..904c459
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-time-separators.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.tozoneddatetime
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1976-11-18T12:34:56.987654321", "uppercase T"],
+  ["1976-11-18t12:34:56.987654321", "lowercase T"],
+  ["1976-11-18 12:34:56.987654321", "space between date and time"],
+  ["T12:34:56.987654321", "time-only uppercase T"],
+  ["t12:34:56.987654321", "time-only lowercase T"],
+];
+
+const instance = new Temporal.PlainDate(2000, 5, 2);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.toZonedDateTime({ plainTime: arg, timeZone: "UTC" });
+
+  assert.sameValue(
+    result.epochNanoseconds,
+    957_270_896_987_654_321n,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/branding.js
index 7d20da4..6ef14da 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof toZonedDateTime, "function");
 
-assert.throws(TypeError, () => toZonedDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTime.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTime.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTime.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
+const args = [new Temporal.TimeZone("UTC")];
+
+assert.throws(TypeError, () => toZonedDateTime.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => toZonedDateTime.apply(null, args), "null");
+assert.throws(TypeError, () => toZonedDateTime.apply(true, args), "true");
+assert.throws(TypeError, () => toZonedDateTime.apply("", args), "empty string");
+assert.throws(TypeError, () => toZonedDateTime.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => toZonedDateTime.apply(1, args), "1");
+assert.throws(TypeError, () => toZonedDateTime.apply({}, args), "plain object");
+assert.throws(TypeError, () => toZonedDateTime.apply(Temporal.PlainDate, args), "Temporal.PlainDate");
+assert.throws(TypeError, () => toZonedDateTime.apply(Temporal.PlainDate.prototype, args), "Temporal.PlainDate.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/calendar.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/calendar.js
new file mode 100644
index 0000000..dea05be
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/calendar.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.tozoneddatetime
+description: Calendar of the receiver is used
+features: [Temporal]
+---*/
+
+const calendar = new Temporal.Calendar("iso8601");
+const timeCalendar = { toString() { return "iso8601"; } };
+const plainDate = new Temporal.PlainDate(2000, 5, 2, calendar);
+const result = plainDate.toZonedDateTime({
+  timeZone: "UTC",
+  plainTime: { hour: 12, minute: 30, calendar: timeCalendar },
+});
+assert.sameValue(result.epochNanoseconds, 957270600_000_000_000n);
+assert.sameValue(result.timeZone.toString(), "UTC");
+assert.sameValue(result.calendar, calendar);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-getpossibleinstantsfor.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-getpossibleinstantsfor.js
new file mode 100644
index 0000000..4431024
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-getpossibleinstantsfor.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.tozoneddatetime
+description: Calendar of the receiver is used
+features: [Temporal]
+---*/
+
+const calendar = new Temporal.Calendar("iso8601");
+class CustomTimeZone extends Temporal.TimeZone {
+  constructor() {
+    super("UTC");
+  }
+  getPossibleInstantsFor(plainDateTime) {
+    assert.sameValue(plainDateTime.calendar, calendar);
+    return [new Temporal.Instant(987654321_000_000_000n)];
+  }
+}
+const timeZone = new CustomTimeZone();
+const plainDate = new Temporal.PlainDate(2000, 5, 2, calendar);
+const result = plainDate.toZonedDateTime({
+  timeZone,
+  plainTime: { hour: 12, minute: 30 },
+});
+assert.sameValue(result.epochNanoseconds, 987654321_000_000_000n);
+assert.sameValue(result.timeZone, timeZone);
+assert.sameValue(result.calendar, calendar);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/leap-second.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-string-time-separators.js
new file mode 100644
index 0000000..b1b41c7
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.until
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainDate(2000, 5, 2);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.until(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..4aca3ad
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.until
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.PlainDate(1976, 11, 18);
+
+assert.throws(Test262Error, () => instance.until(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..85864d2
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.until
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.PlainDate(1976, 11, 18);
+instance.until(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/branding.js
index ebbafe5..07d2419 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof until, "function");
 
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => until.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
+const args = [new Temporal.PlainDate(2022, 6, 22)];
+
+assert.throws(TypeError, () => until.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => until.apply(null, args), "null");
+assert.throws(TypeError, () => until.apply(true, args), "true");
+assert.throws(TypeError, () => until.apply("", args), "empty string");
+assert.throws(TypeError, () => until.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => until.apply(1, args), "1");
+assert.throws(TypeError, () => until.apply({}, args), "plain object");
+assert.throws(TypeError, () => until.apply(Temporal.PlainDate, args), "Temporal.PlainDate");
+assert.throws(TypeError, () => until.apply(Temporal.PlainDate.prototype, args), "Temporal.PlainDate.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/calendar-invalid-return.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/calendar-invalid-return.js
new file mode 100644
index 0000000..5e66a55
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/calendar-invalid-return.js
@@ -0,0 +1,36 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.until
+description: Throw when the returned value from the calendar's dateUntil method is not a Duration.
+features: [Temporal]
+---*/
+
+class CustomCalendar extends Temporal.Calendar {
+  constructor(value) {
+    super("iso8601");
+    this.value = value;
+  }
+  dateUntil() {
+    return this.value;
+  }
+}
+
+const tests = [
+  [undefined],
+  [null, "null"],
+  [true],
+  ["2000-05"],
+  [Symbol()],
+  [200005],
+  [200005n],
+  [{}, "plain object"],
+  [() => {}, "lambda"],
+  [Temporal.Duration, "Temporal.Duration"],
+  [Temporal.Duration.prototype, "Temporal.Duration.prototype"],
+];
+for (const [test, description = typeof test] of tests) {
+  const plainDate = new Temporal.PlainDate(2000, 5, 2, new CustomCalendar(test));
+  assert.throws(TypeError, () => plainDate.until("2022-06-20"), `Expected error with ${description}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/custom.js
new file mode 100644
index 0000000..1d332af
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/custom.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.until
+description: Basic tests with custom calendar
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const result = new Temporal.Duration(1, 3, 5, 7, 9);
+const options = {};
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  dateUntil(...args) {
+    ++calls;
+    assert.sameValue(args.length, 3, "Three arguments");
+    assert.sameValue(args[0], plainDate, "First argument");
+    assert.sameValue(args[1], other, "Second argument");
+    assert.sameValue(args[2].largestUnit, "day", "Third argument: largestUnit");
+    return result;
+  }
+}
+const calendar = new CustomCalendar();
+const plainDate = new Temporal.PlainDate(1976, 11, 18, calendar);
+const other = new Temporal.PlainDate(2022, 6, 20, calendar);
+TemporalHelpers.assertDuration(plainDate.until(other, options),
+  1, 3, 5, 7, 0, 0, 0, 0, 0, 0, "result");
+assert.sameValue(calls, 1);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/options-invalid.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/options-invalid.js
deleted file mode 100644
index 7c737f9..0000000
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/until/options-invalid.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const feb20 = Temporal.PlainDate.from("2020-02-01");
-const feb21 = Temporal.PlainDate.from("2021-02-01");
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
-  assert.throws(TypeError, () => feb20.until(feb21, badOptions));
-}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/custom.js
new file mode 100644
index 0000000..72107aa
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindate.prototype.weekofyear
+description: Custom calendar tests for weekOfYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  weekOfYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pd], "weekOfYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pd = new Temporal.PlainDate(1830, 8, 25, calendar);
+const result = pd.weekOfYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/branding.js
index e6210e0..47ebc9a 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof with_, "function");
 
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => with_.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
+const args = [{ year: 2022 }];
+
+assert.throws(TypeError, () => with_.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => with_.apply(null, args), "null");
+assert.throws(TypeError, () => with_.apply(true, args), "true");
+assert.throws(TypeError, () => with_.apply("", args), "empty string");
+assert.throws(TypeError, () => with_.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => with_.apply(1, args), "1");
+assert.throws(TypeError, () => with_.apply({}, args), "plain object");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainDate, args), "Temporal.PlainDate");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainDate.prototype, args), "Temporal.PlainDate.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/calendar-invalid-return.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/calendar-invalid-return.js
new file mode 100644
index 0000000..3a6afd1
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/calendar-invalid-return.js
@@ -0,0 +1,36 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.with
+description: Throw when the returned value from the calendar's dateFromFields method is not a PlainDate.
+features: [Temporal]
+---*/
+
+class CustomCalendar extends Temporal.Calendar {
+  constructor(value) {
+    super("iso8601");
+    this.value = value;
+  }
+  dateFromFields() {
+    return this.value;
+  }
+}
+
+const tests = [
+  [undefined],
+  [null, "null"],
+  [true],
+  ["2000-05"],
+  [Symbol()],
+  [200005],
+  [200005n],
+  [{}, "plain object"],
+  [() => {}, "lambda"],
+  [Temporal.PlainDate, "Temporal.PlainDate"],
+  [Temporal.PlainDate.prototype, "Temporal.PlainDate.prototype"],
+];
+for (const [test, description = typeof test] of tests) {
+  const plainDate = new Temporal.PlainDate(2000, 5, 2, new CustomCalendar(test));
+  assert.throws(TypeError, () => plainDate.with({ year: 1 }), `Expected error with ${description}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/custom.js
new file mode 100644
index 0000000..46ecc26
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/custom.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate.prototype.with
+description: Basic tests with custom calendar
+features: [Temporal]
+---*/
+
+const result = new Temporal.PlainDate(1920, 5, 3);
+const options = {};
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  dateFromFields(...args) {
+    ++calls;
+    assert.sameValue(args.length, 2, "Two arguments");
+    assert.sameValue(typeof args[0], "object", "First argument: type");
+    assert.sameValue(args[0].day, 18, "First argument: day");
+    assert.sameValue(args[0].month, 11, "First argument: month");
+    assert.sameValue(args[0].monthCode, "M11", "First argument: monthCode");
+    assert.sameValue(args[0].year, 43, "First argument: year");
+    assert.sameValue(args[1], options, "Second argument");
+    return result;
+  }
+}
+const calendar = new CustomCalendar();
+const plainDate = new Temporal.PlainDate(1976, 11, 18, calendar);
+assert.sameValue(plainDate.with({ year: 43 }, options), result);
+assert.sameValue(calls, 1);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/options-invalid.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/options-invalid.js
deleted file mode 100644
index 5222d72..0000000
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/options-invalid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(2000, 2, 2);
-[null, true, "hello", Symbol("foo"), 1, 1n].forEach((badOptions) =>
-  assert.throws(TypeError, () => plainDate.with({ day: 17 }, badOptions))
-);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/plaindatelike-invalid.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/plaindatelike-invalid.js
index 189c334..a14dae6 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/plaindatelike-invalid.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/with/plaindatelike-invalid.js
@@ -24,20 +24,19 @@
   [42n, "bigint"],
 
   // Step 4.
+  //   RejectObjectWithCalendarOrTimeZone step 2.
   [Temporal.PlainDate.from("2019-05-17"), "PlainDate"],
   [Temporal.PlainDateTime.from("2019-05-17T12:34"), "PlainDateTime"],
   [Temporal.PlainMonthDay.from("2019-05-17"), "PlainMonthDay"],
   [Temporal.PlainTime.from("12:34"), "PlainTime"],
   [Temporal.PlainYearMonth.from("2019-05-17"), "PlainYearMonth"],
   [Temporal.ZonedDateTime.from("2019-05-17T12:34Z[UTC]"), "ZonedDateTime"],
-
-  // Step 5-6.
+  //   RejectObjectWithCalendarOrTimeZone step 3-4.
   [{ year: 2021, calendar: "iso8601" }, "calendar"],
-
-  // Step 7-8.
+  //   RejectObjectWithCalendarOrTimeZone step 5-6.
   [{ year: 2021, timeZone: "UTC" }, "timeZone"],
 
-  // Step 11.
+  // Step 7.
   [{}, "empty object"],
   [{ months: 12 }, "only plural property"],
 
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/withCalendar/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/withCalendar/basic.js
index 6fd61bb..2dd1adb 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/withCalendar/basic.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/withCalendar/basic.js
@@ -12,9 +12,17 @@
 const calendar = Temporal.Calendar.from("iso8601");
 
 const objectResult = plainDate.withCalendar(calendar);
+assert.notSameValue(objectResult, plainDate, "object: new object");
 TemporalHelpers.assertPlainDate(objectResult, 1976, 11, "M11", 18, "object");
-assert.sameValue(objectResult.calendar, calendar, "object calendar");
+assert.sameValue(objectResult.calendar, calendar, "object: calendar");
 
 const stringResult = plainDate.withCalendar("iso8601");
+assert.notSameValue(stringResult, plainDate, "string: new object");
 TemporalHelpers.assertPlainDate(stringResult, 1976, 11, "M11", 18, "string");
-assert.sameValue(stringResult.calendar.id, "iso8601", "string calendar");
+assert.sameValue(stringResult.calendar.id, "iso8601", "string: calendar");
+
+const originalCalendar = plainDate.calendar;
+const sameResult = plainDate.withCalendar(originalCalendar);
+assert.notSameValue(sameResult, plainDate, "original: new object");
+TemporalHelpers.assertPlainDate(sameResult, 1976, 11, "M11", 18, "original");
+assert.sameValue(sameResult.calendar, originalCalendar, "original: calendar");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/withCalendar/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/withCalendar/branding.js
index 97f9b34..964b62a 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/withCalendar/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/withCalendar/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof withCalendar, "function");
 
-assert.throws(TypeError, () => withCalendar.call(undefined), "undefined");
-assert.throws(TypeError, () => withCalendar.call(null), "null");
-assert.throws(TypeError, () => withCalendar.call(true), "true");
-assert.throws(TypeError, () => withCalendar.call(""), "empty string");
-assert.throws(TypeError, () => withCalendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withCalendar.call(1), "1");
-assert.throws(TypeError, () => withCalendar.call({}), "plain object");
-assert.throws(TypeError, () => withCalendar.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => withCalendar.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
+const args = [new Temporal.Calendar("iso8601")];
+
+assert.throws(TypeError, () => withCalendar.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => withCalendar.apply(null, args), "null");
+assert.throws(TypeError, () => withCalendar.apply(true, args), "true");
+assert.throws(TypeError, () => withCalendar.apply("", args), "empty string");
+assert.throws(TypeError, () => withCalendar.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => withCalendar.apply(1, args), "1");
+assert.throws(TypeError, () => withCalendar.apply({}, args), "plain object");
+assert.throws(TypeError, () => withCalendar.apply(Temporal.PlainDate, args), "Temporal.PlainDate");
+assert.throws(TypeError, () => withCalendar.apply(Temporal.PlainDate.prototype, args), "Temporal.PlainDate.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDate/subclass.js b/JSTests/test262/test/built-ins/Temporal/PlainDate/subclass.js
new file mode 100644
index 0000000..81d73c1
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDate/subclass.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindate
+description: Test for Temporal.PlainDate subclassing.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+class CustomPlainDate extends Temporal.PlainDate {
+}
+
+const instance = new CustomPlainDate(2000, 5, 2);
+TemporalHelpers.assertPlainDate(instance, 2000, 5, "M05", 2);
+assert.sameValue(Object.getPrototypeOf(instance), CustomPlainDate.prototype, "Instance of CustomPlainDate");
+assert(instance instanceof CustomPlainDate, "Instance of CustomPlainDate");
+assert(instance instanceof Temporal.PlainDate, "Instance of Temporal.PlainDate");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/compare/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/compare/argument-string-time-separators.js
new file mode 100644
index 0000000..d1486cf
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/compare/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.compare
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const dateTime = new Temporal.PlainDateTime(1976, 11, 18, 15, 23);
+const tests = [
+  ["1976-11-18T15:23", "uppercase T"],
+  ["1976-11-18t15:23", "lowercase T"],
+  ["1976-11-18 15:23", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  assert.sameValue(
+    Temporal.PlainDateTime.compare(arg, dateTime),
+    0,
+    `variant time separators (${description}), first argument`
+  );
+
+  assert.sameValue(
+    Temporal.PlainDateTime.compare(dateTime, arg),
+    0,
+    `variant time separators (${description}), second argument`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/constructor.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/constructor.js
index fcc159a..31f87a0 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/constructor.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/constructor.js
@@ -9,4 +9,4 @@
 features: [Temporal]
 ---*/
 
-assert.throws(TypeError, () => Temporal.PlainDateTime());
+assert.throws(TypeError, () => Temporal.PlainDateTime(1970, 1, 2, 12, 0, 0));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/from/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/from/argument-string-time-separators.js
index 739b96e..047a691 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/from/argument-string-time-separators.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/from/argument-string-time-separators.js
@@ -8,22 +8,18 @@
 includes: [temporalHelpers.js]
 ---*/
 
-const expected = [1976, 11, "M11", 18, 15, 23, 0, 0, 0, 0];
+const tests = [
+  ["1976-11-18T15:23", "uppercase T"],
+  ["1976-11-18t15:23", "lowercase T"],
+  ["1976-11-18 15:23", "space between date and time"],
+];
 
-TemporalHelpers.assertPlainDateTime(
-  Temporal.PlainDateTime.from("1976-11-18T15:23"),
-  ...expected,
-  "variant time separators (uppercase T)"
-);
+tests.forEach(([arg, description]) => {
+  const result = Temporal.PlainDateTime.from(arg);
 
-TemporalHelpers.assertPlainDateTime(
-  Temporal.PlainDateTime.from("1976-11-18t15:23"),
-  ...expected,
-  "variant time separators (lowercase T)"
-);
-
-TemporalHelpers.assertPlainDateTime(
-  Temporal.PlainDateTime.from("1976-11-18 15:23"),
-  ...expected,
-  "variant time separators (space between date and time)"
-);
+  TemporalHelpers.assertPlainDateTime(
+    result,
+    1976, 11, "M11", 18, 15, 23, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/add/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/add/argument-string-negative-fractional-units.js
index 093b91e..4e62a03 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/add/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/add/argument-string-negative-fractional-units.js
@@ -11,7 +11,7 @@
 const instance = new Temporal.PlainDateTime(2000, 5, 2);
 
 const resultHours = instance.add("-PT24.567890123H");
-TemporalHelpers.assertPlainDateTime(resultHours, 2000, 4, "M04", 30, 23, 25, 55, 595, 557, 201, "negative fractional hours");
+TemporalHelpers.assertPlainDateTime(resultHours, 2000, 4, "M04", 30, 23, 25, 55, 595, 557, 200, "negative fractional hours");
 
 const resultMinutes = instance.add("-PT1440.567890123M");
-TemporalHelpers.assertPlainDateTime(resultMinutes, 2000, 4, "M04", 30, 23, 59, 25, 926, 592, 621, "negative fractional minutes");
+TemporalHelpers.assertPlainDateTime(resultMinutes, 2000, 4, "M04", 30, 23, 59, 25, 926, 592, 620, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/add/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/add/branding.js
index 161aa7d..d26f8d0 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/add/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/add/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof add, "function");
 
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => add.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = [new Temporal.Duration(5)];
+
+assert.throws(TypeError, () => add.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => add.apply(null, args), "null");
+assert.throws(TypeError, () => add.apply(true, args), "true");
+assert.throws(TypeError, () => add.apply("", args), "empty string");
+assert.throws(TypeError, () => add.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => add.apply(1, args), "1");
+assert.throws(TypeError, () => add.apply({}, args), "plain object");
+assert.throws(TypeError, () => add.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => add.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/constructor.js
new file mode 100644
index 0000000..91c415e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.constructor
+description: Test for Temporal.PlainDateTime.prototype.constructor.
+info: The initial value of Temporal.PlainDateTime.prototype.constructor is %Temporal.PlainDateTime%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainDateTime.prototype, "constructor", {
+  value: Temporal.PlainDateTime,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/dayOfWeek/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/dayOfWeek/custom.js
new file mode 100644
index 0000000..23d6bbd
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/dayOfWeek/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindatetime.prototype.dayofweek
+description: Custom calendar tests for dayOfWeek().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  dayOfWeek(...args) {
+    ++calls;
+    assert.compareArray(args, [pdt], "dayOfWeek arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pdt = new Temporal.PlainDateTime(1830, 8, 25, 20, 0, 0, 0, 0, 0, calendar);
+const result = pdt.dayOfWeek;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/dayOfYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/dayOfYear/custom.js
new file mode 100644
index 0000000..101676a
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/dayOfYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindatetime.prototype.dayofyear
+description: Custom calendar tests for dayOfYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  dayOfYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pdt], "dayOfYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pdt = new Temporal.PlainDateTime(1830, 8, 25, 20, 0, 0, 0, 0, 0, calendar);
+const result = pdt.dayOfYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/basic.js
index 7059e7a..76fcea4 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/basic.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/basic.js
@@ -7,6 +7,12 @@
 features: [Temporal]
 ---*/
 
-const calendar = Temporal.Calendar.from("iso8601");
-const datetime = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789, calendar);
-assert.sameValue(datetime.daysInMonth, 30, "check days in month information");
+const tests = [
+  [new Temporal.PlainDateTime(1976, 2, 18, 15, 23, 30, 123, 456, 789), 29],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789), 30],
+  [new Temporal.PlainDateTime(1976, 12, 18, 15, 23, 30, 123, 456, 789), 31],
+  [new Temporal.PlainDateTime(1977, 2, 18, 15, 23, 30, 123, 456, 789), 28],
+];
+for (const [plainDateTime, expected] of tests) {
+  assert.sameValue(plainDateTime.daysInMonth, expected, `${expected} days in the month of ${plainDateTime}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/custom.js
new file mode 100644
index 0000000..2f2aae3
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindatetime.prototype.daysinmonth
+description: Custom calendar tests for daysInMonth().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  daysInMonth(...args) {
+    ++calls;
+    assert.compareArray(args, [pdt], "daysInMonth arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pdt = new Temporal.PlainDateTime(1830, 8, 25, 20, 0, 0, 0, 0, 0, calendar);
+const result = pdt.daysInMonth;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/basic.js
index f34e00f..3d63b1b 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/basic.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/basic.js
@@ -7,6 +7,11 @@
 features: [Temporal]
 ---*/
 
-const calendar = Temporal.Calendar.from("iso8601");
-const datetime = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789, calendar);
-assert.sameValue(datetime.daysInWeek, 7, "check days in week information");
+const tests = [
+  new Temporal.PlainDateTime(1976, 1, 1, 15, 23, 30, 123, 456, 789),
+  new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789),
+  new Temporal.PlainDateTime(1976, 12, 31, 15, 23, 30, 123, 456, 789),
+];
+for (const plainDateTime of tests) {
+  assert.sameValue(plainDateTime.daysInWeek, 7, `Seven days in the week of ${plainDateTime}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/custom.js
new file mode 100644
index 0000000..5bfd635
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInWeek/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindatetime.prototype.daysinweek
+description: Custom calendar tests for daysInWeek().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  daysInWeek(...args) {
+    ++calls;
+    assert.compareArray(args, [pdt], "daysInWeek arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pdt = new Temporal.PlainDateTime(1830, 8, 25, 20, 0, 0, 0, 0, 0, calendar);
+const result = pdt.daysInWeek;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/basic.js
index d3c7a5d..25b7778 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/basic.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/basic.js
@@ -7,6 +7,7 @@
 features: [Temporal]
 ---*/
 
-const calendar = Temporal.Calendar.from("iso8601");
-const datetime = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789, calendar);
-assert.sameValue(datetime.daysInYear, 366, "check days in year information");
+assert.sameValue((new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789)).daysInYear,
+  366, "leap year");
+assert.sameValue((new Temporal.PlainDateTime(1977, 11, 18, 15, 23, 30, 123, 456, 789)).daysInYear,
+  365, "non-leap year");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/custom.js
new file mode 100644
index 0000000..ba025cd
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/daysInYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindatetime.prototype.daysinyear
+description: Custom calendar tests for daysInYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  daysInYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pdt], "daysInYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pdt = new Temporal.PlainDateTime(1830, 8, 25, 20, 0, 0, 0, 0, 0, calendar);
+const result = pdt.daysInYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-time-separators.js
new file mode 100644
index 0000000..ae190e7
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/equals/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.equals
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1976-11-18T15:23", "uppercase T"],
+  ["1976-11-18t15:23", "lowercase T"],
+  ["1976-11-18 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainDateTime(1976, 11, 18, 15, 23);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.equals(arg);
+
+  assert.sameValue(
+    result,
+    true,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/equals/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/equals/branding.js
index 3b87c80..5c150b8 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/equals/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/equals/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof equals, "function");
 
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => equals.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = [new Temporal.PlainDateTime(2022, 6, 22)];
+
+assert.throws(TypeError, () => equals.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => equals.apply(null, args), "null");
+assert.throws(TypeError, () => equals.apply(true, args), "true");
+assert.throws(TypeError, () => equals.apply("", args), "empty string");
+assert.throws(TypeError, () => equals.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => equals.apply(1, args), "1");
+assert.throws(TypeError, () => equals.apply({}, args), "plain object");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/getISOFields/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/getISOFields/custom.js
new file mode 100644
index 0000000..b3b80bd
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/getISOFields/custom.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.getisofields
+description: getISOFields does not call into user code.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = TemporalHelpers.calendarThrowEverything();
+const instance = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
+const result = instance.getISOFields();
+
+assert.sameValue(result.isoYear, 2000, "isoYear result");
+assert.sameValue(result.isoMonth, 5, "isoMonth result");
+assert.sameValue(result.isoDay, 2, "isoDay result");
+assert.sameValue(result.isoHour, 12, "isoHour result");
+assert.sameValue(result.isoMinute, 34, "isoMinute result");
+assert.sameValue(result.isoSecond, 56, "isoSecond result");
+assert.sameValue(result.isoMillisecond, 987, "isoMillisecond result");
+assert.sameValue(result.isoMicrosecond, 654, "isoMicrosecond result");
+assert.sameValue(result.isoNanosecond, 321, "isoNanosecond result");
+assert.sameValue(result.calendar, calendar, "calendar result");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/getISOFields/prototype.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/getISOFields/prototype.js
new file mode 100644
index 0000000..1e00cd2
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/getISOFields/prototype.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.getisofields
+description: Correct prototype on the object returned from getISOFields
+features: [Temporal]
+---*/
+
+const instance = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
+const result = instance.getISOFields();
+assert.sameValue(Object.getPrototypeOf(result), Object.prototype, "prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/inLeapYear/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/inLeapYear/basic.js
new file mode 100644
index 0000000..b620522
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/inLeapYear/basic.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindatetime.prototype.inleapyear
+description: Basic test for inLeapYear
+features: [Temporal]
+---*/
+
+assert.sameValue((new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789)).inLeapYear,
+  true, "leap year");
+assert.sameValue((new Temporal.PlainDateTime(1977, 11, 18, 15, 23, 30, 123, 456, 789)).inLeapYear,
+  false, "non-leap year");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/inLeapYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/inLeapYear/custom.js
new file mode 100644
index 0000000..6f4e498
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/inLeapYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindatetime.prototype.inleapyear
+description: Custom calendar tests for inLeapYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  inLeapYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pdt], "inLeapYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pdt = new Temporal.PlainDateTime(1830, 8, 25, 20, 0, 0, 0, 0, 0, calendar);
+const result = pdt.inLeapYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/monthsInYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/monthsInYear/custom.js
new file mode 100644
index 0000000..ef47a09
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/monthsInYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindatetime.prototype.monthsinyear
+description: Custom calendar tests for monthsInYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  monthsInYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pdt], "monthsInYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pdt = new Temporal.PlainDateTime(1830, 8, 25, 20, 0, 0, 0, 0, 0, calendar);
+const result = pdt.monthsInYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/round/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/round/branding.js
index 9efbaff..28e3b90 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/round/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/round/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof round, "function");
 
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => round.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = ['hour'];
+
+assert.throws(TypeError, () => round.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => round.apply(null, args), "null");
+assert.throws(TypeError, () => round.apply(true, args), "true");
+assert.throws(TypeError, () => round.apply("", args), "empty string");
+assert.throws(TypeError, () => round.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => round.apply(1, args), "1");
+assert.throws(TypeError, () => round.apply({}, args), "plain object");
+assert.throws(TypeError, () => round.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => round.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/since/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/since/argument-string-time-separators.js
new file mode 100644
index 0000000..96f4ad3
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/since/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.since
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1976-11-18T15:23", "uppercase T"],
+  ["1976-11-18t15:23", "lowercase T"],
+  ["1976-11-18 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainDateTime(1976, 11, 18, 15, 23);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.since(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/since/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/since/branding.js
index c516e4d..21313b4 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/since/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/since/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof since, "function");
 
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => since.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = [new Temporal.PlainDateTime(2022, 6, 22)];
+
+assert.throws(TypeError, () => since.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => since.apply(null, args), "null");
+assert.throws(TypeError, () => since.apply(true, args), "true");
+assert.throws(TypeError, () => since.apply("", args), "empty string");
+assert.throws(TypeError, () => since.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => since.apply(1, args), "1");
+assert.throws(TypeError, () => since.apply({}, args), "plain object");
+assert.throws(TypeError, () => since.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => since.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/subtract/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/subtract/argument-string-negative-fractional-units.js
index 2add82f..24655cd 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/subtract/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/subtract/argument-string-negative-fractional-units.js
@@ -11,7 +11,7 @@
 const instance = new Temporal.PlainDateTime(2000, 5, 2);
 
 const resultHours = instance.subtract("-PT24.567890123H");
-TemporalHelpers.assertPlainDateTime(resultHours, 2000, 5, "M05", 3, 0, 34, 4, 404, 442, 799, "negative fractional hours");
+TemporalHelpers.assertPlainDateTime(resultHours, 2000, 5, "M05", 3, 0, 34, 4, 404, 442, 800, "negative fractional hours");
 
 const resultMinutes = instance.subtract("-PT1440.567890123M");
-TemporalHelpers.assertPlainDateTime(resultMinutes, 2000, 5, "M05", 3, 0, 0, 34, 73, 407, 379, "negative fractional minutes");
+TemporalHelpers.assertPlainDateTime(resultMinutes, 2000, 5, "M05", 3, 0, 0, 34, 73, 407, 380, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/subtract/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/subtract/branding.js
index 8c29b1f..7e955db 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/subtract/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/subtract/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof subtract, "function");
 
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = [new Temporal.Duration(5)];
+
+assert.throws(TypeError, () => subtract.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => subtract.apply(null, args), "null");
+assert.throws(TypeError, () => subtract.apply(true, args), "true");
+assert.throws(TypeError, () => subtract.apply("", args), "empty string");
+assert.throws(TypeError, () => subtract.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => subtract.apply(1, args), "1");
+assert.throws(TypeError, () => subtract.apply({}, args), "plain object");
+assert.throws(TypeError, () => subtract.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => subtract.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toJSON/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toJSON/basic.js
new file mode 100644
index 0000000..bca24a4
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toJSON/basic.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.tojson
+description: Basic behavior for toJSON
+features: [Temporal]
+---*/
+
+const tests = [
+  [new Temporal.PlainDateTime(1976, 2, 4, 5, 3, 1), "1976-02-04T05:03:01"],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23), "1976-11-18T15:23:00"],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30), "1976-11-18T15:23:30"],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 400), "1976-11-18T15:23:30.1234"],
+];
+
+const options = new Proxy({}, {
+  get() { throw new Test262Error("should not get properties off argument") }
+});
+for (const [datetime, expected] of tests) {
+  assert.sameValue(datetime.toJSON(), expected, "toJSON without argument");
+  assert.sameValue(datetime.toJSON(options), expected, "toJSON with argument");
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-auto.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-auto.js
index 2567d04..47f9aa4 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-auto.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-auto.js
@@ -7,14 +7,11 @@
 features: [Temporal]
 ---*/
 
-const zeroSeconds = new Temporal.PlainDateTime(1976, 11, 18, 15, 23);
-const wholeSeconds = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30);
-const subSeconds = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 400);
-
 const tests = [
-  [zeroSeconds, "1976-11-18T15:23:00"],
-  [wholeSeconds, "1976-11-18T15:23:30"],
-  [subSeconds, "1976-11-18T15:23:30.1234"],
+  [new Temporal.PlainDateTime(1976, 2, 4, 5, 3, 1), "1976-02-04T05:03:01"],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23), "1976-11-18T15:23:00"],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30), "1976-11-18T15:23:30"],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 400), "1976-11-18T15:23:30.1234"],
 ];
 
 for (const [datetime, expected] of tests) {
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-number.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-number.js
index 843ef74..e3436f8 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-number.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-number.js
@@ -7,10 +7,13 @@
 features: [Temporal]
 ---*/
 
+const fewSeconds = new Temporal.PlainDateTime(1976, 2, 4, 5, 3, 1);
 const zeroSeconds = new Temporal.PlainDateTime(1976, 11, 18, 15, 23);
 const wholeSeconds = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30);
 const subSeconds = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 400);
 
+assert.sameValue(fewSeconds.toString({ fractionalSecondDigits: 0 }), "1976-02-04T05:03:01",
+  "pads parts with 0");
 assert.sameValue(subSeconds.toString({ fractionalSecondDigits: 0 }), "1976-11-18T15:23:30",
   "truncates 4 decimal places to 0");
 assert.sameValue(zeroSeconds.toString({ fractionalSecondDigits: 2 }), "1976-11-18T15:23:00.00",
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-undefined.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-undefined.js
index d5ebb9c..0434590 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-undefined.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toString/fractionalseconddigits-undefined.js
@@ -16,14 +16,11 @@
 features: [Temporal]
 ---*/
 
-const zeroSeconds = new Temporal.PlainDateTime(1976, 11, 18, 15, 23);
-const wholeSeconds = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30);
-const subSeconds = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 400);
-
 const tests = [
-  [zeroSeconds, "1976-11-18T15:23:00"],
-  [wholeSeconds, "1976-11-18T15:23:30"],
-  [subSeconds, "1976-11-18T15:23:30.1234"],
+  [new Temporal.PlainDateTime(1976, 2, 4, 5, 3, 1), "1976-02-04T05:03:01"],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23), "1976-11-18T15:23:00"],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30), "1976-11-18T15:23:30"],
+  [new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 400), "1976-11-18T15:23:30.1234"],
 ];
 
 for (const [datetime, expected] of tests) {
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toStringTag/prop-desc.js
new file mode 100644
index 0000000..a2488d5
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toStringTag/prop-desc.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype-@@tostringtag
+description: The @@toStringTag property of Temporal.PlainDateTime
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainDateTime.prototype, Symbol.toStringTag, {
+  value: "Temporal.PlainDateTime",
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/branding.js
index e8f419a..d58915e 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof toZonedDateTime, "function");
 
-assert.throws(TypeError, () => toZonedDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTime.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTime.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTime.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = [new Temporal.TimeZone("UTC")];
+
+assert.throws(TypeError, () => toZonedDateTime.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => toZonedDateTime.apply(null, args), "null");
+assert.throws(TypeError, () => toZonedDateTime.apply(true, args), "true");
+assert.throws(TypeError, () => toZonedDateTime.apply("", args), "empty string");
+assert.throws(TypeError, () => toZonedDateTime.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => toZonedDateTime.apply(1, args), "1");
+assert.throws(TypeError, () => toZonedDateTime.apply({}, args), "plain object");
+assert.throws(TypeError, () => toZonedDateTime.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => toZonedDateTime.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/until/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/until/argument-string-time-separators.js
new file mode 100644
index 0000000..c6471af
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/until/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.until
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1976-11-18T15:23", "uppercase T"],
+  ["1976-11-18t15:23", "lowercase T"],
+  ["1976-11-18 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainDateTime(1976, 11, 18, 15, 23);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.until(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/until/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/until/branding.js
index d879f44..bc1e396 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/until/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/until/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof until, "function");
 
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => until.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = [new Temporal.PlainDateTime(2022, 6, 22)];
+
+assert.throws(TypeError, () => until.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => until.apply(null, args), "null");
+assert.throws(TypeError, () => until.apply(true, args), "true");
+assert.throws(TypeError, () => until.apply("", args), "empty string");
+assert.throws(TypeError, () => until.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => until.apply(1, args), "1");
+assert.throws(TypeError, () => until.apply({}, args), "plain object");
+assert.throws(TypeError, () => until.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => until.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/custom.js
new file mode 100644
index 0000000..32fd571
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/custom.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaindatetime.prototype.weekofyear
+description: Custom calendar tests for weekOfYear().
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+let calls = 0;
+class CustomCalendar extends Temporal.Calendar {
+  constructor() {
+    super("iso8601");
+  }
+  weekOfYear(...args) {
+    ++calls;
+    assert.compareArray(args, [pdt], "weekOfYear arguments");
+    return "7";
+  }
+}
+
+const calendar = new CustomCalendar();
+const pdt = new Temporal.PlainDateTime(1830, 8, 25, 20, 0, 0, 0, 0, 0, calendar);
+const result = pdt.weekOfYear;
+assert.sameValue(result, "7", "result");
+assert.sameValue(calls, 1, "calls");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/with/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/with/branding.js
index 2b94212..f682924 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/with/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/with/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof with_, "function");
 
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => with_.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = [{ year: 2022 }];
+
+assert.throws(TypeError, () => with_.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => with_.apply(null, args), "null");
+assert.throws(TypeError, () => with_.apply(true, args), "true");
+assert.throws(TypeError, () => with_.apply("", args), "empty string");
+assert.throws(TypeError, () => with_.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => with_.apply(1, args), "1");
+assert.throws(TypeError, () => with_.apply({}, args), "plain object");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/branding.js
index 6c001fb..911f96a 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof withCalendar, "function");
 
-assert.throws(TypeError, () => withCalendar.call(undefined), "undefined");
-assert.throws(TypeError, () => withCalendar.call(null), "null");
-assert.throws(TypeError, () => withCalendar.call(true), "true");
-assert.throws(TypeError, () => withCalendar.call(""), "empty string");
-assert.throws(TypeError, () => withCalendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withCalendar.call(1), "1");
-assert.throws(TypeError, () => withCalendar.call({}), "plain object");
-assert.throws(TypeError, () => withCalendar.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => withCalendar.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = [new Temporal.Calendar("iso8601")];
+
+assert.throws(TypeError, () => withCalendar.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => withCalendar.apply(null, args), "null");
+assert.throws(TypeError, () => withCalendar.apply(true, args), "true");
+assert.throws(TypeError, () => withCalendar.apply("", args), "empty string");
+assert.throws(TypeError, () => withCalendar.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => withCalendar.apply(1, args), "1");
+assert.throws(TypeError, () => withCalendar.apply({}, args), "plain object");
+assert.throws(TypeError, () => withCalendar.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => withCalendar.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/leap-second.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso.js
index 326aed7..548a937 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso.js
@@ -10,6 +10,8 @@
 
 const cal = {
   id: 'thisisnotiso',
+  era() { return undefined; },
+  eraYear() { return undefined; },
   toString() { return "this is a string"; },
   year() { return 2008; },
   month() { return 9; },
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id.js
index 5c75366..7abc867 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id.js
@@ -13,6 +13,8 @@
 };
 const cal2 = {
   id: 'thisisnotiso',
+  era() { return undefined; },
+  eraYear() { return undefined; },
   toString() { return "this is a string"; },
   year() { return 2008; },
   month() { return 9; },
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object.js
index 9eaba18..bfe7f37 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object.js
@@ -11,6 +11,8 @@
 let calls = 0;
 const cal = {
   id: 'thisisnotiso',
+  era() { return undefined; },
+  eraYear() { return undefined; },
   toString() {
     ++calls;
     return "this is a string";
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
index 12a28cb..58864db 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
@@ -10,6 +10,8 @@
 
 const cal = {
   id: 'thisisnotiso',
+  era() { return undefined; },
+  eraYear() { return undefined; },
   toString() { return "this is a string"; },
   year() { return 2008; },
   month() { return 9; },
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-iso-calendar.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-iso-calendar.js
index f587118..45e3d8b 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-iso-calendar.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-iso-calendar.js
@@ -10,6 +10,8 @@
 
 const cal = {
   id: "thisisnotiso",
+  era() { return undefined; },
+  eraYear() { return undefined; },
   toString() { return "this is a string"; },
   year() { return 2008; },
   month() { return 9; },
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-time-separators.js
new file mode 100644
index 0000000..026eb0c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.withplaindate
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainDateTime(1976, 11, 18, 15, 23);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.withPlainDate(arg);
+
+  TemporalHelpers.assertPlainDateTime(
+    result,
+    2000, 5, "M05", 2, 15, 23, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..4d2c8ec
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.withplaindate
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
+
+assert.throws(Test262Error, () => instance.withPlainDate(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..9d8c966
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.withplaindate
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
+instance.withPlainDate(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/branding.js
index e4d5ef4..1306765 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof withPlainDate, "function");
 
-assert.throws(TypeError, () => withPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => withPlainDate.call(null), "null");
-assert.throws(TypeError, () => withPlainDate.call(true), "true");
-assert.throws(TypeError, () => withPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => withPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withPlainDate.call(1), "1");
-assert.throws(TypeError, () => withPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => withPlainDate.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => withPlainDate.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
+const args = [new Temporal.PlainDate(2022, 6, 22)];
+
+assert.throws(TypeError, () => withPlainDate.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => withPlainDate.apply(null, args), "null");
+assert.throws(TypeError, () => withPlainDate.apply(true, args), "true");
+assert.throws(TypeError, () => withPlainDate.apply("", args), "empty string");
+assert.throws(TypeError, () => withPlainDate.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => withPlainDate.apply(1, args), "1");
+assert.throws(TypeError, () => withPlainDate.apply({}, args), "plain object");
+assert.throws(TypeError, () => withPlainDate.apply(Temporal.PlainDateTime, args), "Temporal.PlainDateTime");
+assert.throws(TypeError, () => withPlainDate.apply(Temporal.PlainDateTime.prototype, args), "Temporal.PlainDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-separators.js
new file mode 100644
index 0000000..92b8857
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.prototype.withplaintime
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1976-11-18T12:34:56.987654321", "uppercase T"],
+  ["1976-11-18t12:34:56.987654321", "lowercase T"],
+  ["1976-11-18 12:34:56.987654321", "space between date and time"],
+  ["T12:34:56.987654321", "time-only uppercase T"],
+  ["t12:34:56.987654321", "time-only lowercase T"],
+];
+
+const instance = new Temporal.PlainDateTime(1976, 11, 18, 15, 23);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.withPlainTime(arg);
+
+  TemporalHelpers.assertPlainDateTime(
+    result,
+    1976, 11, "M11", 18, 12, 34, 56, 987, 654, 321,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainDateTime/subclass.js b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/subclass.js
new file mode 100644
index 0000000..bb8a4fa
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainDateTime/subclass.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime
+description: Test for Temporal.PlainDateTime subclassing.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+class CustomPlainDateTime extends Temporal.PlainDateTime {
+}
+
+const instance = new CustomPlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
+TemporalHelpers.assertPlainDateTime(instance, 2000, 5, "M05", 2, 12, 34, 56, 987, 654, 321);
+assert.sameValue(Object.getPrototypeOf(instance), CustomPlainDateTime.prototype, "Instance of CustomPlainDateTime");
+assert(instance instanceof CustomPlainDateTime, "Instance of CustomPlainDateTime");
+assert(instance instanceof Temporal.PlainDateTime, "Instance of Temporal.PlainDateTime");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/constructor.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/constructor.js
index 5df5c20..4680c2e 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/constructor.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/constructor.js
@@ -9,4 +9,4 @@
 features: [Temporal]
 ---*/
 
-assert.throws(TypeError, () => Temporal.PlainMonthDay());
+assert.throws(TypeError, () => Temporal.PlainMonthDay(1, 2));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/from/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/from/argument-string-time-separators.js
new file mode 100644
index 0000000..84cb7b9
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/from/argument-string-time-separators.js
@@ -0,0 +1,25 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainmonthday.from
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1976-05-02T15:23", "uppercase T"],
+  ["1976-05-02t15:23", "lowercase T"],
+  ["1976-05-02 15:23", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  const result = Temporal.PlainMonthDay.from(arg);
+
+  TemporalHelpers.assertPlainMonthDay(
+    result,
+    "M05", 2,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/constructor.js
new file mode 100644
index 0000000..d77e3ac
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainmonthday.prototype.constructor
+description: Test for Temporal.PlainMonthDay.prototype.constructor.
+info: The initial value of Temporal.PlainMonthDay.prototype.constructor is %Temporal.PlainMonthDay%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainMonthDay.prototype, "constructor", {
+  value: Temporal.PlainMonthDay,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-string-time-separators.js
new file mode 100644
index 0000000..daa37b7
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/equals/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainmonthday.prototype.equals
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1976-05-02T15:23", "uppercase T"],
+  ["1976-05-02t15:23", "lowercase T"],
+  ["1976-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainMonthDay(5, 2);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.equals(arg);
+
+  assert.sameValue(
+    result,
+    true,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/equals/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/equals/branding.js
index 88bb5ad..39e0185 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/equals/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/equals/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof equals, "function");
 
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => equals.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
+const args = [new Temporal.PlainMonthDay(5, 2)];
+
+assert.throws(TypeError, () => equals.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => equals.apply(null, args), "null");
+assert.throws(TypeError, () => equals.apply(true, args), "true");
+assert.throws(TypeError, () => equals.apply("", args), "empty string");
+assert.throws(TypeError, () => equals.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => equals.apply(1, args), "1");
+assert.throws(TypeError, () => equals.apply({}, args), "plain object");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainMonthDay, args), "Temporal.PlainMonthDay");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainMonthDay.prototype, args), "Temporal.PlainMonthDay.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/getISOFields/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/getISOFields/custom.js
new file mode 100644
index 0000000..391c708
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/getISOFields/custom.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainmonthday.prototype.getisofields
+description: getISOFields does not call into user code.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = TemporalHelpers.calendarThrowEverything();
+const instance = new Temporal.PlainMonthDay(5, 2, calendar);
+const result = instance.getISOFields();
+
+assert.sameValue(result.isoYear, 1972, "isoYear result");
+assert.sameValue(result.isoMonth, 5, "isoMonth result");
+assert.sameValue(result.isoDay, 2, "isoDay result");
+assert.sameValue(result.calendar, calendar, "calendar result");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/getISOFields/prototype.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/getISOFields/prototype.js
new file mode 100644
index 0000000..dc43ace
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/getISOFields/prototype.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainmonthday.prototype.getisofields
+description: Correct prototype on the object returned from getISOFields
+features: [Temporal]
+---*/
+
+const instance = new Temporal.PlainMonthDay(5, 2);
+const result = instance.getISOFields();
+assert.sameValue(Object.getPrototypeOf(result), Object.prototype, "prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/branding.js
index eb32166..3696144 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof toPlainDate, "function");
 
-assert.throws(TypeError, () => toPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDate.call(null), "null");
-assert.throws(TypeError, () => toPlainDate.call(true), "true");
-assert.throws(TypeError, () => toPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDate.call(1), "1");
-assert.throws(TypeError, () => toPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
+const args = [{ year: 2022 }];
+
+assert.throws(TypeError, () => toPlainDate.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => toPlainDate.apply(null, args), "null");
+assert.throws(TypeError, () => toPlainDate.apply(true, args), "true");
+assert.throws(TypeError, () => toPlainDate.apply("", args), "empty string");
+assert.throws(TypeError, () => toPlainDate.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => toPlainDate.apply(1, args), "1");
+assert.throws(TypeError, () => toPlainDate.apply({}, args), "plain object");
+assert.throws(TypeError, () => toPlainDate.apply(Temporal.PlainMonthDay, args), "Temporal.PlainMonthDay");
+assert.throws(TypeError, () => toPlainDate.apply(Temporal.PlainMonthDay.prototype, args), "Temporal.PlainMonthDay.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toStringTag/prop-desc.js
new file mode 100644
index 0000000..bcff288
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toStringTag/prop-desc.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainmonthday.prototype-@@tostringtag
+description: The @@toStringTag property of Temporal.PlainMonthDay
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainMonthDay.prototype, Symbol.toStringTag, {
+  value: "Temporal.PlainMonthDay",
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/with/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/with/branding.js
index e178fbad..e8f69fd 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/with/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/with/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof with_, "function");
 
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => with_.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
+const args = [{ year: 2022, month: 12 }];
+
+assert.throws(TypeError, () => with_.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => with_.apply(null, args), "null");
+assert.throws(TypeError, () => with_.apply(true, args), "true");
+assert.throws(TypeError, () => with_.apply("", args), "empty string");
+assert.throws(TypeError, () => with_.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => with_.apply(1, args), "1");
+assert.throws(TypeError, () => with_.apply({}, args), "plain object");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainMonthDay, args), "Temporal.PlainMonthDay");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainMonthDay.prototype, args), "Temporal.PlainMonthDay.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/subclass.js b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/subclass.js
new file mode 100644
index 0000000..94b0bc4
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainMonthDay/subclass.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainmonthday
+description: Test for Temporal.PlainMonthDay subclassing.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+class CustomPlainMonthDay extends Temporal.PlainMonthDay {
+}
+
+const instance = new CustomPlainMonthDay(5, 2);
+TemporalHelpers.assertPlainMonthDay(instance, "M05", 2);
+assert.sameValue(Object.getPrototypeOf(instance), CustomPlainMonthDay.prototype, "Instance of CustomPlainMonthDay");
+assert(instance instanceof CustomPlainMonthDay, "Instance of CustomPlainMonthDay");
+assert(instance instanceof Temporal.PlainMonthDay, "Instance of Temporal.PlainMonthDay");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/compare/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/compare/argument-string-time-separators.js
new file mode 100644
index 0000000..64fdcfe
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/compare/argument-string-time-separators.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.compare
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+const tests = [
+  ["1976-11-18T12:34:56.987654321", "uppercase T"],
+  ["1976-11-18t12:34:56.987654321", "lowercase T"],
+  ["1976-11-18 12:34:56.987654321", "space between date and time"],
+  ["T12:34:56.987654321", "time-only uppercase T"],
+  ["t12:34:56.987654321", "time-only lowercase T"],
+];
+
+tests.forEach(([arg, description]) => {
+  assert.sameValue(
+    Temporal.PlainTime.compare(arg, plainTime),
+    0,
+    `variant time separators (${description}), first argument`
+  );
+
+  assert.sameValue(
+    Temporal.PlainTime.compare(plainTime, arg),
+    0,
+    `variant time separators (${description}), second argument`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/constructor.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/constructor.js
index 819dcba..b3c8f40 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/constructor.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/constructor.js
@@ -9,4 +9,4 @@
 features: [Temporal]
 ---*/
 
-assert.throws(TypeError, () => Temporal.PlainTime());
+assert.throws(TypeError, () => Temporal.PlainTime(12, 0, 0));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/from/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/from/argument-string-time-separators.js
new file mode 100644
index 0000000..536b716
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/from/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.from
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1976-11-18T12:34:56.987654321", "uppercase T"],
+  ["1976-11-18t12:34:56.987654321", "lowercase T"],
+  ["1976-11-18 12:34:56.987654321", "space between date and time"],
+  ["T12:34:56.987654321", "time-only uppercase T"],
+  ["t12:34:56.987654321", "time-only lowercase T"],
+];
+
+tests.forEach(([arg, description]) => {
+  const result = Temporal.PlainTime.from(arg);
+
+  TemporalHelpers.assertPlainTime(
+    result,
+    12, 34, 56, 987, 654, 321,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/add/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/add/argument-string-negative-fractional-units.js
index 81a981b..8fb1e03 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/add/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/add/argument-string-negative-fractional-units.js
@@ -11,7 +11,7 @@
 const instance = new Temporal.PlainTime();
 
 const resultHours = instance.add("-PT24.567890123H");
-TemporalHelpers.assertPlainTime(resultHours, 23, 25, 55, 595, 557, 201, "negative fractional hours");
+TemporalHelpers.assertPlainTime(resultHours, 23, 25, 55, 595, 557, 200, "negative fractional hours");
 
 const resultMinutes = instance.add("-PT1440.567890123M");
-TemporalHelpers.assertPlainTime(resultMinutes, 23, 59, 25, 926, 592, 621, "negative fractional minutes");
+TemporalHelpers.assertPlainTime(resultMinutes, 23, 59, 25, 926, 592, 620, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/add/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/add/branding.js
index 6818345..6139b87 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/add/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/add/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof add, "function");
 
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => add.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
+const args = [new Temporal.Duration(0, 0, 0, 0, 5)];
+
+assert.throws(TypeError, () => add.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => add.apply(null, args), "null");
+assert.throws(TypeError, () => add.apply(true, args), "true");
+assert.throws(TypeError, () => add.apply("", args), "empty string");
+assert.throws(TypeError, () => add.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => add.apply(1, args), "1");
+assert.throws(TypeError, () => add.apply({}, args), "plain object");
+assert.throws(TypeError, () => add.apply(Temporal.PlainTime, args), "Temporal.PlainTime");
+assert.throws(TypeError, () => add.apply(Temporal.PlainTime.prototype, args), "Temporal.PlainTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/calendar/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/calendar/basic.js
new file mode 100644
index 0000000..83bd0e3
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/calendar/basic.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plaintime.prototype.calendar
+description: calendar returns the iso8601 calendar.
+features: [Temporal]
+---*/
+
+const pt = new Temporal.PlainTime();
+assert(pt.calendar instanceof Temporal.Calendar, "getter returns Calendar object");
+assert.sameValue(pt.calendar.toString(), "iso8601", "getter returns iso8601 calendar");
+assert.sameValue(pt.calendar, pt.calendar, "getter returns the same object");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/constructor.js
new file mode 100644
index 0000000..5c48f29
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.constructor
+description: Test for Temporal.PlainTime.prototype.constructor.
+info: The initial value of Temporal.PlainTime.prototype.constructor is %Temporal.PlainTime%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainTime.prototype, "constructor", {
+  value: Temporal.PlainTime,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/equals/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/equals/argument-string-time-separators.js
new file mode 100644
index 0000000..c4d41b7
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/equals/argument-string-time-separators.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.equals
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1976-11-18T12:34:56.987654321", "uppercase T"],
+  ["1976-11-18t12:34:56.987654321", "lowercase T"],
+  ["1976-11-18 12:34:56.987654321", "space between date and time"],
+  ["T12:34:56.987654321", "time-only uppercase T"],
+  ["t12:34:56.987654321", "time-only lowercase T"],
+];
+
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.equals(arg);
+
+  assert.sameValue(
+    result,
+    true,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/equals/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/equals/branding.js
index 350a74d..82e4183 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/equals/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/equals/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof equals, "function");
 
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => equals.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
+const args = [new Temporal.PlainTime(12)];
+
+assert.throws(TypeError, () => equals.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => equals.apply(null, args), "null");
+assert.throws(TypeError, () => equals.apply(true, args), "true");
+assert.throws(TypeError, () => equals.apply("", args), "empty string");
+assert.throws(TypeError, () => equals.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => equals.apply(1, args), "1");
+assert.throws(TypeError, () => equals.apply({}, args), "plain object");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainTime, args), "Temporal.PlainTime");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainTime.prototype, args), "Temporal.PlainTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/getISOFields/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/getISOFields/custom.js
new file mode 100644
index 0000000..cf6d41c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/getISOFields/custom.js
@@ -0,0 +1,21 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.getisofields
+description: getISOFields does not call into user code.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = TemporalHelpers.calendarThrowEverything();
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321, calendar);
+const result = instance.getISOFields();
+
+assert.sameValue(result.isoHour, 12, "isoHour result");
+assert.sameValue(result.isoMinute, 34, "isoMinute result");
+assert.sameValue(result.isoSecond, 56, "isoSecond result");
+assert.sameValue(result.isoMillisecond, 987, "isoMillisecond result");
+assert.sameValue(result.isoMicrosecond, 654, "isoMicrosecond result");
+assert.sameValue(result.isoNanosecond, 321, "isoNanosecond result");
+assert.sameValue(result.calendar.id, "iso8601", "calendar result");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/getISOFields/prototype.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/getISOFields/prototype.js
new file mode 100644
index 0000000..db4982a
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/getISOFields/prototype.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.getisofields
+description: Correct prototype on the object returned from getISOFields
+features: [Temporal]
+---*/
+
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+const result = instance.getISOFields();
+assert.sameValue(Object.getPrototypeOf(result), Object.prototype, "prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/round/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/round/branding.js
index e476134..58e36e8 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/round/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/round/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof round, "function");
 
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => round.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
+const args = ["hour"];
+
+assert.throws(TypeError, () => round.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => round.apply(null, args), "null");
+assert.throws(TypeError, () => round.apply(true, args), "true");
+assert.throws(TypeError, () => round.apply("", args), "empty string");
+assert.throws(TypeError, () => round.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => round.apply(1, args), "1");
+assert.throws(TypeError, () => round.apply({}, args), "plain object");
+assert.throws(TypeError, () => round.apply(Temporal.PlainTime, args), "Temporal.PlainTime");
+assert.throws(TypeError, () => round.apply(Temporal.PlainTime.prototype, args), "Temporal.PlainTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/since/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/since/argument-string-time-separators.js
new file mode 100644
index 0000000..a8084a6
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/since/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.since
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1976-11-18T12:34:56.987654321", "uppercase T"],
+  ["1976-11-18t12:34:56.987654321", "lowercase T"],
+  ["1976-11-18 12:34:56.987654321", "space between date and time"],
+  ["T12:34:56.987654321", "time-only uppercase T"],
+  ["t12:34:56.987654321", "time-only lowercase T"],
+];
+
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.since(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/since/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/since/branding.js
index 632ee5c..4232b61 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/since/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/since/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof since, "function");
 
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => since.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
+const args = [new Temporal.PlainTime(12)];
+
+assert.throws(TypeError, () => since.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => since.apply(null, args), "null");
+assert.throws(TypeError, () => since.apply(true, args), "true");
+assert.throws(TypeError, () => since.apply("", args), "empty string");
+assert.throws(TypeError, () => since.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => since.apply(1, args), "1");
+assert.throws(TypeError, () => since.apply({}, args), "plain object");
+assert.throws(TypeError, () => since.apply(Temporal.PlainTime, args), "Temporal.PlainTime");
+assert.throws(TypeError, () => since.apply(Temporal.PlainTime.prototype, args), "Temporal.PlainTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/subtract/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/subtract/argument-string-negative-fractional-units.js
index 6ccef17..882df84 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/subtract/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/subtract/argument-string-negative-fractional-units.js
@@ -11,7 +11,7 @@
 const instance = new Temporal.PlainTime();
 
 const resultHours = instance.subtract("-PT24.567890123H");
-TemporalHelpers.assertPlainTime(resultHours, 0, 34, 4, 404, 442, 799, "negative fractional hours");
+TemporalHelpers.assertPlainTime(resultHours, 0, 34, 4, 404, 442, 800, "negative fractional hours");
 
 const resultMinutes = instance.subtract("-PT1440.567890123M");
-TemporalHelpers.assertPlainTime(resultMinutes, 0, 0, 34, 73, 407, 379, "negative fractional minutes");
+TemporalHelpers.assertPlainTime(resultMinutes, 0, 0, 34, 73, 407, 380, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/subtract/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/subtract/branding.js
index 503d158..ff88f4d 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/subtract/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/subtract/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof subtract, "function");
 
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
+const args = [new Temporal.Duration(0, 0, 0, 0, 5)];
+
+assert.throws(TypeError, () => subtract.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => subtract.apply(null, args), "null");
+assert.throws(TypeError, () => subtract.apply(true, args), "true");
+assert.throws(TypeError, () => subtract.apply("", args), "empty string");
+assert.throws(TypeError, () => subtract.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => subtract.apply(1, args), "1");
+assert.throws(TypeError, () => subtract.apply({}, args), "plain object");
+assert.throws(TypeError, () => subtract.apply(Temporal.PlainTime, args), "Temporal.PlainTime");
+assert.throws(TypeError, () => subtract.apply(Temporal.PlainTime.prototype, args), "Temporal.PlainTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toJSON/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toJSON/basic.js
new file mode 100644
index 0000000..6d9c606
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toJSON/basic.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.tojson
+description: Basic behavior for toJSON
+features: [Temporal]
+---*/
+
+const tests = [
+  [new Temporal.PlainTime(5, 3, 1), "05:03:01"],
+  [new Temporal.PlainTime(15, 23), "15:23:00"],
+  [new Temporal.PlainTime(15, 23, 30), "15:23:30"],
+  [new Temporal.PlainTime(15, 23, 30, 123, 400), "15:23:30.1234"],
+];
+
+const options = new Proxy({}, {
+  get() { throw new Test262Error("should not get properties off argument") }
+});
+for (const [time, expected] of tests) {
+  assert.sameValue(time.toJSON(), expected, "toJSON without argument");
+  assert.sameValue(time.toJSON(options), expected, "toJSON with argument");
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/leap-second.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-string-time-separators.js
new file mode 100644
index 0000000..47f1ddf
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.toplaindatetime
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.toPlainDateTime(arg);
+
+  TemporalHelpers.assertPlainDateTime(
+    result,
+    2000, 5, "M05", 2, 12, 34, 56, 987, 654, 321,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..3aad3b6
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.toplaindatetime
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+
+assert.throws(Test262Error, () => instance.toPlainDateTime(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..29ab873
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.toplaindatetime
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+instance.toPlainDateTime(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/branding.js
index 16a5cd6..55c9139 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toPlainDateTime/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof toPlainDateTime, "function");
 
-assert.throws(TypeError, () => toPlainDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDateTime.call(null), "null");
-assert.throws(TypeError, () => toPlainDateTime.call(true), "true");
-assert.throws(TypeError, () => toPlainDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDateTime.call(1), "1");
-assert.throws(TypeError, () => toPlainDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDateTime.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => toPlainDateTime.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
+const args = [new Temporal.PlainDate(2022, 6, 22)];
+
+assert.throws(TypeError, () => toPlainDateTime.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => toPlainDateTime.apply(null, args), "null");
+assert.throws(TypeError, () => toPlainDateTime.apply(true, args), "true");
+assert.throws(TypeError, () => toPlainDateTime.apply("", args), "empty string");
+assert.throws(TypeError, () => toPlainDateTime.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => toPlainDateTime.apply(1, args), "1");
+assert.throws(TypeError, () => toPlainDateTime.apply({}, args), "plain object");
+assert.throws(TypeError, () => toPlainDateTime.apply(Temporal.PlainTime, args), "Temporal.PlainTime");
+assert.throws(TypeError, () => toPlainDateTime.apply(Temporal.PlainTime.prototype, args), "Temporal.PlainTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-auto.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-auto.js
index 2c90ffa..2440b00 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-auto.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-auto.js
@@ -7,14 +7,11 @@
 features: [Temporal]
 ---*/
 
-const zeroSeconds = new Temporal.PlainTime(15, 23);
-const wholeSeconds = new Temporal.PlainTime(15, 23, 30);
-const subSeconds = new Temporal.PlainTime(15, 23, 30, 123, 400);
-
 const tests = [
-  [zeroSeconds, "15:23:00"],
-  [wholeSeconds, "15:23:30"],
-  [subSeconds, "15:23:30.1234"],
+  [new Temporal.PlainTime(5, 3, 1), "05:03:01"],
+  [new Temporal.PlainTime(15, 23), "15:23:00"],
+  [new Temporal.PlainTime(15, 23, 30), "15:23:30"],
+  [new Temporal.PlainTime(15, 23, 30, 123, 400), "15:23:30.1234"],
 ];
 
 for (const [time, expected] of tests) {
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-number.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-number.js
index 0ea1eb8..0dd96d5 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-number.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-number.js
@@ -7,10 +7,13 @@
 features: [Temporal]
 ---*/
 
+const fewSeconds = new Temporal.PlainTime(5, 3, 1);
 const zeroSeconds = new Temporal.PlainTime(15, 23);
 const wholeSeconds = new Temporal.PlainTime(15, 23, 30);
 const subSeconds = new Temporal.PlainTime(15, 23, 30, 123, 400);
 
+assert.sameValue(fewSeconds.toString({ fractionalSecondDigits: 0 }), "05:03:01",
+  "pads parts with 0");
 assert.sameValue(subSeconds.toString({ fractionalSecondDigits: 0 }), "15:23:30",
   "truncates 4 decimal places to 0");
 assert.sameValue(zeroSeconds.toString({ fractionalSecondDigits: 2 }), "15:23:00.00",
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-undefined.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-undefined.js
index 6c33c55..b8014a6 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-undefined.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toString/fractionalseconddigits-undefined.js
@@ -16,14 +16,11 @@
 features: [Temporal]
 ---*/
 
-const zeroSeconds = new Temporal.PlainTime(15, 23);
-const wholeSeconds = new Temporal.PlainTime(15, 23, 30);
-const subSeconds = new Temporal.PlainTime(15, 23, 30, 123, 400);
-
 const tests = [
-  [zeroSeconds, "15:23:00"],
-  [wholeSeconds, "15:23:30"],
-  [subSeconds, "15:23:30.1234"],
+  [new Temporal.PlainTime(5, 3, 1), "05:03:01"],
+  [new Temporal.PlainTime(15, 23), "15:23:00"],
+  [new Temporal.PlainTime(15, 23, 30), "15:23:30"],
+  [new Temporal.PlainTime(15, 23, 30, 123, 400), "15:23:30.1234"],
 ];
 
 for (const [time, expected] of tests) {
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toStringTag/prop-desc.js
new file mode 100644
index 0000000..8128739
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toStringTag/prop-desc.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype-@@tostringtag
+description: The @@toStringTag property of Temporal.PlainTime
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainTime.prototype, Symbol.toStringTag, {
+  value: "Temporal.PlainTime",
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/leap-second.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-missing-properties.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-missing-properties.js
new file mode 100644
index 0000000..7fea345
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-propertybag-missing-properties.js
@@ -0,0 +1,22 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.tozoneddatetime
+description: Both plainDate and timeZone properties need to not be undefined.
+features: [Temporal]
+---*/
+
+const instance = new Temporal.PlainTime();
+const plainDate = new Temporal.PlainDate(2022, 5, 19);
+const timeZone = new Temporal.TimeZone("UTC");
+assert.throws(TypeError, () => instance.toZonedDateTime({}),
+  "no properties");
+assert.throws(TypeError, () => instance.toZonedDateTime({ plainDate }),
+  "only plainDate");
+assert.throws(TypeError, () => instance.toZonedDateTime({ plainDate, timeZone: undefined }),
+  "timeZone explicitly undefined");
+assert.throws(TypeError, () => instance.toZonedDateTime({ timeZone }),
+  "only timeZone");
+assert.throws(TypeError, () => instance.toZonedDateTime({ plainDate: undefined, timeZone }),
+  "plainDate explicitly undefined");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-string-time-separators.js
new file mode 100644
index 0000000..bcc6e52
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.tozoneddatetime
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.toZonedDateTime({ plainDate: arg, timeZone: "UTC" });
+
+  assert.sameValue(
+    result.epochNanoseconds,
+    957_270_896_987_654_321n,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..34e609e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.tozoneddatetime
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+
+assert.throws(Test262Error, () => instance.toZonedDateTime({ plainDate: arg, timeZone: "UTC" }));
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..9f1421e
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.tozoneddatetime
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+instance.toZonedDateTime({ plainDate: arg, timeZone: "UTC" });
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/branding.js
index 870960f..8da0b7e 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof toZonedDateTime, "function");
 
-assert.throws(TypeError, () => toZonedDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTime.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTime.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTime.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
+const args = [{ plainDate: "2022-05-19", timeZone: "UTC" }];
+
+assert.throws(TypeError, () => toZonedDateTime.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => toZonedDateTime.apply(null, args), "null");
+assert.throws(TypeError, () => toZonedDateTime.apply(true, args), "true");
+assert.throws(TypeError, () => toZonedDateTime.apply("", args), "empty string");
+assert.throws(TypeError, () => toZonedDateTime.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => toZonedDateTime.apply(1, args), "1");
+assert.throws(TypeError, () => toZonedDateTime.apply({}, args), "plain object");
+assert.throws(TypeError, () => toZonedDateTime.apply(Temporal.PlainTime, args), "Temporal.PlainTime");
+assert.throws(TypeError, () => toZonedDateTime.apply(Temporal.PlainTime.prototype, args), "Temporal.PlainTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/until/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/until/argument-string-time-separators.js
new file mode 100644
index 0000000..659f282
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/until/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime.prototype.until
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1976-11-18T12:34:56.987654321", "uppercase T"],
+  ["1976-11-18t12:34:56.987654321", "lowercase T"],
+  ["1976-11-18 12:34:56.987654321", "space between date and time"],
+  ["T12:34:56.987654321", "time-only uppercase T"],
+  ["t12:34:56.987654321", "time-only lowercase T"],
+];
+
+const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.until(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/until/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/until/branding.js
index 44234d5..960d787 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/until/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/until/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof until, "function");
 
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => until.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
+const args = [new Temporal.PlainTime(12)];
+
+assert.throws(TypeError, () => until.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => until.apply(null, args), "null");
+assert.throws(TypeError, () => until.apply(true, args), "true");
+assert.throws(TypeError, () => until.apply("", args), "empty string");
+assert.throws(TypeError, () => until.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => until.apply(1, args), "1");
+assert.throws(TypeError, () => until.apply({}, args), "plain object");
+assert.throws(TypeError, () => until.apply(Temporal.PlainTime, args), "Temporal.PlainTime");
+assert.throws(TypeError, () => until.apply(Temporal.PlainTime.prototype, args), "Temporal.PlainTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/with/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/with/branding.js
index e67ed99..c60d544 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/with/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/with/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof with_, "function");
 
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => with_.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
+const args = [{ hour: 7 }];
+
+assert.throws(TypeError, () => with_.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => with_.apply(null, args), "null");
+assert.throws(TypeError, () => with_.apply(true, args), "true");
+assert.throws(TypeError, () => with_.apply("", args), "empty string");
+assert.throws(TypeError, () => with_.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => with_.apply(1, args), "1");
+assert.throws(TypeError, () => with_.apply({}, args), "plain object");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainTime, args), "Temporal.PlainTime");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainTime.prototype, args), "Temporal.PlainTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/with/overflow-invalid-string.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/with/overflow-invalid-string.js
index dc50e779..fddeb0e 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/with/overflow-invalid-string.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/with/overflow-invalid-string.js
@@ -15,7 +15,6 @@
 ---*/
 
 const time = new Temporal.PlainTime(12);
-const values = ["", "CONSTRAIN", "balance", "other string"];
 
 const badOverflows = ["", "CONSTRAIN", "balance", "other string", "constra\u0131n", "reject\0"];
 for (const overflow of badOverflows) {
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainTime/subclass.js b/JSTests/test262/test/built-ins/Temporal/PlainTime/subclass.js
new file mode 100644
index 0000000..1b6de96
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainTime/subclass.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaintime
+description: Test for Temporal.PlainTime subclassing.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+class CustomPlainTime extends Temporal.PlainTime {
+}
+
+const instance = new CustomPlainTime(12, 34, 56, 987, 654, 321);
+TemporalHelpers.assertPlainTime(instance, 12, 34, 56, 987, 654, 321);
+assert.sameValue(Object.getPrototypeOf(instance), CustomPlainTime.prototype, "Instance of CustomPlainTime");
+assert(instance instanceof CustomPlainTime, "Instance of CustomPlainTime");
+assert(instance instanceof Temporal.PlainTime, "Instance of Temporal.PlainTime");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/compare/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/compare/argument-string-time-separators.js
new file mode 100644
index 0000000..b726c5d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/compare/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth.compare
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const yearMonth = new Temporal.PlainYearMonth(2019, 12);
+const tests = [
+  ["2019-12-15T15:23", "uppercase T"],
+  ["2019-12-15t15:23", "lowercase T"],
+  ["2019-12-15 15:23", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  assert.sameValue(
+    Temporal.PlainYearMonth.compare(arg, yearMonth),
+    0,
+    `variant time separators (${description}), first argument`
+  );
+
+  assert.sameValue(
+    Temporal.PlainYearMonth.compare(yearMonth, arg),
+    0,
+    `variant time separators (${description}), second argument`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/from/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/from/argument-string-time-separators.js
new file mode 100644
index 0000000..286a8b9
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/from/argument-string-time-separators.js
@@ -0,0 +1,25 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth.from
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["2019-12-15T15:23", "uppercase T"],
+  ["2019-12-15t15:23", "lowercase T"],
+  ["2019-12-15 15:23", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  const result = Temporal.PlainYearMonth.from(arg);
+
+  TemporalHelpers.assertPlainYearMonth(
+    result,
+    2019, 12, "M12",
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/add/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/add/branding.js
index e7b6716..0332dcf 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/add/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/add/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof add, "function");
 
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => add.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
+const args = [new Temporal.Duration(5)];
+
+assert.throws(TypeError, () => add.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => add.apply(null, args), "null");
+assert.throws(TypeError, () => add.apply(true, args), "true");
+assert.throws(TypeError, () => add.apply("", args), "empty string");
+assert.throws(TypeError, () => add.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => add.apply(1, args), "1");
+assert.throws(TypeError, () => add.apply({}, args), "plain object");
+assert.throws(TypeError, () => add.apply(Temporal.PlainYearMonth, args), "Temporal.PlainYearMonth");
+assert.throws(TypeError, () => add.apply(Temporal.PlainYearMonth.prototype, args), "Temporal.PlainYearMonth.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/add/calendar-datefromfields-called.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/add/calendar-datefromfields-called.js
index 40f5dd1..356c59a 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/add/calendar-datefromfields-called.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/add/calendar-datefromfields-called.js
@@ -105,7 +105,7 @@
 assert.sameValue(calendar.dateFromFieldsCalls.length, 1, "dateFromFields was called");
 assert.deepEqual(
   calendar.dateFromFieldsCalls[0][0],
-  { year: 2022, month: 2, monthCode: "M02", day: 1 },
+  { year: 2022, monthCode: "M02", day: 1 },
   "first day of month 2 passed to dateFromFields when adding positive duration"
 );
 assert.sameValue(calendar.dateFromFieldsCalls[0][1], undefined, "undefined options passed");
@@ -120,7 +120,7 @@
 assert.sameValue(calendar.dateFromFieldsCalls.length, 1, "dateFromFields was called");
 assert.deepEqual(
   calendar.dateFromFieldsCalls[0][0],
-  { year: 2022, month: 2, monthCode: "M02", day: 1 },
+  { year: 2022, monthCode: "M02", day: 1 },
   "first day of month 2 passed to dateFromFields when adding positive duration"
 );
 assert.sameValue(calendar.dateFromFieldsCalls[0][1], undefined, "undefined options passed");
@@ -135,7 +135,7 @@
 assert.sameValue(calendar.dateFromFieldsCalls.length, 1, "dateFromFields was called");
 assert.deepEqual(
   calendar.dateFromFieldsCalls[0][0],
-  { year: 2022, month: 2, monthCode: "M02", day: 36 },
+  { year: 2022, monthCode: "M02", day: 36 },
   "last day of month 2 passed to dateFromFields when adding negative duration"
 );
 assert.sameValue(calendar.dateFromFieldsCalls[0][1], undefined, "undefined options passed");
@@ -150,7 +150,7 @@
 assert.sameValue(calendar.dateFromFieldsCalls.length, 1, "dateFromFields was called");
 assert.deepEqual(
   calendar.dateFromFieldsCalls[0][0],
-  { year: 2022, month: 2, monthCode: "M02", day: 36 },
+  { year: 2022, monthCode: "M02", day: 36 },
   "last day of month 2 passed to dateFromFields when adding negative duration"
 );
 assert.sameValue(calendar.dateFromFieldsCalls[0][1], undefined, "undefined options passed");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/constructor.js
new file mode 100644
index 0000000..814d940
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth.prototype.constructor
+description: Test for Temporal.PlainYearMonth.prototype.constructor.
+info: The initial value of Temporal.PlainYearMonth.prototype.constructor is %Temporal.PlainYearMonth%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainYearMonth.prototype, "constructor", {
+  value: Temporal.PlainYearMonth,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/daysInMonth/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/daysInMonth/basic.js
index 94883e5..c8977a2 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/daysInMonth/basic.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/daysInMonth/basic.js
@@ -7,5 +7,12 @@
 features: [Temporal]
 ---*/
 
-const ym = new Temporal.PlainYearMonth(1976, 11);
-assert.sameValue(ym.daysInMonth, 30);
+const tests = [
+  [new Temporal.PlainYearMonth(1976, 2), 29],
+  [new Temporal.PlainYearMonth(1976, 11), 30],
+  [new Temporal.PlainYearMonth(1976, 12), 31],
+  [new Temporal.PlainYearMonth(1977, 2), 28],
+];
+for (const [plainYearMonth, expected] of tests) {
+  assert.sameValue(plainYearMonth.daysInMonth, expected, `${expected} days in the month of ${plainYearMonth}`);
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/daysInYear/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/daysInYear/basic.js
index f17cde0..1f3679b 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/daysInYear/basic.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/daysInYear/basic.js
@@ -7,5 +7,5 @@
 features: [Temporal]
 ---*/
 
-const ym = new Temporal.PlainYearMonth(1976, 11);
-assert.sameValue(ym.daysInYear, 366);
+assert.sameValue((new Temporal.PlainYearMonth(1976, 11)).daysInYear, 366, "leap year");
+assert.sameValue((new Temporal.PlainYearMonth(1977, 11)).daysInYear, 365, "non-leap year");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-string-time-separators.js
new file mode 100644
index 0000000..90962c8
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/equals/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth.prototype.equals
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2019-12-15T15:23", "uppercase T"],
+  ["2019-12-15t15:23", "lowercase T"],
+  ["2019-12-15 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainYearMonth(2019, 12);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.equals(arg);
+
+  assert.sameValue(
+    result,
+    true,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/equals/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/equals/branding.js
index b180108..81b6254 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/equals/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/equals/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof equals, "function");
 
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => equals.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
+const args = [new Temporal.PlainYearMonth(2022, 6)];
+
+assert.throws(TypeError, () => equals.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => equals.apply(null, args), "null");
+assert.throws(TypeError, () => equals.apply(true, args), "true");
+assert.throws(TypeError, () => equals.apply("", args), "empty string");
+assert.throws(TypeError, () => equals.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => equals.apply(1, args), "1");
+assert.throws(TypeError, () => equals.apply({}, args), "plain object");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainYearMonth, args), "Temporal.PlainYearMonth");
+assert.throws(TypeError, () => equals.apply(Temporal.PlainYearMonth.prototype, args), "Temporal.PlainYearMonth.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/getISOFields/custom.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/getISOFields/custom.js
new file mode 100644
index 0000000..64041f1
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/getISOFields/custom.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth.prototype.getisofields
+description: getISOFields does not call into user code.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = TemporalHelpers.calendarThrowEverything();
+const instance = new Temporal.PlainYearMonth(2000, 5, calendar);
+const result = instance.getISOFields();
+
+assert.sameValue(result.isoYear, 2000, "isoYear result");
+assert.sameValue(result.isoMonth, 5, "isoMonth result");
+assert.sameValue(result.isoDay, 1, "isoDay result");
+assert.sameValue(result.calendar, calendar, "calendar result");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/getISOFields/prototype.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/getISOFields/prototype.js
new file mode 100644
index 0000000..6df8852
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/getISOFields/prototype.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth.prototype.getisofields
+description: Correct prototype on the object returned from getISOFields
+features: [Temporal]
+---*/
+
+const instance = new Temporal.PlainYearMonth(2000, 5);
+const result = instance.getISOFields();
+assert.sameValue(Object.getPrototypeOf(result), Object.prototype, "prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/inLeapYear/basic.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/inLeapYear/basic.js
new file mode 100644
index 0000000..00cc891
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/inLeapYear/basic.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.plainyearmonth.prototype.inleapyear
+description: Basic test for inLeapYear
+features: [Temporal]
+---*/
+
+assert.sameValue((new Temporal.PlainYearMonth(1976, 11)).inLeapYear,
+  true, "leap year");
+assert.sameValue((new Temporal.PlainYearMonth(1977, 11)).inLeapYear,
+  false, "non-leap year");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-string-time-separators.js
new file mode 100644
index 0000000..b474172
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/since/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth.prototype.since
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["2019-12-15T15:23", "uppercase T"],
+  ["2019-12-15t15:23", "lowercase T"],
+  ["2019-12-15 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainYearMonth(2019, 12);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.since(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/since/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/since/branding.js
index f7327b4..4730290 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/since/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/since/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof since, "function");
 
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => since.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
+const args = [new Temporal.PlainYearMonth(2022, 6)];
+
+assert.throws(TypeError, () => since.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => since.apply(null, args), "null");
+assert.throws(TypeError, () => since.apply(true, args), "true");
+assert.throws(TypeError, () => since.apply("", args), "empty string");
+assert.throws(TypeError, () => since.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => since.apply(1, args), "1");
+assert.throws(TypeError, () => since.apply({}, args), "plain object");
+assert.throws(TypeError, () => since.apply(Temporal.PlainYearMonth, args), "Temporal.PlainYearMonth");
+assert.throws(TypeError, () => since.apply(Temporal.PlainYearMonth.prototype, args), "Temporal.PlainYearMonth.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/subtract/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/subtract/branding.js
index cc60497..0de3d15 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/subtract/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/subtract/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof subtract, "function");
 
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
+const args = [new Temporal.Duration(5)];
+
+assert.throws(TypeError, () => subtract.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => subtract.apply(null, args), "null");
+assert.throws(TypeError, () => subtract.apply(true, args), "true");
+assert.throws(TypeError, () => subtract.apply("", args), "empty string");
+assert.throws(TypeError, () => subtract.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => subtract.apply(1, args), "1");
+assert.throws(TypeError, () => subtract.apply({}, args), "plain object");
+assert.throws(TypeError, () => subtract.apply(Temporal.PlainYearMonth, args), "Temporal.PlainYearMonth");
+assert.throws(TypeError, () => subtract.apply(Temporal.PlainYearMonth.prototype, args), "Temporal.PlainYearMonth.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/subtract/calendar-datefromfields-called.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/subtract/calendar-datefromfields-called.js
index fda7e4b..91ed2c4 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/subtract/calendar-datefromfields-called.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/subtract/calendar-datefromfields-called.js
@@ -105,7 +105,7 @@
 assert.sameValue(calendar.dateFromFieldsCalls.length, 1, "dateFromFields was called");
 assert.deepEqual(
   calendar.dateFromFieldsCalls[0][0],
-  { year: 2022, month: 2, monthCode: "M02", day: 36 },
+  { year: 2022, monthCode: "M02", day: 36 },
   "last day of month 2 passed to dateFromFields when subtracting positive duration"
 );
 assert.sameValue(calendar.dateFromFieldsCalls[0][1], undefined, "undefined options passed");
@@ -120,7 +120,7 @@
 assert.sameValue(calendar.dateFromFieldsCalls.length, 1, "dateFromFields was called");
 assert.deepEqual(
   calendar.dateFromFieldsCalls[0][0],
-  { year: 2022, month: 2, monthCode: "M02", day: 36 },
+  { year: 2022, monthCode: "M02", day: 36 },
   "last day of month 2 passed to dateFromFields when subtracting positive duration"
 );
 assert.sameValue(calendar.dateFromFieldsCalls[0][1], undefined, "undefined options passed");
@@ -135,7 +135,7 @@
 assert.sameValue(calendar.dateFromFieldsCalls.length, 1, "dateFromFields was called");
 assert.deepEqual(
   calendar.dateFromFieldsCalls[0][0],
-  { year: 2022, month: 2, monthCode: "M02", day: 1 },
+  { year: 2022, monthCode: "M02", day: 1 },
   "first day of month 2 passed to dateFromFields when subtracting negative duration"
 );
 assert.sameValue(calendar.dateFromFieldsCalls[0][1], undefined, "undefined options passed");
@@ -150,7 +150,7 @@
 assert.sameValue(calendar.dateFromFieldsCalls.length, 1, "dateFromFields was called");
 assert.deepEqual(
   calendar.dateFromFieldsCalls[0][0],
-  { year: 2022, month: 2, monthCode: "M02", day: 1 },
+  { year: 2022, monthCode: "M02", day: 1 },
   "first day of month 2 passed to dateFromFields when subtracting negative duration"
 );
 assert.sameValue(calendar.dateFromFieldsCalls[0][1], undefined, "undefined options passed");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toPlainDate/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toPlainDate/branding.js
index 67d1601..87aa00b 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toPlainDate/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toPlainDate/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof toPlainDate, "function");
 
-assert.throws(TypeError, () => toPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDate.call(null), "null");
-assert.throws(TypeError, () => toPlainDate.call(true), "true");
-assert.throws(TypeError, () => toPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDate.call(1), "1");
-assert.throws(TypeError, () => toPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
+const args = [{ day: 7 }];
+
+assert.throws(TypeError, () => toPlainDate.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => toPlainDate.apply(null, args), "null");
+assert.throws(TypeError, () => toPlainDate.apply(true, args), "true");
+assert.throws(TypeError, () => toPlainDate.apply("", args), "empty string");
+assert.throws(TypeError, () => toPlainDate.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => toPlainDate.apply(1, args), "1");
+assert.throws(TypeError, () => toPlainDate.apply({}, args), "plain object");
+assert.throws(TypeError, () => toPlainDate.apply(Temporal.PlainYearMonth, args), "Temporal.PlainYearMonth");
+assert.throws(TypeError, () => toPlainDate.apply(Temporal.PlainYearMonth.prototype, args), "Temporal.PlainYearMonth.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toStringTag/prop-desc.js
new file mode 100644
index 0000000..1dfe73a
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toStringTag/prop-desc.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth.prototype-@@tostringtag
+description: The @@toStringTag property of Temporal.PlainYearMonth
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.PlainYearMonth.prototype, Symbol.toStringTag, {
+  value: "Temporal.PlainYearMonth",
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-string-time-separators.js
new file mode 100644
index 0000000..574ca12
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/until/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth.prototype.until
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["2019-12-15T15:23", "uppercase T"],
+  ["2019-12-15t15:23", "lowercase T"],
+  ["2019-12-15 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.PlainYearMonth(2019, 12);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.until(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/until/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/until/branding.js
index 4487e20..09ed4df 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/until/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/until/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof until, "function");
 
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => until.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
+const args = [new Temporal.PlainYearMonth(2022, 6)];
+
+assert.throws(TypeError, () => until.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => until.apply(null, args), "null");
+assert.throws(TypeError, () => until.apply(true, args), "true");
+assert.throws(TypeError, () => until.apply("", args), "empty string");
+assert.throws(TypeError, () => until.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => until.apply(1, args), "1");
+assert.throws(TypeError, () => until.apply({}, args), "plain object");
+assert.throws(TypeError, () => until.apply(Temporal.PlainYearMonth, args), "Temporal.PlainYearMonth");
+assert.throws(TypeError, () => until.apply(Temporal.PlainYearMonth.prototype, args), "Temporal.PlainYearMonth.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/with/branding.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/with/branding.js
index 131d9f8..f0c0858 100644
--- a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/with/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/with/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof with_, "function");
 
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => with_.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
+const args = [{ year: 2022 }];
+
+assert.throws(TypeError, () => with_.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => with_.apply(null, args), "null");
+assert.throws(TypeError, () => with_.apply(true, args), "true");
+assert.throws(TypeError, () => with_.apply("", args), "empty string");
+assert.throws(TypeError, () => with_.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => with_.apply(1, args), "1");
+assert.throws(TypeError, () => with_.apply({}, args), "plain object");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainYearMonth, args), "Temporal.PlainYearMonth");
+assert.throws(TypeError, () => with_.apply(Temporal.PlainYearMonth.prototype, args), "Temporal.PlainYearMonth.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/subclass.js b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/subclass.js
new file mode 100644
index 0000000..d1746a2
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/PlainYearMonth/subclass.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plainyearmonth
+description: Test for Temporal.PlainYearMonth subclassing.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+class CustomPlainYearMonth extends Temporal.PlainYearMonth {
+}
+
+const instance = new CustomPlainYearMonth(2000, 5);
+TemporalHelpers.assertPlainYearMonth(instance, 2000, 5, "M05");
+assert.sameValue(Object.getPrototypeOf(instance), CustomPlainYearMonth.prototype, "Instance of CustomPlainYearMonth");
+assert(instance instanceof CustomPlainYearMonth, "Instance of CustomPlainYearMonth");
+assert(instance instanceof Temporal.PlainYearMonth, "Instance of Temporal.PlainYearMonth");
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/constructor.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/constructor.js
index 7ed1159..5494561 100644
--- a/JSTests/test262/test/built-ins/Temporal/TimeZone/constructor.js
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/constructor.js
@@ -9,4 +9,4 @@
 features: [Temporal]
 ---*/
 
-assert.throws(TypeError, () => Temporal.TimeZone());
+assert.throws(TypeError, () => Temporal.TimeZone("UTC"));
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/constructor.js
new file mode 100644
index 0000000..1a8925c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.constructor
+description: Test for Temporal.TimeZone.prototype.constructor.
+info: The initial value of Temporal.TimeZone.prototype.constructor is %Temporal.TimeZone%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.TimeZone.prototype, "constructor", {
+  value: Temporal.TimeZone,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-string-time-separators.js
new file mode 100644
index 0000000..a2c1b1c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getInstantFor/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getinstantfor
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1976-11-18T15:23", "uppercase T"],
+  ["1976-11-18t15:23", "lowercase T"],
+  ["1976-11-18 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.TimeZone("UTC");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.getInstantFor(arg);
+
+  assert.sameValue(
+    result.epochNanoseconds,
+    217_178_580_000_000_000n,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getInstantFor/branding.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getInstantFor/branding.js
index b8c570c..0a95f4c 100644
--- a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getInstantFor/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getInstantFor/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof getInstantFor, "function");
 
-assert.throws(TypeError, () => getInstantFor.call(undefined), "undefined");
-assert.throws(TypeError, () => getInstantFor.call(null), "null");
-assert.throws(TypeError, () => getInstantFor.call(true), "true");
-assert.throws(TypeError, () => getInstantFor.call(""), "empty string");
-assert.throws(TypeError, () => getInstantFor.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getInstantFor.call(1), "1");
-assert.throws(TypeError, () => getInstantFor.call({}), "plain object");
-assert.throws(TypeError, () => getInstantFor.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getInstantFor.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
+const args = [new Temporal.PlainDateTime(2022, 6, 22)];
+
+assert.throws(TypeError, () => getInstantFor.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => getInstantFor.apply(null, args), "null");
+assert.throws(TypeError, () => getInstantFor.apply(true, args), "true");
+assert.throws(TypeError, () => getInstantFor.apply("", args), "empty string");
+assert.throws(TypeError, () => getInstantFor.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => getInstantFor.apply(1, args), "1");
+assert.throws(TypeError, () => getInstantFor.apply({}, args), "plain object");
+assert.throws(TypeError, () => getInstantFor.apply(Temporal.TimeZone, args), "Temporal.TimeZone");
+assert.throws(TypeError, () => getInstantFor.apply(Temporal.TimeZone.prototype, args), "Temporal.TimeZone.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/argument-string-invalid.js
new file mode 100644
index 0000000..934edbf
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/argument-string-invalid.js
@@ -0,0 +1,66 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getnexttransition
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+
+const instance = new Temporal.TimeZone("UTC");
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => instance.getNextTransition(arg),
+    `"${arg}" should not be a valid ISO string for an Instant`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/argument-string-time-separators.js
new file mode 100644
index 0000000..7bef091
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getnexttransition
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+const instance = new Temporal.TimeZone("UTC");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.getNextTransition(arg);
+
+  assert.sameValue(
+    result,
+    null,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/branding.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/branding.js
index 6a53945..9b629ee 100644
--- a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getNextTransition/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof getNextTransition, "function");
 
-assert.throws(TypeError, () => getNextTransition.call(undefined), "undefined");
-assert.throws(TypeError, () => getNextTransition.call(null), "null");
-assert.throws(TypeError, () => getNextTransition.call(true), "true");
-assert.throws(TypeError, () => getNextTransition.call(""), "empty string");
-assert.throws(TypeError, () => getNextTransition.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getNextTransition.call(1), "1");
-assert.throws(TypeError, () => getNextTransition.call({}), "plain object");
-assert.throws(TypeError, () => getNextTransition.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getNextTransition.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
+const args = [new Temporal.Instant(0n)];
+
+assert.throws(TypeError, () => getNextTransition.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => getNextTransition.apply(null, args), "null");
+assert.throws(TypeError, () => getNextTransition.apply(true, args), "true");
+assert.throws(TypeError, () => getNextTransition.apply("", args), "empty string");
+assert.throws(TypeError, () => getNextTransition.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => getNextTransition.apply(1, args), "1");
+assert.throws(TypeError, () => getNextTransition.apply({}, args), "plain object");
+assert.throws(TypeError, () => getNextTransition.apply(Temporal.TimeZone, args), "Temporal.TimeZone");
+assert.throws(TypeError, () => getNextTransition.apply(Temporal.TimeZone.prototype, args), "Temporal.TimeZone.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/argument-string-invalid.js
new file mode 100644
index 0000000..7780706
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/argument-string-invalid.js
@@ -0,0 +1,66 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+
+const instance = new Temporal.TimeZone("UTC");
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => instance.getOffsetNanosecondsFor(arg),
+    `"${arg}" should not be a valid ISO string for an Instant`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/argument-string-time-separators.js
new file mode 100644
index 0000000..c653a0f
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+const instance = new Temporal.TimeZone("UTC");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.getOffsetNanosecondsFor(arg);
+
+  assert.sameValue(
+    result,
+    0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/branding.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/branding.js
index a63ebda..6071b04 100644
--- a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof getOffsetNanosecondsFor, "function");
 
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(undefined), "undefined");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(null), "null");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(true), "true");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(""), "empty string");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(1), "1");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call({}), "plain object");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
+const args = [new Temporal.Instant(0n)];
+
+assert.throws(TypeError, () => getOffsetNanosecondsFor.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => getOffsetNanosecondsFor.apply(null, args), "null");
+assert.throws(TypeError, () => getOffsetNanosecondsFor.apply(true, args), "true");
+assert.throws(TypeError, () => getOffsetNanosecondsFor.apply("", args), "empty string");
+assert.throws(TypeError, () => getOffsetNanosecondsFor.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => getOffsetNanosecondsFor.apply(1, args), "1");
+assert.throws(TypeError, () => getOffsetNanosecondsFor.apply({}, args), "plain object");
+assert.throws(TypeError, () => getOffsetNanosecondsFor.apply(Temporal.TimeZone, args), "Temporal.TimeZone");
+assert.throws(TypeError, () => getOffsetNanosecondsFor.apply(Temporal.TimeZone.prototype, args), "Temporal.TimeZone.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/argument-string-invalid.js
new file mode 100644
index 0000000..f3c2d26
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/argument-string-invalid.js
@@ -0,0 +1,66 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getoffsetstringfor
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+
+const instance = new Temporal.TimeZone("UTC");
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => instance.getOffsetStringFor(arg),
+    `"${arg}" should not be a valid ISO string for an Instant`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/argument-string-time-separators.js
new file mode 100644
index 0000000..255947d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getoffsetstringfor
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+const instance = new Temporal.TimeZone("UTC");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.getOffsetStringFor(arg);
+
+  assert.sameValue(
+    result,
+    "+00:00",
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/branding.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/branding.js
index 0fc6c49..1017cda 100644
--- a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof getOffsetStringFor, "function");
 
-assert.throws(TypeError, () => getOffsetStringFor.call(undefined), "undefined");
-assert.throws(TypeError, () => getOffsetStringFor.call(null), "null");
-assert.throws(TypeError, () => getOffsetStringFor.call(true), "true");
-assert.throws(TypeError, () => getOffsetStringFor.call(""), "empty string");
-assert.throws(TypeError, () => getOffsetStringFor.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getOffsetStringFor.call(1), "1");
-assert.throws(TypeError, () => getOffsetStringFor.call({}), "plain object");
-assert.throws(TypeError, () => getOffsetStringFor.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getOffsetStringFor.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
+const args = [new Temporal.Instant(0n)];
+
+assert.throws(TypeError, () => getOffsetStringFor.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => getOffsetStringFor.apply(null, args), "null");
+assert.throws(TypeError, () => getOffsetStringFor.apply(true, args), "true");
+assert.throws(TypeError, () => getOffsetStringFor.apply("", args), "empty string");
+assert.throws(TypeError, () => getOffsetStringFor.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => getOffsetStringFor.apply(1, args), "1");
+assert.throws(TypeError, () => getOffsetStringFor.apply({}, args), "plain object");
+assert.throws(TypeError, () => getOffsetStringFor.apply(Temporal.TimeZone, args), "Temporal.TimeZone");
+assert.throws(TypeError, () => getOffsetStringFor.apply(Temporal.TimeZone.prototype, args), "Temporal.TimeZone.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-string-invalid.js
new file mode 100644
index 0000000..8d114f8
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-string-invalid.js
@@ -0,0 +1,66 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getplaindatetimefor
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+
+const instance = new Temporal.TimeZone("UTC");
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => instance.getPlainDateTimeFor(arg),
+    `"${arg}" should not be a valid ISO string for an Instant`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-string-time-separators.js
new file mode 100644
index 0000000..8e80217
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getplaindatetimefor
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+const instance = new Temporal.TimeZone("UTC");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.getPlainDateTimeFor(arg);
+
+  TemporalHelpers.assertPlainDateTime(
+    result,
+    1970, 1, "M01", 1, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/branding.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/branding.js
index 9027fd1..55dce10 100644
--- a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/branding.js
@@ -9,7 +9,9 @@
 
 const getPlainDateTimeFor = Temporal.TimeZone.prototype.getPlainDateTimeFor;
 
- const args = [new Temporal.Instant(0n)];
+assert.sameValue(typeof getPlainDateTimeFor, "function");
+
+const args = [new Temporal.Instant(0n)];
 
 assert.throws(TypeError, () => getPlainDateTimeFor.apply(undefined, args), "undefined");
 assert.throws(TypeError, () => getPlainDateTimeFor.apply(null, args), "null");
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-string-time-separators.js
new file mode 100644
index 0000000..91a62b1
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [compareArray.js]
+---*/
+
+const tests = [
+  ["1976-11-18T15:23", "uppercase T"],
+  ["1976-11-18t15:23", "lowercase T"],
+  ["1976-11-18 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.TimeZone("UTC");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.getPossibleInstantsFor(arg);
+
+  assert.compareArray(
+    result.map(i => i.epochNanoseconds),
+    [217_178_580_000_000_000n],
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/branding.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/branding.js
index 431d3c5..8506d52 100644
--- a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof getPossibleInstantsFor, "function");
 
-assert.throws(TypeError, () => getPossibleInstantsFor.call(undefined), "undefined");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(null), "null");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(true), "true");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(""), "empty string");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(1), "1");
-assert.throws(TypeError, () => getPossibleInstantsFor.call({}), "plain object");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
+const args = [new Temporal.PlainDateTime(2022, 6, 22)];
+
+assert.throws(TypeError, () => getPossibleInstantsFor.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => getPossibleInstantsFor.apply(null, args), "null");
+assert.throws(TypeError, () => getPossibleInstantsFor.apply(true, args), "true");
+assert.throws(TypeError, () => getPossibleInstantsFor.apply("", args), "empty string");
+assert.throws(TypeError, () => getPossibleInstantsFor.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => getPossibleInstantsFor.apply(1, args), "1");
+assert.throws(TypeError, () => getPossibleInstantsFor.apply({}, args), "plain object");
+assert.throws(TypeError, () => getPossibleInstantsFor.apply(Temporal.TimeZone, args), "Temporal.TimeZone");
+assert.throws(TypeError, () => getPossibleInstantsFor.apply(Temporal.TimeZone.prototype, args), "Temporal.TimeZone.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/argument-string-invalid.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/argument-string-invalid.js
new file mode 100644
index 0000000..3b83ea8
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/argument-string-invalid.js
@@ -0,0 +1,66 @@
+// Copyright (C) 2022 Igalia S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getprevioustransition
+description: >
+  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
+  that is not supported) is used as an Instant
+features: [Temporal, arrow-function]
+---*/
+
+const invalidStrings = [
+  // invalid ISO strings:
+  "",
+  "invalid iso8601",
+  "2020-01-00T00:00Z",
+  "2020-01-32T00:00Z",
+  "2020-02-30T00:00Z",
+  "2021-02-29T00:00Z",
+  "2020-00-01T00:00Z",
+  "2020-13-01T00:00Z",
+  "2020-01-01TZ",
+  "2020-01-01T25:00:00Z",
+  "2020-01-01T01:60:00Z",
+  "2020-01-01T01:60:61Z",
+  "2020-01-01T00:00Zjunk",
+  "2020-01-01T00:00:00Zjunk",
+  "2020-01-01T00:00:00.000000000Zjunk",
+  "2020-01-01T00:00:00+00:00junk",
+  "2020-01-01T00:00:00+00:00[UTC]junk",
+  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
+  "02020-01-01T00:00Z",
+  "2020-001-01T00:00Z",
+  "2020-01-001T00:00Z",
+  "2020-01-01T001Z",
+  "2020-01-01T01:001Z",
+  "2020-01-01T01:01:001Z",
+  // valid, but forms not supported in Temporal:
+  "2020-W01-1T00:00Z",
+  "2020-001T00:00Z",
+  "+0002020-01-01T00:00Z",
+  // may be valid in other contexts, but insufficient information for Instant:
+  "2020-01",
+  "+002020-01",
+  "01-01",
+  "2020-W01",
+  "P1Y",
+  "-P12Y",
+  "2020-01-01",
+  "2020-01-01T00",
+  "2020-01-01T00:00",
+  "2020-01-01T00:00:00",
+  "2020-01-01T00:00:00.000000000",
+  // valid, but outside the supported range:
+  "-999999-01-01T00:00Z",
+  "+999999-01-01T00:00Z",
+];
+
+const instance = new Temporal.TimeZone("UTC");
+for (const arg of invalidStrings) {
+  assert.throws(
+    RangeError,
+    () => instance.getPreviousTransition(arg),
+    `"${arg}" should not be a valid ISO string for an Instant`
+  );
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/argument-string-time-separators.js
new file mode 100644
index 0000000..d9023ea
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype.getprevioustransition
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00Z", "uppercase T"],
+  ["1970-01-01t00:00Z", "lowercase T"],
+  ["1970-01-01 00:00Z", "space between date and time"],
+];
+
+const instance = new Temporal.TimeZone("UTC");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.getPreviousTransition(arg);
+
+  assert.sameValue(
+    result,
+    null,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/branding.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/branding.js
index eaa3530..75e4164 100644
--- a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/getPreviousTransition/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof getPreviousTransition, "function");
 
-assert.throws(TypeError, () => getPreviousTransition.call(undefined), "undefined");
-assert.throws(TypeError, () => getPreviousTransition.call(null), "null");
-assert.throws(TypeError, () => getPreviousTransition.call(true), "true");
-assert.throws(TypeError, () => getPreviousTransition.call(""), "empty string");
-assert.throws(TypeError, () => getPreviousTransition.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getPreviousTransition.call(1), "1");
-assert.throws(TypeError, () => getPreviousTransition.call({}), "plain object");
-assert.throws(TypeError, () => getPreviousTransition.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getPreviousTransition.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
+const args = [new Temporal.Instant(0n)];
+
+assert.throws(TypeError, () => getPreviousTransition.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => getPreviousTransition.apply(null, args), "null");
+assert.throws(TypeError, () => getPreviousTransition.apply(true, args), "true");
+assert.throws(TypeError, () => getPreviousTransition.apply("", args), "empty string");
+assert.throws(TypeError, () => getPreviousTransition.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => getPreviousTransition.apply(1, args), "1");
+assert.throws(TypeError, () => getPreviousTransition.apply({}, args), "plain object");
+assert.throws(TypeError, () => getPreviousTransition.apply(Temporal.TimeZone, args), "Temporal.TimeZone");
+assert.throws(TypeError, () => getPreviousTransition.apply(Temporal.TimeZone.prototype, args), "Temporal.TimeZone.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/toStringTag/prop-desc.js
new file mode 100644
index 0000000..2aeae37
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/prototype/toStringTag/prop-desc.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone.prototype-@@tostringtag
+description: The @@toStringTag property of Temporal.TimeZone
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.TimeZone.prototype, Symbol.toStringTag, {
+  value: "Temporal.TimeZone",
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/TimeZone/subclass.js b/JSTests/test262/test/built-ins/Temporal/TimeZone/subclass.js
new file mode 100644
index 0000000..d0b5364
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/TimeZone/subclass.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.timezone
+description: Test for Temporal.TimeZone subclassing.
+features: [Temporal]
+---*/
+
+class CustomTimeZone extends Temporal.TimeZone {
+}
+
+const instance = new CustomTimeZone("UTC");
+assert.sameValue(instance.toString(), "UTC");
+assert.sameValue(Object.getPrototypeOf(instance), CustomTimeZone.prototype, "Instance of CustomTimeZone");
+assert(instance instanceof CustomTimeZone, "Instance of CustomTimeZone");
+assert(instance instanceof Temporal.TimeZone, "Instance of Temporal.TimeZone");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/compare/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/compare/argument-string-time-separators.js
new file mode 100644
index 0000000..66196f5
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/compare/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.compare
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const epoch = new Temporal.ZonedDateTime(0n, "UTC");
+const tests = [
+  ["1970-01-01T00:00+00:00[UTC]", "uppercase T"],
+  ["1970-01-01t00:00+00:00[UTC]", "lowercase T"],
+  ["1970-01-01 00:00+00:00[UTC]", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  assert.sameValue(
+    Temporal.ZonedDateTime.compare(arg, epoch),
+    0,
+    `variant time separators (${description}), first argument`
+  );
+
+  assert.sameValue(
+    Temporal.ZonedDateTime.compare(epoch, arg),
+    0,
+    `variant time separators (${description}), second argument`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/constructor.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/constructor.js
index 54f8482..2b04f5e 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/constructor.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/constructor.js
@@ -9,4 +9,4 @@
 features: [Temporal]
 ---*/
 
-assert.throws(TypeError, () => Temporal.ZonedDateTime());
+assert.throws(TypeError, () => Temporal.ZonedDateTime(0n, "UTC"));
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/from/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/from/argument-string-time-separators.js
new file mode 100644
index 0000000..f92d641
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/from/argument-string-time-separators.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.from
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00+00:00[UTC]", "uppercase T"],
+  ["1970-01-01t00:00+00:00[UTC]", "lowercase T"],
+  ["1970-01-01 00:00+00:00[UTC]", "space between date and time"],
+];
+
+tests.forEach(([arg, description]) => {
+  const result = Temporal.ZonedDateTime.from(arg);
+
+  assert.sameValue(
+    result.timeZone.toString(),
+    "UTC",
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/add/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/add/argument-string-negative-fractional-units.js
index 0c62f3b..fc2260b 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/add/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/add/argument-string-negative-fractional-units.js
@@ -10,7 +10,7 @@
 const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
 
 const resultHours = instance.add("-PT24.567890123H");
-assert.sameValue(resultHours.epochNanoseconds, 999_911_555_595_557_201n, "negative fractional hours");
+assert.sameValue(resultHours.epochNanoseconds, 999_911_555_595_557_200n, "negative fractional hours");
 
 const resultMinutes = instance.add("-PT1440.567890123M");
-assert.sameValue(resultMinutes.epochNanoseconds, 999_913_565_926_592_621n, "negative fractional minutes");
+assert.sameValue(resultMinutes.epochNanoseconds, 999_913_565_926_592_620n, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/add/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/add/branding.js
index c9dc587..1f7ce7d 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/add/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/add/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof add, "function");
 
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => add.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = [new Temporal.Duration(5)];
+
+assert.throws(TypeError, () => add.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => add.apply(null, args), "null");
+assert.throws(TypeError, () => add.apply(true, args), "true");
+assert.throws(TypeError, () => add.apply("", args), "empty string");
+assert.throws(TypeError, () => add.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => add.apply(1, args), "1");
+assert.throws(TypeError, () => add.apply({}, args), "plain object");
+assert.throws(TypeError, () => add.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => add.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/constructor.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/constructor.js
new file mode 100644
index 0000000..01ee283
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/constructor.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.constructor
+description: Test for Temporal.ZonedDateTime.prototype.constructor.
+info: The initial value of Temporal.ZonedDateTime.prototype.constructor is %Temporal.ZonedDateTime%.
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.ZonedDateTime.prototype, "constructor", {
+  value: Temporal.ZonedDateTime,
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/daysInYear/basic.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/daysInYear/basic.js
new file mode 100644
index 0000000..432e32d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/daysInYear/basic.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.zoneddatetime.prototype.daysinyear
+description: Checking days in year for a "normal" case (non-undefined, non-boundary case, etc.)
+features: [Temporal]
+---*/
+
+assert.sameValue((new Temporal.ZonedDateTime(217178610123456789n, "UTC")).daysInYear,
+  366, "leap year");
+assert.sameValue((new Temporal.ZonedDateTime(248714610123456789n, "UTC")).daysInYear,
+  365, "non-leap year");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-string-time-separators.js
new file mode 100644
index 0000000..3c5f4f8
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.equals
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00+00:00[UTC]", "uppercase T"],
+  ["1970-01-01t00:00+00:00[UTC]", "lowercase T"],
+  ["1970-01-01 00:00+00:00[UTC]", "space between date and time"],
+];
+
+const timeZone = new Temporal.TimeZone("UTC");
+const instance = new Temporal.ZonedDateTime(0n, timeZone);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.equals(arg);
+
+  assert.sameValue(
+    result,
+    true,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/branding.js
index 05705c4..3d135a3 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof equals, "function");
 
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => equals.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = [new Temporal.ZonedDateTime(123456n, new Temporal.TimeZone("UTC"))];
+
+assert.throws(TypeError, () => equals.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => equals.apply(null, args), "null");
+assert.throws(TypeError, () => equals.apply(true, args), "true");
+assert.throws(TypeError, () => equals.apply("", args), "empty string");
+assert.throws(TypeError, () => equals.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => equals.apply(1, args), "1");
+assert.throws(TypeError, () => equals.apply({}, args), "plain object");
+assert.throws(TypeError, () => equals.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => equals.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/custom.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/custom.js
new file mode 100644
index 0000000..972b3fc
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/custom.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.getisofields
+description: getISOFields does not call into user code.
+includes: [temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const calendar = TemporalHelpers.calendarThrowEverything();
+const instance = new Temporal.ZonedDateTime(1_000_086_400_987_654_321n, "UTC", calendar);
+const result = instance.getISOFields();
+
+assert.sameValue(result.isoYear, 2001, "isoYear result");
+assert.sameValue(result.isoMonth, 9, "isoMonth result");
+assert.sameValue(result.isoDay, 10, "isoDay result");
+assert.sameValue(result.isoHour, 1, "isoHour result");
+assert.sameValue(result.isoMinute, 46, "isoMinute result");
+assert.sameValue(result.isoSecond, 40, "isoSecond result");
+assert.sameValue(result.isoMillisecond, 987, "isoMillisecond result");
+assert.sameValue(result.isoMicrosecond, 654, "isoMicrosecond result");
+assert.sameValue(result.isoNanosecond, 321, "isoNanosecond result");
+assert.sameValue(result.offset, "+00:00", "offset result");
+assert.sameValue(result.calendar, calendar, "calendar result");
+assert.sameValue(result.timeZone.id, "UTC", "timeZone result");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/prototype.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/prototype.js
new file mode 100644
index 0000000..83988ce
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/prototype.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.getisofields
+description: Correct prototype on the object returned from getISOFields
+features: [Temporal]
+---*/
+
+const instance = new Temporal.ZonedDateTime(1_000_086_400_987_654_321n, "UTC");
+const result = instance.getISOFields();
+assert.sameValue(Object.getPrototypeOf(result), Object.prototype, "prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/inLeapYear/basic.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/inLeapYear/basic.js
new file mode 100644
index 0000000..5ea7759
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/inLeapYear/basic.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-temporal.zoneddatetime.prototype.inleapyear
+description: Basic test for inLeapYear
+features: [Temporal]
+---*/
+
+assert.sameValue((new Temporal.ZonedDateTime(217178610123456789n, "UTC")).inLeapYear,
+  true, "leap year");
+assert.sameValue((new Temporal.ZonedDateTime(248714610123456789n, "UTC")).inLeapYear,
+  false, "non-leap year");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/round/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/round/branding.js
index f0b708e..2aaf37a 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/round/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/round/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof round, "function");
 
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => round.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = ["hour"];
+
+assert.throws(TypeError, () => round.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => round.apply(null, args), "null");
+assert.throws(TypeError, () => round.apply(true, args), "true");
+assert.throws(TypeError, () => round.apply("", args), "empty string");
+assert.throws(TypeError, () => round.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => round.apply(1, args), "1");
+assert.throws(TypeError, () => round.apply({}, args), "plain object");
+assert.throws(TypeError, () => round.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => round.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-string-time-separators.js
new file mode 100644
index 0000000..1e5915d
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-string-time-separators.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.since
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00+00:00[UTC]", "uppercase T"],
+  ["1970-01-01t00:00+00:00[UTC]", "lowercase T"],
+  ["1970-01-01 00:00+00:00[UTC]", "space between date and time"],
+];
+
+const timeZone = new Temporal.TimeZone("UTC");
+const instance = new Temporal.ZonedDateTime(0n, timeZone);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.since(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/branding.js
index 2676e64..5695e13 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof since, "function");
 
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => since.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = [new Temporal.ZonedDateTime(123456n, new Temporal.TimeZone("UTC"))];
+
+assert.throws(TypeError, () => since.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => since.apply(null, args), "null");
+assert.throws(TypeError, () => since.apply(true, args), "true");
+assert.throws(TypeError, () => since.apply("", args), "empty string");
+assert.throws(TypeError, () => since.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => since.apply(1, args), "1");
+assert.throws(TypeError, () => since.apply({}, args), "plain object");
+assert.throws(TypeError, () => since.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => since.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/subtract/argument-string-negative-fractional-units.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/subtract/argument-string-negative-fractional-units.js
index 5ccf128..c3cd496 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/subtract/argument-string-negative-fractional-units.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/subtract/argument-string-negative-fractional-units.js
@@ -10,7 +10,7 @@
 const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
 
 const resultHours = instance.subtract("-PT24.567890123H");
-assert.sameValue(resultHours.epochNanoseconds, 1_000_088_444_404_442_799n, "negative fractional hours");
+assert.sameValue(resultHours.epochNanoseconds, 1_000_088_444_404_442_800n, "negative fractional hours");
 
 const resultMinutes = instance.subtract("-PT1440.567890123M");
-assert.sameValue(resultMinutes.epochNanoseconds, 1_000_086_434_073_407_379n, "negative fractional minutes");
+assert.sameValue(resultMinutes.epochNanoseconds, 1_000_086_434_073_407_380n, "negative fractional minutes");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/subtract/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/subtract/branding.js
index 0dcb416..226d5d0 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/subtract/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/subtract/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof subtract, "function");
 
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => subtract.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = [new Temporal.Duration(5)];
+
+assert.throws(TypeError, () => subtract.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => subtract.apply(null, args), "null");
+assert.throws(TypeError, () => subtract.apply(true, args), "true");
+assert.throws(TypeError, () => subtract.apply("", args), "empty string");
+assert.throws(TypeError, () => subtract.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => subtract.apply(1, args), "1");
+assert.throws(TypeError, () => subtract.apply({}, args), "plain object");
+assert.throws(TypeError, () => subtract.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => subtract.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/basic.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/basic.js
new file mode 100644
index 0000000..8c936f3
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/basic.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.tojson
+description: Basic behavior for toJSON
+features: [BigInt, Temporal]
+---*/
+
+const tests = [
+  [new Temporal.ZonedDateTime(192_258_181_000_000_000n, "UTC"), "1976-02-04T05:03:01+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(0n, "UTC"), "1970-01-01T00:00:00+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(30_000_000_000n, "UTC"), "1970-01-01T00:00:30+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(30_123_400_000n, "UTC"), "1970-01-01T00:00:30.1234+00:00[UTC]"],
+];
+
+const options = new Proxy({}, {
+  get() { throw new Test262Error("should not get properties off argument") }
+});
+for (const [datetime, expected] of tests) {
+  assert.sameValue(datetime.toJSON(), expected, "toJSON without argument");
+  assert.sameValue(datetime.toJSON(options), expected, "toJSON with argument");
+}
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-auto.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-auto.js
index bffb928..0beb01a 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-auto.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-auto.js
@@ -7,14 +7,11 @@
 features: [BigInt, Temporal]
 ---*/
 
-const zeroSeconds = new Temporal.ZonedDateTime(0n, "UTC");
-const wholeSeconds = new Temporal.ZonedDateTime(30_000_000_000n, "UTC");
-const subSeconds = new Temporal.ZonedDateTime(30_123_400_000n, "UTC");
-
 const tests = [
-  [zeroSeconds, "1970-01-01T00:00:00+00:00[UTC]"],
-  [wholeSeconds, "1970-01-01T00:00:30+00:00[UTC]"],
-  [subSeconds, "1970-01-01T00:00:30.1234+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(192_258_181_000_000_000n, "UTC"), "1976-02-04T05:03:01+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(0n, "UTC"), "1970-01-01T00:00:00+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(30_000_000_000n, "UTC"), "1970-01-01T00:00:30+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(30_123_400_000n, "UTC"), "1970-01-01T00:00:30.1234+00:00[UTC]"],
 ];
 
 for (const [datetime, expected] of tests) {
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-number.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-number.js
index 0063031..3bab180 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-number.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-number.js
@@ -7,10 +7,13 @@
 features: [BigInt, Temporal]
 ---*/
 
+const fewSeconds = new Temporal.ZonedDateTime(192_258_181_000_000_000n, "UTC");
 const zeroSeconds = new Temporal.ZonedDateTime(0n, "UTC");
 const wholeSeconds = new Temporal.ZonedDateTime(30_000_000_000n, "UTC");
 const subSeconds = new Temporal.ZonedDateTime(30_123_400_000n, "UTC");
 
+assert.sameValue(fewSeconds.toString({ fractionalSecondDigits: 0 }), "1976-02-04T05:03:01+00:00[UTC]",
+  "pads parts with 0");
 assert.sameValue(subSeconds.toString({ fractionalSecondDigits: 0 }), "1970-01-01T00:00:30+00:00[UTC]",
   "truncates 4 decimal places to 0");
 assert.sameValue(zeroSeconds.toString({ fractionalSecondDigits: 2 }), "1970-01-01T00:00:00.00+00:00[UTC]",
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-undefined.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-undefined.js
index 734f436..2c6f17d 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-undefined.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/fractionalseconddigits-undefined.js
@@ -16,14 +16,11 @@
 features: [Temporal]
 ---*/
 
-const zeroSeconds = new Temporal.ZonedDateTime(0n, "UTC");
-const wholeSeconds = new Temporal.ZonedDateTime(30_000_000_000n, "UTC");
-const subSeconds = new Temporal.ZonedDateTime(30_123_400_000n, "UTC");
-
 const tests = [
-  [zeroSeconds, "1970-01-01T00:00:00+00:00[UTC]"],
-  [wholeSeconds, "1970-01-01T00:00:30+00:00[UTC]"],
-  [subSeconds, "1970-01-01T00:00:30.1234+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(192_258_181_000_000_000n, "UTC"), "1976-02-04T05:03:01+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(0n, "UTC"), "1970-01-01T00:00:00+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(30_000_000_000n, "UTC"), "1970-01-01T00:00:30+00:00[UTC]"],
+  [new Temporal.ZonedDateTime(30_123_400_000n, "UTC"), "1970-01-01T00:00:30.1234+00:00[UTC]"],
 ];
 
 for (const [datetime, expected] of tests) {
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toStringTag/prop-desc.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toStringTag/prop-desc.js
new file mode 100644
index 0000000..72fadda
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toStringTag/prop-desc.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype-@@tostringtag
+description: The @@toStringTag property of Temporal.ZonedDateTime
+includes: [propertyHelper.js]
+features: [Temporal]
+---*/
+
+verifyProperty(Temporal.ZonedDateTime.prototype, Symbol.toStringTag, {
+  value: "Temporal.ZonedDateTime",
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-string-time-separators.js
new file mode 100644
index 0000000..10cf351
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-string-time-separators.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.until
+description: Time separator in string argument can vary
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+const tests = [
+  ["1970-01-01T00:00+00:00[UTC]", "uppercase T"],
+  ["1970-01-01t00:00+00:00[UTC]", "lowercase T"],
+  ["1970-01-01 00:00+00:00[UTC]", "space between date and time"],
+];
+
+const timeZone = new Temporal.TimeZone("UTC");
+const instance = new Temporal.ZonedDateTime(0n, timeZone);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.until(arg);
+
+  TemporalHelpers.assertDuration(
+    result,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/branding.js
index 18210ae..a84b29e 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof until, "function");
 
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => until.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = [new Temporal.ZonedDateTime(123456n, new Temporal.TimeZone("UTC"))];
+
+assert.throws(TypeError, () => until.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => until.apply(null, args), "null");
+assert.throws(TypeError, () => until.apply(true, args), "true");
+assert.throws(TypeError, () => until.apply("", args), "empty string");
+assert.throws(TypeError, () => until.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => until.apply(1, args), "1");
+assert.throws(TypeError, () => until.apply({}, args), "plain object");
+assert.throws(TypeError, () => until.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => until.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/valueOf/basic.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/valueOf/basic.js
new file mode 100644
index 0000000..4d576fd
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/valueOf/basic.js
@@ -0,0 +1,21 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.valueof
+description: Basic tests for valueOf().
+features: [Temporal]
+---*/
+
+const zonedDateTime = new Temporal.ZonedDateTime(100n, "UTC");
+const zonedDateTime2 = new Temporal.ZonedDateTime(987654321n, "UTC");
+
+assert.throws(TypeError, () => zonedDateTime.valueOf(), "valueOf");
+assert.throws(TypeError, () => zonedDateTime < zonedDateTime, "<");
+assert.throws(TypeError, () => zonedDateTime <= zonedDateTime, "<=");
+assert.throws(TypeError, () => zonedDateTime > zonedDateTime, ">");
+assert.throws(TypeError, () => zonedDateTime >= zonedDateTime, ">=");
+assert.sameValue(zonedDateTime === zonedDateTime, true, "===");
+assert.sameValue(zonedDateTime === zonedDateTime2, false, "===");
+assert.sameValue(zonedDateTime !== zonedDateTime, false, "!==");
+assert.sameValue(zonedDateTime !== zonedDateTime2, true, "!==");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/branding.js
index 2d9fa03..70be8c4 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof with_, "function");
 
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => with_.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = [{ year: 2022 }];
+
+assert.throws(TypeError, () => with_.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => with_.apply(null, args), "null");
+assert.throws(TypeError, () => with_.apply(true, args), "true");
+assert.throws(TypeError, () => with_.apply("", args), "empty string");
+assert.throws(TypeError, () => with_.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => with_.apply(1, args), "1");
+assert.throws(TypeError, () => with_.apply({}, args), "plain object");
+assert.throws(TypeError, () => with_.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => with_.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/branding.js
index 4958c28..1533200 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof withCalendar, "function");
 
-assert.throws(TypeError, () => withCalendar.call(undefined), "undefined");
-assert.throws(TypeError, () => withCalendar.call(null), "null");
-assert.throws(TypeError, () => withCalendar.call(true), "true");
-assert.throws(TypeError, () => withCalendar.call(""), "empty string");
-assert.throws(TypeError, () => withCalendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withCalendar.call(1), "1");
-assert.throws(TypeError, () => withCalendar.call({}), "plain object");
-assert.throws(TypeError, () => withCalendar.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => withCalendar.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = [new Temporal.Calendar("iso8601")];
+
+assert.throws(TypeError, () => withCalendar.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => withCalendar.apply(null, args), "null");
+assert.throws(TypeError, () => withCalendar.apply(true, args), "true");
+assert.throws(TypeError, () => withCalendar.apply("", args), "empty string");
+assert.throws(TypeError, () => withCalendar.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => withCalendar.apply(1, args), "1");
+assert.throws(TypeError, () => withCalendar.apply({}, args), "plain object");
+assert.throws(TypeError, () => withCalendar.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => withCalendar.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/leap-second.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/leap-second.js
rename to JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-leap-second.js
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-string-time-separators.js
new file mode 100644
index 0000000..1ebb44c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-string-time-separators.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.withplaindate
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const timeZone = new Temporal.TimeZone("UTC");
+const instance = new Temporal.ZonedDateTime(0n, timeZone);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.withPlainDate(arg);
+
+  assert.sameValue(
+    result.epochNanoseconds,
+    957_225_600_000_000_000n,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-convert.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..9b56186
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.withplaindate
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
+
+assert.throws(Test262Error, () => instance.withPlainDate(arg));
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-slots.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..547d50f
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.withplaindate
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
+instance.withPlainDate(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/branding.js
index 5d9df4c..f4ff7dc 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainDate/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof withPlainDate, "function");
 
-assert.throws(TypeError, () => withPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => withPlainDate.call(null), "null");
-assert.throws(TypeError, () => withPlainDate.call(true), "true");
-assert.throws(TypeError, () => withPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => withPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withPlainDate.call(1), "1");
-assert.throws(TypeError, () => withPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => withPlainDate.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => withPlainDate.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = [new Temporal.PlainDate(2022, 6, 22)];
+
+assert.throws(TypeError, () => withPlainDate.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => withPlainDate.apply(null, args), "null");
+assert.throws(TypeError, () => withPlainDate.apply(true, args), "true");
+assert.throws(TypeError, () => withPlainDate.apply("", args), "empty string");
+assert.throws(TypeError, () => withPlainDate.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => withPlainDate.apply(1, args), "1");
+assert.throws(TypeError, () => withPlainDate.apply({}, args), "plain object");
+assert.throws(TypeError, () => withPlainDate.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => withPlainDate.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-time-separators.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-time-separators.js
new file mode 100644
index 0000000..cb37471
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-time-separators.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime.prototype.withplaintime
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["1976-11-18T12:34:56.987654321", "uppercase T"],
+  ["1976-11-18t12:34:56.987654321", "lowercase T"],
+  ["1976-11-18 12:34:56.987654321", "space between date and time"],
+  ["T12:34:56.987654321", "time-only uppercase T"],
+  ["t12:34:56.987654321", "time-only lowercase T"],
+];
+
+const timeZone = new Temporal.TimeZone("UTC");
+const instance = new Temporal.ZonedDateTime(0n, timeZone);
+
+tests.forEach(([arg, description]) => {
+  const result = instance.withPlainTime(arg);
+
+  assert.sameValue(
+    result.epochNanoseconds,
+    45_296_987_654_321n,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/branding.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/branding.js
index 15c0b33..feecfe9 100644
--- a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/branding.js
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/branding.js
@@ -11,12 +11,14 @@
 
 assert.sameValue(typeof withTimeZone, "function");
 
-assert.throws(TypeError, () => withTimeZone.call(undefined), "undefined");
-assert.throws(TypeError, () => withTimeZone.call(null), "null");
-assert.throws(TypeError, () => withTimeZone.call(true), "true");
-assert.throws(TypeError, () => withTimeZone.call(""), "empty string");
-assert.throws(TypeError, () => withTimeZone.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withTimeZone.call(1), "1");
-assert.throws(TypeError, () => withTimeZone.call({}), "plain object");
-assert.throws(TypeError, () => withTimeZone.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => withTimeZone.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
+const args = [new Temporal.TimeZone("UTC")];
+
+assert.throws(TypeError, () => withTimeZone.apply(undefined, args), "undefined");
+assert.throws(TypeError, () => withTimeZone.apply(null, args), "null");
+assert.throws(TypeError, () => withTimeZone.apply(true, args), "true");
+assert.throws(TypeError, () => withTimeZone.apply("", args), "empty string");
+assert.throws(TypeError, () => withTimeZone.apply(Symbol(), args), "symbol");
+assert.throws(TypeError, () => withTimeZone.apply(1, args), "1");
+assert.throws(TypeError, () => withTimeZone.apply({}, args), "plain object");
+assert.throws(TypeError, () => withTimeZone.apply(Temporal.ZonedDateTime, args), "Temporal.ZonedDateTime");
+assert.throws(TypeError, () => withTimeZone.apply(Temporal.ZonedDateTime.prototype, args), "Temporal.ZonedDateTime.prototype");
diff --git a/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/subclass.js b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/subclass.js
new file mode 100644
index 0000000..f64178c
--- /dev/null
+++ b/JSTests/test262/test/built-ins/Temporal/ZonedDateTime/subclass.js
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.zoneddatetime
+description: Test for Temporal.ZonedDateTime subclassing.
+features: [Temporal]
+---*/
+
+class CustomZonedDateTime extends Temporal.ZonedDateTime {
+}
+
+const instance = new CustomZonedDateTime(0n, "UTC");
+assert.sameValue(instance.epochNanoseconds, 0n);
+assert.sameValue(Object.getPrototypeOf(instance), CustomZonedDateTime.prototype, "Instance of CustomZonedDateTime");
+assert(instance instanceof CustomZonedDateTime, "Instance of CustomZonedDateTime");
+assert(instance instanceof Temporal.ZonedDateTime, "Instance of Temporal.ZonedDateTime");
diff --git a/JSTests/test262/test/intl402/NumberFormat/test-option-roundingPriority-mixed-options.js b/JSTests/test262/test/intl402/NumberFormat/test-option-roundingPriority-mixed-options.js
new file mode 100644
index 0000000..0114a6a4
--- /dev/null
+++ b/JSTests/test262/test/intl402/NumberFormat/test-option-roundingPriority-mixed-options.js
@@ -0,0 +1,94 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-intl.numberformat.prototype.format
+description: Tests that the digits are determined correctly when specifying at same time «"minimumFractionDigits", "maximumFractionDigits", "minimumSignificantDigits", "maximumSignificantDigits"»
+features: [Intl.NumberFormat-v3]
+includes: [testIntl.js]
+---*/
+
+const locales = [new Intl.NumberFormat().resolvedOptions().locale, 'ar', 'de', 'th', 'ja'];
+
+const numberingSystems = ['arab', 'latn', 'thai', 'hanidec'];
+
+const expectedResults = {
+  'morePrecision': {
+    'same-minimums': { '1': '1.0', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.0' },
+    'same-maximums': { '1': '1', '1.500': '1.5', '1.625': '1.63', '1.750': '1.75', '1.875': '1.88', '2.000': '2' },
+    'minSd-larger-minFd': { '1': '1.00', '1.500': '1.50', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.00' },
+    'minSd-smaller-minFd': { '1': '1', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2' },
+    'minSd-smaller-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2' },
+    'minSd-larger-maxFd': { '1': '1.00', '1.500': '1.50', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.00' },
+    'maxSd-larger-minFd': { '1': '1.0', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.0' },
+    'maxSd-smaller-minFd': { '1': '1.000', '1.500': '1.500', '1.625': '1.625', '1.750': '1.750', '1.875': '1.875', '2.000': '2.000' },
+    'maxSd-smaller-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2' },
+    'maxSd-larger-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.63', '1.750': '1.75', '1.875': '1.88', '2.000': '2' },
+    'minSd-maxSd-smaller-minFd-maxFd': { '1': '1.000', '1.500': '1.500', '1.625': '1.625', '1.750': '1.750', '1.875': '1.875', '2.000': '2.000' },
+    'minSd-maxSd-larger-minFd-maxFd': { '1': '1.00', '1.500': '1.50', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.00' },
+    'same-minimums-maxFd-larger-maxSd': { '1': '1.0', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.0' },
+    'same-minimums-maxFd-smaller-maxSd': { '1': '1', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2' },
+  },
+  'lessPrecision': {
+    'same-minimums': { '1': '1.00', '1.500': '1.50', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.00' },
+    'same-maximums': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'minSd-larger-minFd': { '1': '1.0', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.0' },
+    'minSd-smaller-minFd': { '1': '1.000', '1.500': '1.500', '1.625': '1.625', '1.750': '1.750', '1.875': '1.875', '2.000': '2.000' },
+    'minSd-smaller-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2' },
+    'minSd-larger-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'maxSd-larger-minFd': { '1': '1', '1.500': '1.5', '1.625': '1.63', '1.750': '1.75', '1.875': '1.88', '2.000': '2' },
+    'maxSd-smaller-minFd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'maxSd-smaller-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'maxSd-larger-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'minSd-maxSd-smaller-minFd-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'minSd-maxSd-larger-minFd-maxFd': { '1': '1.0', '1.500': '1.5', '1.625': '1.63', '1.750': '1.75', '1.875': '1.88', '2.000': '2.0' },
+    'same-minimums-maxFd-larger-maxSd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'same-minimums-maxFd-smaller-maxSd': { '1': '1.0', '1.500': '1.5', '1.625': '1.63', '1.750': '1.75', '1.875': '1.88', '2.000': '2.0' },
+  },
+  'auto': {
+    'same-minimums': { '1': '1.0', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.0' },
+    'same-maximums': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'minSd-larger-minFd': { '1': '1.00', '1.500': '1.50', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.00' },
+    'minSd-smaller-minFd': { '1': '1', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2' },
+    'minSd-smaller-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2' },
+    'minSd-larger-maxFd': { '1': '1.00', '1.500': '1.50', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.00' },
+    'maxSd-larger-minFd': { '1': '1', '1.500': '1.5', '1.625': '1.63', '1.750': '1.75', '1.875': '1.88', '2.000': '2' },
+    'maxSd-smaller-minFd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'maxSd-smaller-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'maxSd-larger-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.63', '1.750': '1.75', '1.875': '1.88', '2.000': '2' },
+    'minSd-maxSd-smaller-minFd-maxFd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'minSd-maxSd-larger-minFd-maxFd': { '1': '1.00', '1.500': '1.50', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2.00' },
+    'same-minimums-maxFd-larger-maxSd': { '1': '1', '1.500': '1.5', '1.625': '1.6', '1.750': '1.8', '1.875': '1.9', '2.000': '2' },
+    'same-minimums-maxFd-smaller-maxSd': { '1': '1', '1.500': '1.5', '1.625': '1.625', '1.750': '1.75', '1.875': '1.875', '2.000': '2' },
+  },
+};
+
+const optionsMatrix = {
+  'same-minimums': { minimumSignificantDigits: 2, minimumFractionDigits: 2 },
+  'same-maximums': { maximumSignificantDigits: 2, maximumFractionDigits: 2 },
+  'minSd-larger-minFd': { minimumSignificantDigits: 3, minimumFractionDigits: 1 },
+  'minSd-smaller-minFd': { minimumSignificantDigits: 1, minimumFractionDigits: 3 },
+  'minSd-smaller-maxFd': { minimumSignificantDigits: 1, maximumFractionDigits: 3 },
+  'minSd-larger-maxFd': { minimumSignificantDigits: 3, maximumFractionDigits: 1 },
+  'maxSd-larger-minFd': { maximumSignificantDigits: 3, minimumFractionDigits: 1 },
+  'maxSd-smaller-minFd': { maximumSignificantDigits: 2, minimumFractionDigits: 3 },
+  'maxSd-smaller-maxFd': { maximumSignificantDigits: 2, maximumFractionDigits: 3 },
+  'maxSd-larger-maxFd': { maximumSignificantDigits: 3, maximumFractionDigits: 1 },
+  'minSd-maxSd-smaller-minFd-maxFd': { minimumSignificantDigits: 1, maximumSignificantDigits: 2, minimumFractionDigits: 3, maximumFractionDigits: 4 },
+  'minSd-maxSd-larger-minFd-maxFd': { minimumSignificantDigits: 3, maximumSignificantDigits: 4, minimumFractionDigits: 1, maximumFractionDigits: 2 },
+  'same-minimums-maxFd-larger-maxSd': { minimumSignificantDigits: 1, maximumSignificantDigits: 2, minimumFractionDigits: 1, maximumFractionDigits: 4 },
+  'same-minimums-maxFd-smaller-maxSd': { minimumSignificantDigits: 1, maximumSignificantDigits: 4, minimumFractionDigits: 1, maximumFractionDigits: 2 },
+};
+
+function testPrecision(mode) {
+  Object.keys(optionsMatrix).forEach((key) => {
+  testNumberFormat(
+      locales,
+      numberingSystems,
+      { ...optionsMatrix[key], roundingPriority: mode, userGrouping: false },
+      expectedResults[mode][key]
+  );
+  });
+}
+
+['morePrecision', 'lessPrecision', 'auto'].forEach(testPrecision);
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/dateFromFields/order-of-operations.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/dateFromFields/order-of-operations.js
new file mode 100644
index 0000000..9e48327
--- /dev/null
+++ b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/dateFromFields/order-of-operations.js
@@ -0,0 +1,76 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.datefromfields
+description: Properties on objects passed to dateFromFields() are accessed in the correct order
+includes: [compareArray.js, temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const expected = [
+  "get options.overflow",
+  "get options.overflow.toString",
+  "call options.overflow.toString",
+  "get fields.day",
+  "get fields.day.valueOf",
+  "call fields.day.valueOf",
+  "get fields.era",
+  "get fields.era.toString",
+  "call fields.era.toString",
+  "get fields.eraYear",
+  "get fields.eraYear.valueOf",
+  "call fields.eraYear.valueOf",
+  "get fields.month",
+  "get fields.month.valueOf",
+  "call fields.month.valueOf",
+  "get fields.monthCode",
+  "get fields.monthCode.toString",
+  "call fields.monthCode.toString",
+  "get fields.year",
+  "get fields.year.valueOf",
+  "call fields.year.valueOf",
+];
+const actual = [];
+
+const instance = new Temporal.Calendar("gregory");
+
+const fields = {
+  era: "ce",
+  eraYear: 1.7,
+  year: 1.7,
+  month: 1.7,
+  monthCode: "M01",
+  day: 1.7,
+};
+const arg1 = new Proxy(fields, {
+  get(target, key) {
+    actual.push(`get fields.${key}`);
+    if (key === "calendar") return instance;
+    const result = target[key];
+    return TemporalHelpers.toPrimitiveObserver(actual, result, `fields.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has fields.${key}`);
+    return key in target;
+  },
+});
+
+const options = {
+  overflow: "reject",
+};
+const arg2 = new Proxy(options, {
+  get(target, key) {
+    actual.push(`get options.${key}`);
+    return TemporalHelpers.toPrimitiveObserver(actual, target[key], `options.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has options.${key}`);
+    return key in target;
+  },
+});
+
+const result = instance.dateFromFields(arg1, arg2);
+TemporalHelpers.assertPlainDate(result, 1, 1, "M01", 1, "date result", "ce", 1);
+assert.sameValue(result.calendar, instance, "calendar result");
+assert.compareArray(actual, expected, "order of operations");
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/leap-second.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/leap-second.js
rename to JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-leap-second.js
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-string-time-separators.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-string-time-separators.js
new file mode 100644
index 0000000..0a5aa63
--- /dev/null
+++ b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.era
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.era(arg);
+
+  assert.sameValue(
+    result,
+    undefined,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-zoneddatetime-convert.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..1073533
--- /dev/null
+++ b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.era
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.era(arg));
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-zoneddatetime-slots.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..ae4ba42
--- /dev/null
+++ b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/era/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.era
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.era(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/leap-second.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-leap-second.js
similarity index 100%
rename from JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/leap-second.js
rename to JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-leap-second.js
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-string-time-separators.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-string-time-separators.js
new file mode 100644
index 0000000..3ff00ff
--- /dev/null
+++ b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-string-time-separators.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.erayear
+description: Time separator in string argument can vary
+features: [Temporal]
+---*/
+
+const tests = [
+  ["2000-05-02T15:23", "uppercase T"],
+  ["2000-05-02t15:23", "lowercase T"],
+  ["2000-05-02 15:23", "space between date and time"],
+];
+
+const instance = new Temporal.Calendar("iso8601");
+
+tests.forEach(([arg, description]) => {
+  const result = instance.eraYear(arg);
+
+  assert.sameValue(
+    result,
+    undefined,
+    `variant time separators (${description})`
+  );
+});
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-zoneddatetime-convert.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-zoneddatetime-convert.js
new file mode 100644
index 0000000..5fad6b7
--- /dev/null
+++ b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-zoneddatetime-convert.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.erayear
+description: An exception from TimeZone#getOffsetNanosecondsFor() is propagated.
+features: [Temporal]
+---*/
+
+class TZ extends Temporal.TimeZone {
+  constructor() { super("UTC") }
+  getOffsetNanosecondsFor() { throw new Test262Error() }
+}
+
+const tz = new TZ();
+const arg = new Temporal.ZonedDateTime(0n, tz);
+const instance = new Temporal.Calendar("iso8601");
+
+assert.throws(Test262Error, () => instance.eraYear(arg));
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-zoneddatetime-slots.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-zoneddatetime-slots.js
new file mode 100644
index 0000000..341cdf1
--- /dev/null
+++ b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/eraYear/argument-zoneddatetime-slots.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.erayear
+description: Getters are not called when converting a ZonedDateTime to a PlainDate.
+includes: [compareArray.js]
+features: [Temporal]
+---*/
+
+const actual = [];
+const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
+const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
+
+for (const property of getters) {
+  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
+    get() {
+      actual.push(`get ${property}`);
+      const value = prototypeDescrs[property].get.call(this);
+      return {
+        toString() {
+          actual.push(`toString ${property}`);
+          return value.toString();
+        },
+        valueOf() {
+          actual.push(`valueOf ${property}`);
+          return value;
+        },
+      };
+    },
+  });
+}
+
+const arg = new Temporal.ZonedDateTime(0n, "UTC");
+const instance = new Temporal.Calendar("iso8601");
+instance.eraYear(arg);
+assert.compareArray(actual, []);
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/monthDayFromFields/order-of-operations.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/monthDayFromFields/order-of-operations.js
new file mode 100644
index 0000000..ec94fdc
--- /dev/null
+++ b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/monthDayFromFields/order-of-operations.js
@@ -0,0 +1,76 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.monthdayfromfields
+description: Properties on objects passed to monthDayFromFields() are accessed in the correct order
+includes: [compareArray.js, temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const expected = [
+  "get options.overflow",
+  "get options.overflow.toString",
+  "call options.overflow.toString",
+  "get fields.day",
+  "get fields.day.valueOf",
+  "call fields.day.valueOf",
+  "get fields.era",
+  "get fields.era.toString",
+  "call fields.era.toString",
+  "get fields.eraYear",
+  "get fields.eraYear.valueOf",
+  "call fields.eraYear.valueOf",
+  "get fields.month",
+  "get fields.month.valueOf",
+  "call fields.month.valueOf",
+  "get fields.monthCode",
+  "get fields.monthCode.toString",
+  "call fields.monthCode.toString",
+  "get fields.year",
+  "get fields.year.valueOf",
+  "call fields.year.valueOf",
+];
+const actual = [];
+
+const instance = new Temporal.Calendar("gregory");
+
+const fields = {
+  era: "ce",
+  eraYear: 1.7,
+  year: 1.7,
+  month: 1.7,
+  monthCode: "M01",
+  day: 1.7,
+};
+const arg1 = new Proxy(fields, {
+  get(target, key) {
+    actual.push(`get fields.${key}`);
+    if (key === "calendar") return instance;
+    const result = target[key];
+    return TemporalHelpers.toPrimitiveObserver(actual, result, `fields.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has fields.${key}`);
+    return key in target;
+  },
+});
+
+const options = {
+  overflow: "reject",
+};
+const arg2 = new Proxy(options, {
+  get(target, key) {
+    actual.push(`get options.${key}`);
+    return TemporalHelpers.toPrimitiveObserver(actual, target[key], `options.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has options.${key}`);
+    return key in target;
+  },
+});
+
+const result = instance.monthDayFromFields(arg1, arg2);
+TemporalHelpers.assertPlainMonthDay(result, "M01", 1, "monthDay result");
+assert.sameValue(result.calendar, instance, "calendar result");
+assert.compareArray(actual, expected, "order of operations");
diff --git a/JSTests/test262/test/intl402/Temporal/Calendar/prototype/yearMonthFromFields/order-of-operations.js b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/yearMonthFromFields/order-of-operations.js
new file mode 100644
index 0000000..882cfd0
--- /dev/null
+++ b/JSTests/test262/test/intl402/Temporal/Calendar/prototype/yearMonthFromFields/order-of-operations.js
@@ -0,0 +1,72 @@
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.calendar.prototype.yearmonthfromfields
+description: Properties on objects passed to yearMonthFromFields() are accessed in the correct order
+includes: [compareArray.js, temporalHelpers.js]
+features: [Temporal]
+---*/
+
+const expected = [
+  "get options.overflow",
+  "get options.overflow.toString",
+  "call options.overflow.toString",
+  "get fields.era",
+  "get fields.era.toString",
+  "call fields.era.toString",
+  "get fields.eraYear",
+  "get fields.eraYear.valueOf",
+  "call fields.eraYear.valueOf",
+  "get fields.month",
+  "get fields.month.valueOf",
+  "call fields.month.valueOf",
+  "get fields.monthCode",
+  "get fields.monthCode.toString",
+  "call fields.monthCode.toString",
+  "get fields.year",
+  "get fields.year.valueOf",
+  "call fields.year.valueOf",
+];
+const actual = [];
+
+const instance = new Temporal.Calendar("gregory");
+
+const fields = {
+  era: "ce",
+  eraYear: 1.7,
+  year: 1.7,
+  month: 1.7,
+  monthCode: "M01",
+};
+const arg1 = new Proxy(fields, {
+  get(target, key) {
+    actual.push(`get fields.${key}`);
+    if (key === "calendar") return instance;
+    const result = target[key];
+    return TemporalHelpers.toPrimitiveObserver(actual, result, `fields.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has fields.${key}`);
+    return key in target;
+  },
+});
+
+const options = {
+  overflow: "reject",
+};
+const arg2 = new Proxy(options, {
+  get(target, key) {
+    actual.push(`get options.${key}`);
+    return TemporalHelpers.toPrimitiveObserver(actual, target[key], `options.${key}`);
+  },
+  has(target, key) {
+    actual.push(`has options.${key}`);
+    return key in target;
+  },
+});
+
+const result = instance.yearMonthFromFields(arg1, arg2);
+TemporalHelpers.assertPlainYearMonth(result, 1, 1, "M01", "yearMonth result", "ce", 1);
+assert.sameValue(result.calendar, instance, "calendar result");
+assert.compareArray(actual, expected, "order of operations");
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-break-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-break-escaped.js
index 9ea829f..9ba6cea 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-break-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-break-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/break-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: break is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: break is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-case-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-case-escaped.js
index ae873a5..e1b4186 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-case-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-case-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/case-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: case is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: case is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-catch-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-catch-escaped.js
index 6a73898..4a6ee32 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-catch-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-catch-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/catch-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: catch is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: catch is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-class-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-class-escaped.js
index 1165f0d..5ba47be 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-class-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-class-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/class-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: class is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: class is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-const-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-const-escaped.js
index 38b813b..6c0ed61 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-const-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-const-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/const-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: const is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: const is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-continue-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-continue-escaped.js
index 4107841..23d9d5d 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-continue-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-continue-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/continue-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: continue is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: continue is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-debugger-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-debugger-escaped.js
index dd992b8..4fbae26 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-debugger-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-debugger-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/debugger-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: debugger is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: debugger is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped-ext.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped-ext.js
index d5a2bd9..f44f6a9 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped-ext.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped-ext.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/default-escaped-ext.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: default is a valid identifier name, using extended escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: default is a valid identifier name, using extended escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped.js
index 817ca8d..2000c95 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/default-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: default is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: default is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default.js
index b01dd18..baf609e 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-default.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/default.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: default is a valid identifier name (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: default is a valid identifier name (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-delete-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-delete-escaped.js
index ddc0944..461c0c9 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-delete-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-delete-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/delete-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: delete is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: delete is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-do-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-do-escaped.js
index 235a436..8d318c7 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-do-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-do-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/do-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: do is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: do is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-else-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-else-escaped.js
index cb80673..a52c241 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-else-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-else-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/else-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: else is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: else is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-enum-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-enum-escaped.js
index a96bc2f..1c7b878 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-enum-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-enum-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/enum-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: enum is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: enum is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-export-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-export-escaped.js
index 3871fd9..a4e41bd 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-export-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-export-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/export-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: export is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: export is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped-ext.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped-ext.js
index 71ce774..927399b 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped-ext.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped-ext.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/extends-escaped-ext.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: extends is a valid identifier name, using extended escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: extends is a valid identifier name, using extended escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped.js
index f3a98dd..3c28825 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/extends-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: extends is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: extends is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends.js
index ef48018..03eeb53e 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-extends.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/extends.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: extends is a valid identifier name (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: extends is a valid identifier name (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-finally-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-finally-escaped.js
index 1b0410e..0003405 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-finally-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-finally-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/finally-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: finally is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: finally is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-for-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-for-escaped.js
index be5c9b3..8ee85c2 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-for-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-for-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/for-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: for is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: for is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-function-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-function-escaped.js
index 70416d6..8d8a4d7 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-function-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-function-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/function-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: function is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: function is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-if-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-if-escaped.js
index 82d9d29..2002a0b 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-if-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-if-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/if-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: if is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: if is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-implements-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-implements-escaped.js
index 807c0d3..121ae24 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-implements-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-implements-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/implements-escaped.case
 // - src/identifier-names/future-reserved-words/arrow-fn-assignment-identifier.template
 /*---
-description: implements is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: implements is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-import-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-import-escaped.js
index 7dc378c..65a830d 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-import-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-import-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/import-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: import is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: import is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-in-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-in-escaped.js
index 882edec..1315fc8 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-in-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-in-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/in-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: in is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: in is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-instanceof-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-instanceof-escaped.js
index be984ee..5ad7e9d 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-instanceof-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-instanceof-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/instanceof-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: instanceof is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: instanceof is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-interface-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-interface-escaped.js
index 249a733..4cfb878 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-interface-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-interface-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/interface-escaped.case
 // - src/identifier-names/future-reserved-words/arrow-fn-assignment-identifier.template
 /*---
-description: interface is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: interface is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-let-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-let-escaped.js
index 4f5f407..c3394f4 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-let-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-let-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/let-escaped.case
 // - src/identifier-names/future-reserved-words/arrow-fn-assignment-identifier.template
 /*---
-description: let is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: let is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-new-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-new-escaped.js
index 71bf9f1..7405404 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-new-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-new-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/new-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: new is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: new is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-package-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-package-escaped.js
index 2a03def..2572e28 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-package-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-package-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/package-escaped.case
 // - src/identifier-names/future-reserved-words/arrow-fn-assignment-identifier.template
 /*---
-description: package is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: package is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-private-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-private-escaped.js
index b035db3..77f4a2e 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-private-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-private-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/private-escaped.case
 // - src/identifier-names/future-reserved-words/arrow-fn-assignment-identifier.template
 /*---
-description: private is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: private is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-protected-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-protected-escaped.js
index 38506fd..6e88462 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-protected-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-protected-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/protected-escaped.case
 // - src/identifier-names/future-reserved-words/arrow-fn-assignment-identifier.template
 /*---
-description: protected is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: protected is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-public-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-public-escaped.js
index 1c1ea30..662eba7 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-public-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-public-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/public-escaped.case
 // - src/identifier-names/future-reserved-words/arrow-fn-assignment-identifier.template
 /*---
-description: public is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: public is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-return-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-return-escaped.js
index d0ae695..ede5f36 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-return-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-return-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/return-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: return is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: return is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-static-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-static-escaped.js
index bc9518c..80f4cf3 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-static-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-static-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/static-escaped.case
 // - src/identifier-names/future-reserved-words/arrow-fn-assignment-identifier.template
 /*---
-description: static is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: static is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-super-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-super-escaped.js
index 5e195d8..dd77fa19 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-super-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-super-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/super-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: super is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: super is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-switch-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-switch-escaped.js
index 0126e67..6455609 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-switch-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-switch-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/switch-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: switch is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: switch is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-this-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-this-escaped.js
index 1a691d1..26953fe 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-this-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-this-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/this-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: this is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: this is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-throw-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-throw-escaped.js
index b7d4953..7564c5a 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-throw-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-throw-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/throw-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: throw is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: throw is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-try-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-try-escaped.js
index 18ca8db..af1a6d8 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-try-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-try-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/try-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: try is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: try is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-typeof-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-typeof-escaped.js
index 242acdb..1e0abf6 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-typeof-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-typeof-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/typeof-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: typeof is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: typeof is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-var-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-var-escaped.js
index 2b60400..a467dd3 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-var-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-var-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/var-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: var is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: var is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-void-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-void-escaped.js
index f40399a..017ea5e 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-void-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-void-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/void-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: void is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: void is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-while-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-while-escaped.js
index 6050b8c..19e9b32 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-while-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-while-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/while-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: while is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: while is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-with-escaped.js b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-with-escaped.js
index 61be431..cf4dde5 100644
--- a/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-with-escaped.js
+++ b/JSTests/test262/test/language/expressions/arrow-function/dstr/syntax-error-ident-ref-with-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/with-escaped.case
 // - src/identifier-names/default/arrow-fn-assignment-identifier.template
 /*---
-description: with is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
+description: with is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern (Arrow Function) cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [arrow-function, destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-break-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-break-escaped.js
index 87a2d05..0d902c6 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-break-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-break-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/break-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: break is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: break is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-case-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-case-escaped.js
index d4c4615..77d30ba 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-case-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-case-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/case-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: case is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: case is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-catch-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-catch-escaped.js
index ce801e6..0ed0319 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-catch-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-catch-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/catch-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: catch is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: catch is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-class-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-class-escaped.js
index 26ef826..a3f7644 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-class-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-class-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/class-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: class is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: class is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-const-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-const-escaped.js
index 722d37a..123dd99 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-const-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-const-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/const-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: const is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: const is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-continue-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-continue-escaped.js
index dbc817a..0e6a4c3 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-continue-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-continue-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/continue-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: continue is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: continue is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-debugger-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-debugger-escaped.js
index 85461e8..6c84b67 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-debugger-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-debugger-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/debugger-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: debugger is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: debugger is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped-ext.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped-ext.js
index 20f3675..5f9008c 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped-ext.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped-ext.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/default-escaped-ext.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: default is a valid identifier name, using extended escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: default is a valid identifier name, using extended escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped.js
index cd965f1..e60088b 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/default-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: default is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: default is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default.js
index 77ffa8c..e2b08d5 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-default.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/default.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: default is a valid identifier name (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: default is a valid identifier name (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-delete-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-delete-escaped.js
index 0650962..6304679 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-delete-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-delete-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/delete-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: delete is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: delete is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-do-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-do-escaped.js
index 88b5593..8533d10 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-do-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-do-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/do-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: do is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: do is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-else-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-else-escaped.js
index 1a496d7..09f7b32 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-else-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-else-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/else-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: else is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: else is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-enum-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-enum-escaped.js
index ed0ac86..b9ace02 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-enum-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-enum-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/enum-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: enum is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: enum is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-export-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-export-escaped.js
index af3d4d8..da5290b 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-export-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-export-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/export-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: export is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: export is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped-ext.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped-ext.js
index 8323096..83cb179 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped-ext.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped-ext.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/extends-escaped-ext.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: extends is a valid identifier name, using extended escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: extends is a valid identifier name, using extended escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped.js
index cd4a500..6389193 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/extends-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: extends is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: extends is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends.js
index 80ca908..7b473db 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-extends.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/extends.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: extends is a valid identifier name (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: extends is a valid identifier name (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-finally-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-finally-escaped.js
index b1aa4d9..42ce33a 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-finally-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-finally-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/finally-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: finally is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: finally is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-for-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-for-escaped.js
index eb76069..be937bb 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-for-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-for-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/for-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: for is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: for is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-function-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-function-escaped.js
index aafed8d..cdaad0a 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-function-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-function-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/function-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: function is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: function is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-if-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-if-escaped.js
index 275555c..e0a4071 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-if-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-if-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/if-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: if is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: if is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-implements-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-implements-escaped.js
index b70bb6a..4c6cc79 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-implements-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-implements-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/implements-escaped.case
 // - src/identifier-names/future-reserved-words/obj-assignment-identifier.template
 /*---
-description: implements is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: implements is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-import-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-import-escaped.js
index 16751f1..e1f9878 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-import-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-import-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/import-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: import is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: import is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-in-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-in-escaped.js
index 4ab6432..925ed25 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-in-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-in-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/in-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: in is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: in is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-instanceof-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-instanceof-escaped.js
index 3c92bdf..5d3fb33 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-instanceof-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-instanceof-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/instanceof-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: instanceof is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: instanceof is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-interface-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-interface-escaped.js
index c330f9e..f17fd5a 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-interface-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-interface-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/interface-escaped.case
 // - src/identifier-names/future-reserved-words/obj-assignment-identifier.template
 /*---
-description: interface is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: interface is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-let-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-let-escaped.js
index 7515edf..1e841d9 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-let-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-let-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/let-escaped.case
 // - src/identifier-names/future-reserved-words/obj-assignment-identifier.template
 /*---
-description: let is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: let is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-new-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-new-escaped.js
index 0ad44ef..4b3ea2c 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-new-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-new-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/new-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: new is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: new is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-package-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-package-escaped.js
index 82792e8..7a4abb4 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-package-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-package-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/package-escaped.case
 // - src/identifier-names/future-reserved-words/obj-assignment-identifier.template
 /*---
-description: package is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: package is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-private-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-private-escaped.js
index 737d673..66d73b85 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-private-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-private-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/private-escaped.case
 // - src/identifier-names/future-reserved-words/obj-assignment-identifier.template
 /*---
-description: private is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: private is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-protected-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-protected-escaped.js
index b30b455..05e8b68 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-protected-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-protected-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/protected-escaped.case
 // - src/identifier-names/future-reserved-words/obj-assignment-identifier.template
 /*---
-description: protected is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: protected is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-public-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-public-escaped.js
index a7433b0..f3f2247 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-public-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-public-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/public-escaped.case
 // - src/identifier-names/future-reserved-words/obj-assignment-identifier.template
 /*---
-description: public is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: public is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-return-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-return-escaped.js
index e6d895d..3b66ad2 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-return-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-return-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/return-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: return is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: return is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-static-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-static-escaped.js
index dabc19a..34ef93c 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-static-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-static-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/static-escaped.case
 // - src/identifier-names/future-reserved-words/obj-assignment-identifier.template
 /*---
-description: static is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: static is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated, onlyStrict]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-super-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-super-escaped.js
index dd8cf52..833f26b 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-super-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-super-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/super-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: super is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: super is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-switch-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-switch-escaped.js
index 699aaa4..3efc456 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-switch-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-switch-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/switch-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: switch is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: switch is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-this-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-this-escaped.js
index fad7bd6..affcc45 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-this-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-this-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/this-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: this is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: this is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-throw-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-throw-escaped.js
index 3a5875a..23406c4 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-throw-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-throw-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/throw-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: throw is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: throw is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-try-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-try-escaped.js
index 993ca9c..347b437 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-try-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-try-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/try-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: try is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: try is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-typeof-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-typeof-escaped.js
index b6c6647..d9513c0 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-typeof-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-typeof-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/typeof-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: typeof is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: typeof is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-var-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-var-escaped.js
index 81a24e0..2b37ef6 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-var-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-var-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/var-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: var is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: var is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-void-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-void-escaped.js
index c7ca53e..c5e4629 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-void-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-void-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/void-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: void is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: void is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-while-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-while-escaped.js
index d272ef6..061c747 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-while-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-while-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/while-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: while is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: while is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-with-escaped.js b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-with-escaped.js
index 1fc4b86..0fcac64 100644
--- a/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-with-escaped.js
+++ b/JSTests/test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-with-escaped.js
@@ -2,7 +2,7 @@
 // - src/identifier-names/with-escaped.case
 // - src/identifier-names/default/obj-assignment-identifier.template
 /*---
-description: with is a valid identifier name, using escape (IdentiferReference in ObjectAssignmentPattern cannot be a ReservedWord)
+description: with is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord)
 esid: prod-AssignmentPattern
 features: [destructuring-assignment]
 flags: [generated]
diff --git a/JSTests/test262/test/language/expressions/class/decorator/syntax/class-valid/decorator-member-expr-private-identifier.js b/JSTests/test262/test/language/expressions/class/decorator/syntax/class-valid/decorator-member-expr-private-identifier.js
new file mode 100644
index 0000000..a20d812
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/decorator/syntax/class-valid/decorator-member-expr-private-identifier.js
@@ -0,0 +1,53 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-member-expr-private-identifier.case
+// - src/decorator/syntax/class-valid/cls-expr-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class expression in class body.)
+esid: prod-ClassExpression
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassExpression[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorMemberExpression[Yield, Await] :
+      PrivateIdentifier
+
+    PrivateIdentifier ::
+      # IdentifierName
+
+---*/
+
+
+var C = class {
+  static #$() {}
+  static #_() {}
+  static #\u{6F}() {}
+  static #\u2118() {}
+  static #ZW_\u200C_NJ() {}
+  static #ZW_\u200D_J() {}
+  static #yield() {}
+  static #await() {}
+
+  static {
+    var C = @#$
+    @#_
+    @#\u{6F}
+    @#\u2118
+    @#ZW_\u200C_NJ
+    @#ZW_\u200D_J
+    @#yield
+    @#await class {}
+  }
+};
diff --git a/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-call-expr-identifier-reference-yield.js b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-call-expr-identifier-reference-yield.js
new file mode 100644
index 0000000..4ed6f5b
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-call-expr-identifier-reference-yield.js
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-call-expr-identifier-reference-yield.case
+// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorCallExpression (Valid syntax for decorator on class expression)
+esid: prod-ClassExpression
+features: [class, decorators]
+flags: [generated, noStrict]
+info: |
+    ClassExpression[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorCallExpression[Yield, Await] :
+      DecoratorMemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
+
+    DecoratorMemberExpression[Yield, Await] :
+      IdentifierReference[?Yield, ?Await]
+      PrivateIdentifier
+      DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
+
+    IdentifierReference[Yield, Await] :
+      [~Yield] yield
+      ...
+
+---*/
+function decorator() {
+  return () => {};
+}
+var yield = decorator;
+
+
+
+var C = @yield() class {};
diff --git a/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-call-expr-identifier-reference.js b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-call-expr-identifier-reference.js
new file mode 100644
index 0000000..c754ade
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-call-expr-identifier-reference.js
@@ -0,0 +1,56 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-call-expr-identifier-reference.case
+// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorCallExpression (Valid syntax for decorator on class expression)
+esid: prod-ClassExpression
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassExpression[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorCallExpression[Yield, Await] :
+      DecoratorMemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
+
+    DecoratorMemberExpression[Yield, Await] :
+      IdentifierReference[?Yield, ?Await]
+      PrivateIdentifier
+      DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
+
+    IdentifierReference[Yield, Await] :
+      Identifier
+      [~Yield] yield
+      [~Await] await
+
+---*/
+function decorator() {
+  return () => {};
+}
+var _ = decorator;
+var \u{6F} = decorator;
+var \u2118 = decorator;
+var ZW_\u200C_NJ = decorator;
+var ZW_\u200D_J = decorator;
+var await = decorator;
+
+
+
+var C = @$()
+@_()
+@\u{6F}()
+@\u2118()
+@ZW_\u200C_NJ()
+@ZW_\u200D_J()
+@await() class {};
diff --git a/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-decorator-member-expr.js b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-decorator-member-expr.js
new file mode 100644
index 0000000..ebbabb6
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-decorator-member-expr.js
@@ -0,0 +1,50 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-member-expr-decorator-member-expr.case
+// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class expression)
+esid: prod-ClassExpression
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassExpression[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorMemberExpression[Yield, Await] :
+      IdentifierReference[?Yield, ?Await]
+      PrivateIdentifier
+      DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
+
+---*/
+let ns = {
+  $() {}
+  _() {}
+  \u{6F}() {}
+  \u2118() {}
+  ZW_\u200C_NJ() {}
+  ZW_\u200D_J() {}
+  yield() {}
+  await() {}
+}
+
+
+
+var C = @ns.$
+@ns._
+@ns.\u{6F}
+@ns.\u2118
+@ns.ZW_\u200C_NJ
+@ns.ZW_\u200D_J
+@ns.yield
+@ns.await class {};
diff --git a/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-identifier-reference-yield.js b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-identifier-reference-yield.js
new file mode 100644
index 0000000..20e3c9e
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-identifier-reference-yield.js
@@ -0,0 +1,33 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-member-expr-identifier-reference-yield.case
+// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class expression)
+esid: prod-ClassExpression
+features: [class, decorators]
+flags: [generated, noStrict]
+info: |
+    ClassExpression[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    IdentifierReference[Yield, Await] :
+      [~Yield] yield
+      ...
+
+---*/
+function yield() {}
+
+
+
+var C = @yield class {};
diff --git a/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-identifier-reference.js b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-identifier-reference.js
new file mode 100644
index 0000000..38c9560
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-member-expr-identifier-reference.js
@@ -0,0 +1,46 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-member-expr-identifier-reference.case
+// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class expression)
+esid: prod-ClassExpression
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassExpression[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    IdentifierReference[Yield, Await] :
+      Identifier
+      [~Yield] yield
+      [~Await] await
+
+---*/
+function $() {}
+function _() {}
+function \u{6F}() {}
+function \u2118() {}
+function ZW_\u200C_NJ() {}
+function ZW_\u200D_J() {}
+function await() {}
+
+
+
+var C = @$
+@_
+@\u{6F}
+@\u2118
+@ZW_\u200C_NJ
+@ZW_\u200D_J
+@await class {};
diff --git a/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference-yield.js b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference-yield.js
new file mode 100644
index 0000000..e05eb39
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference-yield.js
@@ -0,0 +1,51 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-parenthesized-expr-identifier-reference-yield.case
+// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorParenthesizedExpression (Valid syntax for decorator on class expression)
+esid: prod-ClassExpression
+features: [class, decorators]
+flags: [generated, noStrict]
+info: |
+    ClassExpression[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorParenthesizedExpression[Yield, Await] :
+      ( Expression[+In, ?Yield, ?Await] )
+
+    PrimaryExpression[Yield, Await] :
+      this
+      IdentifierReference[?Yield, ?Await]
+      Literal
+      ArrayLiteral[?Yield, ?Await]
+      ObjectLiteral[?Yield, ?Await]
+      FunctionExpression
+      ClassExpression[?Yield, ?Await]
+      GeneratorExpression
+      AsyncFunctionExpression
+      AsyncGeneratorExpression
+      RegularExpressionLiteral
+      TemplateLiteral[?Yield, ?Await, ~Tagged]
+      CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
+
+    IdentifierReference[Yield, Await] :
+      [~Yield] yield
+      ...
+
+---*/
+function yield() {}
+
+
+
+var C = @(yield) class {};
diff --git a/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference.js b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference.js
new file mode 100644
index 0000000..3836f01
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference.js
@@ -0,0 +1,59 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-parenthesized-expr-identifier-reference.case
+// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorParenthesizedExpression (Valid syntax for decorator on class expression)
+esid: prod-ClassExpression
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassExpression[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorParenthesizedExpression[Yield, Await] :
+      ( Expression[+In, ?Yield, ?Await] )
+
+    PrimaryExpression[Yield, Await] :
+      this
+      IdentifierReference[?Yield, ?Await]
+      Literal
+      ArrayLiteral[?Yield, ?Await]
+      ObjectLiteral[?Yield, ?Await]
+      FunctionExpression
+      ClassExpression[?Yield, ?Await]
+      GeneratorExpression
+      AsyncFunctionExpression
+      AsyncGeneratorExpression
+      RegularExpressionLiteral
+      TemplateLiteral[?Yield, ?Await, ~Tagged]
+      CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
+
+---*/
+function $() {}
+function _() {}
+function \u{6F}() {}
+function \u2118() {}
+function ZW_\u200C_NJ() {}
+function ZW_\u200D_J() {}
+function await() {}
+
+
+
+var C = @($)
+@(_)
+@(\u{6F})
+@(\u2118)
+@(ZW_\u200C_NJ)
+@(ZW_\u200D_J)
+@(await) class {};
diff --git a/JSTests/test262/test/language/expressions/class/elements/field-definition-accessor-no-line-terminator.js b/JSTests/test262/test/language/expressions/class/elements/field-definition-accessor-no-line-terminator.js
new file mode 100644
index 0000000..02a0068
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/elements/field-definition-accessor-no-line-terminator.js
@@ -0,0 +1,31 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/field-definition-accessor-no-line-terminator.case
+// - src/class-elements/default/cls-expr.template
+/*---
+description: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax (field definitions in a class expression)
+esid: prod-FieldDefinition
+features: [decorators, class]
+flags: [generated]
+info: |
+    FieldDefinition[Yield, Await] :
+      accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
+
+---*/
+
+
+var C = class {
+  accessor
+  $;
+  static accessor
+  $;
+
+}
+
+let c = new C();
+
+assert.sameValue(Object.hasOwnProperty.call(C.prototype, 'accessor'), false);
+assert.sameValue(Object.hasOwnProperty.call(C.prototype, '$'), false);
+assert.sameValue(Object.hasOwnProperty.call(C, 'accessor'), true);
+assert.sameValue(Object.hasOwnProperty.call(C, '$'), true);
+assert.sameValue(Object.hasOwnProperty.call(c, 'accessor'), true);
+assert.sameValue(Object.hasOwnProperty.call(c, '$'), true);
diff --git a/JSTests/test262/test/language/expressions/class/elements/syntax/valid/grammar-field-accessor.js b/JSTests/test262/test/language/expressions/class/elements/syntax/valid/grammar-field-accessor.js
new file mode 100644
index 0000000..d67fd32
--- /dev/null
+++ b/JSTests/test262/test/language/expressions/class/elements/syntax/valid/grammar-field-accessor.js
@@ -0,0 +1,24 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-field-accessor.case
+// - src/class-elements/syntax/valid/cls-expr-elements-valid-syntax.template
+/*---
+description: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax (class expression)
+esid: prod-ClassElement
+features: [decorators, class]
+flags: [generated]
+info: |
+    FieldDefinition[Yield, Await] :
+      ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
+      accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
+
+---*/
+
+
+var C = class {
+  accessor $;
+  accessor _;
+  accessor \u{6F};
+  accessor \u2118;
+  accessor ZW_\u200C_NJ;
+  accessor ZW_\u200D_J;
+};
diff --git a/JSTests/test262/test/language/module-code/early-dup-lex.js b/JSTests/test262/test/language/module-code/early-dup-lex.js
index 6664ddb..386371a 100644
--- a/JSTests/test262/test/language/module-code/early-dup-lex.js
+++ b/JSTests/test262/test/language/module-code/early-dup-lex.js
@@ -15,4 +15,4 @@
 $DONOTEVALUATE();
 
 let x;
-const x;
+const x = 0;
diff --git a/JSTests/test262/test/language/statements/class/decorator/syntax/class-valid/decorator-member-expr-private-identifier.js b/JSTests/test262/test/language/statements/class/decorator/syntax/class-valid/decorator-member-expr-private-identifier.js
new file mode 100644
index 0000000..24af7d9
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/decorator/syntax/class-valid/decorator-member-expr-private-identifier.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-member-expr-private-identifier.case
+// - src/decorator/syntax/class-valid/cls-decl-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class declaration in class body.)
+esid: prod-ClassDeclaration
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassDeclaration[Yield, Await, Default] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
+      [+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorMemberExpression[Yield, Await] :
+      PrivateIdentifier
+
+    PrivateIdentifier ::
+      # IdentifierName
+
+---*/
+
+
+class C {
+  static #$() {}
+  static #_() {}
+  static #\u{6F}() {}
+  static #\u2118() {}
+  static #ZW_\u200C_NJ() {}
+  static #ZW_\u200D_J() {}
+  static #yield() {}
+  static #await() {}
+
+  static {
+    @#$
+    @#_
+    @#\u{6F}
+    @#\u2118
+    @#ZW_\u200C_NJ
+    @#ZW_\u200D_J
+    @#yield
+    @#await class C {}
+  }
+}
diff --git a/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-call-expr-identifier-reference-yield.js b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-call-expr-identifier-reference-yield.js
new file mode 100644
index 0000000..1d16c68
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-call-expr-identifier-reference-yield.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-call-expr-identifier-reference-yield.case
+// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorCallExpression (Valid syntax for decorator on class.)
+esid: prod-ClassDeclaration
+features: [class, decorators]
+flags: [generated, noStrict]
+info: |
+    ClassDeclaration[Yield, Await, Default] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
+      [+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorCallExpression[Yield, Await] :
+      DecoratorMemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
+
+    DecoratorMemberExpression[Yield, Await] :
+      IdentifierReference[?Yield, ?Await]
+      PrivateIdentifier
+      DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
+
+    IdentifierReference[Yield, Await] :
+      [~Yield] yield
+      ...
+
+---*/
+function decorator() {
+  return () => {};
+}
+var yield = decorator;
+
+
+
+@yield() class C {}
diff --git a/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-call-expr-identifier-reference.js b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-call-expr-identifier-reference.js
new file mode 100644
index 0000000..2744964
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-call-expr-identifier-reference.js
@@ -0,0 +1,57 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-call-expr-identifier-reference.case
+// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorCallExpression (Valid syntax for decorator on class.)
+esid: prod-ClassDeclaration
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassDeclaration[Yield, Await, Default] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
+      [+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorCallExpression[Yield, Await] :
+      DecoratorMemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
+
+    DecoratorMemberExpression[Yield, Await] :
+      IdentifierReference[?Yield, ?Await]
+      PrivateIdentifier
+      DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
+
+    IdentifierReference[Yield, Await] :
+      Identifier
+      [~Yield] yield
+      [~Await] await
+
+---*/
+function decorator() {
+  return () => {};
+}
+var _ = decorator;
+var \u{6F} = decorator;
+var \u2118 = decorator;
+var ZW_\u200C_NJ = decorator;
+var ZW_\u200D_J = decorator;
+var await = decorator;
+
+
+
+@$()
+@_()
+@\u{6F}()
+@\u2118()
+@ZW_\u200C_NJ()
+@ZW_\u200D_J()
+@await() class C {}
diff --git a/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-member-expr-decorator-member-expr.js b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-member-expr-decorator-member-expr.js
new file mode 100644
index 0000000..f13312c
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-member-expr-decorator-member-expr.js
@@ -0,0 +1,51 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-member-expr-decorator-member-expr.case
+// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class.)
+esid: prod-ClassDeclaration
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassDeclaration[Yield, Await, Default] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
+      [+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorMemberExpression[Yield, Await] :
+      IdentifierReference[?Yield, ?Await]
+      PrivateIdentifier
+      DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
+
+---*/
+let ns = {
+  $() {}
+  _() {}
+  \u{6F}() {}
+  \u2118() {}
+  ZW_\u200C_NJ() {}
+  ZW_\u200D_J() {}
+  yield() {}
+  await() {}
+}
+
+
+
+@ns.$
+@ns._
+@ns.\u{6F}
+@ns.\u2118
+@ns.ZW_\u200C_NJ
+@ns.ZW_\u200D_J
+@ns.yield
+@ns.await class C {}
diff --git a/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-member-expr-identifier-reference-yield.js b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-member-expr-identifier-reference-yield.js
new file mode 100644
index 0000000..388a12e
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-member-expr-identifier-reference-yield.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-member-expr-identifier-reference-yield.case
+// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class.)
+esid: prod-ClassDeclaration
+features: [class, decorators]
+flags: [generated, noStrict]
+info: |
+    ClassDeclaration[Yield, Await, Default] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
+      [+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    IdentifierReference[Yield, Await] :
+      [~Yield] yield
+      ...
+
+---*/
+function yield() {}
+
+
+
+@yield class C {}
diff --git a/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-member-expr-identifier-reference.js b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-member-expr-identifier-reference.js
new file mode 100644
index 0000000..a17dc8a
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-member-expr-identifier-reference.js
@@ -0,0 +1,47 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-member-expr-identifier-reference.case
+// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class.)
+esid: prod-ClassDeclaration
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassDeclaration[Yield, Await, Default] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
+      [+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    IdentifierReference[Yield, Await] :
+      Identifier
+      [~Yield] yield
+      [~Await] await
+
+---*/
+function $() {}
+function _() {}
+function \u{6F}() {}
+function \u2118() {}
+function ZW_\u200C_NJ() {}
+function ZW_\u200D_J() {}
+function await() {}
+
+
+
+@$
+@_
+@\u{6F}
+@\u2118
+@ZW_\u200C_NJ
+@ZW_\u200D_J
+@await class C {}
diff --git a/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference-yield.js b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference-yield.js
new file mode 100644
index 0000000..157739f
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference-yield.js
@@ -0,0 +1,52 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-parenthesized-expr-identifier-reference-yield.case
+// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorParenthesizedExpression (Valid syntax for decorator on class.)
+esid: prod-ClassDeclaration
+features: [class, decorators]
+flags: [generated, noStrict]
+info: |
+    ClassDeclaration[Yield, Await, Default] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
+      [+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorParenthesizedExpression[Yield, Await] :
+      ( Expression[+In, ?Yield, ?Await] )
+
+    PrimaryExpression[Yield, Await] :
+      this
+      IdentifierReference[?Yield, ?Await]
+      Literal
+      ArrayLiteral[?Yield, ?Await]
+      ObjectLiteral[?Yield, ?Await]
+      FunctionExpression
+      ClassExpression[?Yield, ?Await]
+      GeneratorExpression
+      AsyncFunctionExpression
+      AsyncGeneratorExpression
+      RegularExpressionLiteral
+      TemplateLiteral[?Yield, ?Await, ~Tagged]
+      CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
+
+    IdentifierReference[Yield, Await] :
+      [~Yield] yield
+      ...
+
+---*/
+function yield() {}
+
+
+
+@(yield) class C {}
diff --git a/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference.js b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference.js
new file mode 100644
index 0000000..4f8d89a
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/decorator/syntax/valid/decorator-parenthesized-expr-identifier-reference.js
@@ -0,0 +1,60 @@
+// This file was procedurally generated from the following sources:
+// - src/decorator/decorator-parenthesized-expr-identifier-reference.case
+// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
+/*---
+description: Decorator @ DecoratorParenthesizedExpression (Valid syntax for decorator on class.)
+esid: prod-ClassDeclaration
+features: [class, decorators]
+flags: [generated]
+info: |
+    ClassDeclaration[Yield, Await, Default] :
+      DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
+      [+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
+
+    DecoratorList[Yield, Await] :
+      DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
+
+    Decorator[Yield, Await] :
+      @ DecoratorMemberExpression[?Yield, ?Await]
+      @ DecoratorParenthesizedExpression[?Yield, ?Await]
+      @ DecoratorCallExpression[?Yield, ?Await]
+
+    ...
+
+
+    DecoratorParenthesizedExpression[Yield, Await] :
+      ( Expression[+In, ?Yield, ?Await] )
+
+    PrimaryExpression[Yield, Await] :
+      this
+      IdentifierReference[?Yield, ?Await]
+      Literal
+      ArrayLiteral[?Yield, ?Await]
+      ObjectLiteral[?Yield, ?Await]
+      FunctionExpression
+      ClassExpression[?Yield, ?Await]
+      GeneratorExpression
+      AsyncFunctionExpression
+      AsyncGeneratorExpression
+      RegularExpressionLiteral
+      TemplateLiteral[?Yield, ?Await, ~Tagged]
+      CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
+
+---*/
+function $() {}
+function _() {}
+function \u{6F}() {}
+function \u2118() {}
+function ZW_\u200C_NJ() {}
+function ZW_\u200D_J() {}
+function await() {}
+
+
+
+@($)
+@(_)
+@(\u{6F})
+@(\u2118)
+@(ZW_\u200C_NJ)
+@(ZW_\u200D_J)
+@(await) class C {}
diff --git a/JSTests/test262/test/language/statements/class/elements/field-definition-accessor-no-line-terminator.js b/JSTests/test262/test/language/statements/class/elements/field-definition-accessor-no-line-terminator.js
new file mode 100644
index 0000000..f09f713a4
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/elements/field-definition-accessor-no-line-terminator.js
@@ -0,0 +1,31 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/field-definition-accessor-no-line-terminator.case
+// - src/class-elements/default/cls-decl.template
+/*---
+description: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax (field definitions in a class declaration)
+esid: prod-FieldDefinition
+features: [decorators, class]
+flags: [generated]
+info: |
+    FieldDefinition[Yield, Await] :
+      accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
+
+---*/
+
+
+class C {
+  accessor
+  $;
+  static accessor
+  $;
+
+}
+
+let c = new C();
+
+assert.sameValue(Object.hasOwnProperty.call(C.prototype, 'accessor'), false);
+assert.sameValue(Object.hasOwnProperty.call(C.prototype, '$'), false);
+assert.sameValue(Object.hasOwnProperty.call(C, 'accessor'), true);
+assert.sameValue(Object.hasOwnProperty.call(C, '$'), true);
+assert.sameValue(Object.hasOwnProperty.call(c, 'accessor'), true);
+assert.sameValue(Object.hasOwnProperty.call(c, '$'), true);
diff --git a/JSTests/test262/test/language/statements/class/elements/syntax/valid/grammar-field-accessor.js b/JSTests/test262/test/language/statements/class/elements/syntax/valid/grammar-field-accessor.js
new file mode 100644
index 0000000..9091ed8
--- /dev/null
+++ b/JSTests/test262/test/language/statements/class/elements/syntax/valid/grammar-field-accessor.js
@@ -0,0 +1,24 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-field-accessor.case
+// - src/class-elements/syntax/valid/cls-decl-elements-valid-syntax.template
+/*---
+description: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax (class declaration)
+esid: prod-ClassElement
+features: [decorators, class]
+flags: [generated]
+info: |
+    FieldDefinition[Yield, Await] :
+      ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
+      accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
+
+---*/
+
+
+class C {
+  accessor $;
+  accessor _;
+  accessor \u{6F};
+  accessor \u2118;
+  accessor ZW_\u200C_NJ;
+  accessor ZW_\u200D_J;
+}
diff --git a/JSTests/test262/test/language/statements/for-in/S12.6.4_A7_T2.js b/JSTests/test262/test/language/statements/for-in/S12.6.4_A7_T2.js
index 9cfbf91..aabc94c 100644
--- a/JSTests/test262/test/language/statements/for-in/S12.6.4_A7_T2.js
+++ b/JSTests/test262/test/language/statements/for-in/S12.6.4_A7_T2.js
@@ -21,7 +21,7 @@
 __accum="";
 
 for (var __key in __obj){
-	
+
     erasator_T_1000(__obj,"b");
   
     __accum+=(__key+__obj[__key]);
diff --git a/JSTests/test262/test/language/statements/for/head-const-bound-names-in-stmt.js b/JSTests/test262/test/language/statements/for/head-const-bound-names-in-stmt.js
index e1eeb9f..664b362 100644
--- a/JSTests/test262/test/language/statements/for/head-const-bound-names-in-stmt.js
+++ b/JSTests/test262/test/language/statements/for/head-const-bound-names-in-stmt.js
@@ -17,6 +17,6 @@
 
 $DONOTEVALUATE();
 
-for (const x; false; ) {
+for (const x = 0; false; ) {
   var x;
 }
diff --git a/JSTests/test262/test/language/statements/for/labelled-fn-stmt-const.js b/JSTests/test262/test/language/statements/for/labelled-fn-stmt-const.js
index 50d0fa1..5199cbb 100644
--- a/JSTests/test262/test/language/statements/for/labelled-fn-stmt-const.js
+++ b/JSTests/test262/test/language/statements/for/labelled-fn-stmt-const.js
@@ -15,4 +15,4 @@
 
 $DONOTEVALUATE();
 
-for (const x; false; ) label1: label2: function f() {}
+for (const x = 0; false; ) label1: label2: function f() {}
diff --git a/JSTests/test262/test/language/statements/function/S14_A5_T1.js b/JSTests/test262/test/language/statements/function/S14_A5_T1.js
index c7f081a7..f76fd29 100644
--- a/JSTests/test262/test/language/statements/function/S14_A5_T1.js
+++ b/JSTests/test262/test/language/statements/function/S14_A5_T1.js
@@ -3,7 +3,7 @@
 
 /*---
 info: |
-    The Identifer within a FunctionDeclaration can be written in both letters
+    The Identifier within a FunctionDeclaration can be written in both letters
     and unicode
 es5id: 14_A5_T1
 description: >
diff --git a/JSTests/test262/test/language/statements/function/S14_A5_T2.js b/JSTests/test262/test/language/statements/function/S14_A5_T2.js
index 95ec5bc..9986e36 100644
--- a/JSTests/test262/test/language/statements/function/S14_A5_T2.js
+++ b/JSTests/test262/test/language/statements/function/S14_A5_T2.js
@@ -3,7 +3,7 @@
 
 /*---
 info: |
-    The Identifer within a FunctionDeclaration can be written in both letters
+    The Identifier within a FunctionDeclaration can be written in both letters
     and unicode
 es5id: 14_A5_T2
 description: >
diff --git a/JSTests/test262/test262-Revision.txt b/JSTests/test262/test262-Revision.txt
index 4a81c50..65099a3 100644
--- a/JSTests/test262/test262-Revision.txt
+++ b/JSTests/test262/test262-Revision.txt
@@ -1,2 +1,2 @@
-test262 remote url: git@github.com:tc39/test262.git
-test262 revision: 0a480293334c34a34f2cae012ddb4dfbd94e5782
+test262 remote url: https://github.com/tc39/test262.git
+test262 revision: 81836ba1249e45ec83d3afb51a18f81173bb1cdd
