From 55fdf608203558ead8f33bca732cdb26eab9373d Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Thu, 5 Jan 2023 19:11:23 -0700 Subject: [PATCH] Remove calendar slot from Temporal.PlainTime Has several effects on existing tests: - Remove PlainTime from various tests that extract a Temporal.Calendar instance from another Temporal object. - Remove Temporal.PlainTime.prototype.calendar property. - Remove calendar property from object returned from Temporal.PlainTime.prototype.getISOFields(). - Ignore calendar annotation when converting ISO string to PlainTime. Normative PR: https://github.com/tc39/proposal-temporal/pull/2482 --- .../Calendar/from/calendar-temporal-object.js | 5 ++- .../calendar-temporal-object.js | 5 ++- .../Now/plainDate/calendar-temporal-object.js | 5 ++- .../plainDateTime/calendar-temporal-object.js | 5 ++- .../Temporal/Now/plainTimeISO/return-value.js | 1 - .../zonedDateTime/calendar-temporal-object.js | 3 +- .../PlainDate/calendar-temporal-object.js | 5 ++- .../argument-string-calendar-annotation.js | 3 ++ .../calendar-temporal-object.js | 25 ------------- .../argument-string-calendar-annotation.js | 3 ++ .../calendar-temporal-object.js | 25 ------------- .../withCalendar/calendar-temporal-object.js | 5 ++- .../PlainDateTime/calendar-temporal-object.js | 5 ++- .../withCalendar/calendar-temporal-object.js | 5 ++- .../argument-string-calendar-annotation.js | 3 ++ .../withPlainTime/calendar-temporal-object.js | 25 ------------- .../PlainMonthDay/calendar-temporal-object.js | 5 ++- test/built-ins/Temporal/PlainTime/basic.js | 1 - .../compare/calendar-temporal-object.js | 27 -------------- .../argument-string-calendar-annotation.js | 3 ++ .../from/argument-string-with-calendar.js | 35 ------------------- .../from/calendar-temporal-object.js | 24 ------------- .../PlainTime/from/order-of-operations.js | 3 -- .../prototype/add/order-of-operations.js | 1 - .../PlainTime/prototype/calendar/basic.js | 13 ------- .../PlainTime/prototype/calendar/branding.js | 22 ------------ .../PlainTime/prototype/calendar/prop-desc.js | 14 -------- .../argument-string-calendar-annotation.js | 3 ++ .../equals/calendar-temporal-object.js | 25 ------------- .../prototype/getISOFields/custom.js | 21 ----------- .../prototype/getISOFields/field-names.js | 1 - .../prototype/getISOFields/field-prop-desc.js | 1 - .../getISOFields/field-traversal-order.js | 1 - .../argument-string-calendar-annotation.js | 3 ++ .../since/calendar-temporal-object.js | 25 ------------- .../prototype/since/order-of-operations.js | 3 -- .../prototype/subtract/order-of-operations.js | 1 - .../argument-string-calendar-annotation.js | 3 ++ .../until/calendar-temporal-object.js | 25 ------------- .../prototype/until/order-of-operations.js | 3 -- .../calendar-temporal-object.js | 5 ++- .../calendar-temporal-object.js | 5 ++- .../ZonedDateTime/calendar-temporal-object.js | 5 ++- .../withCalendar/calendar-temporal-object.js | 5 ++- .../argument-string-calendar-annotation.js | 3 ++ .../withPlainTime/calendar-temporal-object.js | 25 ------------- 46 files changed, 51 insertions(+), 388 deletions(-) delete mode 100644 test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/calendar-temporal-object.js delete mode 100644 test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/calendar-temporal-object.js delete mode 100644 test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/calendar-temporal-object.js delete mode 100644 test/built-ins/Temporal/PlainTime/compare/calendar-temporal-object.js delete mode 100644 test/built-ins/Temporal/PlainTime/from/argument-string-with-calendar.js delete mode 100644 test/built-ins/Temporal/PlainTime/from/calendar-temporal-object.js delete mode 100644 test/built-ins/Temporal/PlainTime/prototype/calendar/basic.js delete mode 100644 test/built-ins/Temporal/PlainTime/prototype/calendar/branding.js delete mode 100644 test/built-ins/Temporal/PlainTime/prototype/calendar/prop-desc.js delete mode 100644 test/built-ins/Temporal/PlainTime/prototype/equals/calendar-temporal-object.js delete mode 100644 test/built-ins/Temporal/PlainTime/prototype/getISOFields/custom.js delete mode 100644 test/built-ins/Temporal/PlainTime/prototype/since/calendar-temporal-object.js delete mode 100644 test/built-ins/Temporal/PlainTime/prototype/until/calendar-temporal-object.js delete mode 100644 test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/calendar-temporal-object.js diff --git a/test/built-ins/Temporal/Calendar/from/calendar-temporal-object.js b/test/built-ins/Temporal/Calendar/from/calendar-temporal-object.js index 49415f97d1..7d2f9a34af 100644 --- a/test/built-ins/Temporal/Calendar/from/calendar-temporal-object.js +++ b/test/built-ins/Temporal/Calendar/from/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.calendar.from description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/calendar-temporal-object.js b/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/calendar-temporal-object.js index f75fc26bdd..ded76ba195 100644 --- a/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/calendar-temporal-object.js +++ b/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.instant.prototype.tozoneddatetime description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/Now/plainDate/calendar-temporal-object.js b/test/built-ins/Temporal/Now/plainDate/calendar-temporal-object.js index 3d749f2989..7e52007371 100644 --- a/test/built-ins/Temporal/Now/plainDate/calendar-temporal-object.js +++ b/test/built-ins/Temporal/Now/plainDate/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.now.plaindate description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/Now/plainDateTime/calendar-temporal-object.js b/test/built-ins/Temporal/Now/plainDateTime/calendar-temporal-object.js index 6a14b68dfc..24d92873a0 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/calendar-temporal-object.js +++ b/test/built-ins/Temporal/Now/plainDateTime/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.now.plaindatetime description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/Now/plainTimeISO/return-value.js b/test/built-ins/Temporal/Now/plainTimeISO/return-value.js index 34dc61f7a7..9f3ec0d4cb 100644 --- a/test/built-ins/Temporal/Now/plainTimeISO/return-value.js +++ b/test/built-ins/Temporal/Now/plainTimeISO/return-value.js @@ -9,4 +9,3 @@ features: [Temporal] const t = Temporal.Now.plainTimeISO(); assert(t instanceof Temporal.PlainTime); -assert.sameValue(t.calendar.id, "iso8601"); diff --git a/test/built-ins/Temporal/Now/zonedDateTime/calendar-temporal-object.js b/test/built-ins/Temporal/Now/zonedDateTime/calendar-temporal-object.js index 18099078b8..5667165e28 100644 --- a/test/built-ins/Temporal/Now/zonedDateTime/calendar-temporal-object.js +++ b/test/built-ins/Temporal/Now/zonedDateTime/calendar-temporal-object.js @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/PlainDate/calendar-temporal-object.js b/test/built-ins/Temporal/PlainDate/calendar-temporal-object.js index 6eb1d42f82..108a8aae55 100644 --- a/test/built-ins/Temporal/PlainDate/calendar-temporal-object.js +++ b/test/built-ins/Temporal/PlainDate/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.plaindate description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-calendar-annotation.js b/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-calendar-annotation.js index 0c6512df1a..68df2aa4f9 100644 --- a/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-calendar-annotation.js +++ b/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/argument-string-calendar-annotation.js @@ -21,6 +21,9 @@ const tests = [ ["1970-01-01T12:34:56.987654321[UTC][u-ca=iso8601]", "with date and time zone"], ["1970-01-01T12:34:56.987654321[!u-ca=iso8601]", "with !, date, and no time zone"], ["1970-01-01T12:34:56.987654321[UTC][!u-ca=iso8601]", "with !, date, and time zone"], + ["12:34:56.987654321[u-ca=hebrew]", "calendar annotation ignored"], + ["12:34:56.987654321[u-ca=unknown]", "calendar annotation ignored even if unknown calendar"], + ["12:34:56.987654321[!u-ca=unknown]", "calendar annotation ignored even if unknown calendar with !"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][u-ca=discord]", "second annotation ignored"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][!u-ca=discord]", "second annotation ignored even with !"], ]; diff --git a/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/calendar-temporal-object.js b/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/calendar-temporal-object.js deleted file mode 100644 index 5f58688a57..0000000000 --- a/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/calendar-temporal-object.js +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2020 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: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots -info: | - sec-temporal.plaindate.prototype.toplaindatetime step 4: - 4. Set _temporalTime_ to ? ToTemporalTime(_temporalTime_). - sec-temporal-totemporaltime step 3.d: - d. If _calendar_ is not *undefined*, then - i. Set _calendar_ to ? ToTemporalCalendar(_calendar_). - ii. If ? ToString(_calendar_) is not *"iso8601"*, then - 1. Throw a *RangeError* exception. - sec-temporal-totemporalcalendar step 1.a: - a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then - i. Return _temporalCalendarLike_.[[Calendar]]. -includes: [compareArray.js, temporalHelpers.js] -features: [Temporal] ----*/ - -TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => { - const date = new Temporal.PlainDate(2000, 5, 2); - assert.throws(RangeError, () => date.toPlainDateTime({ hour: 12, minute: 30, calendar: temporalObject })); -}); diff --git a/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-calendar-annotation.js b/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-calendar-annotation.js index 69563d510e..eff862ee0e 100644 --- a/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-calendar-annotation.js +++ b/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/argument-string-calendar-annotation.js @@ -20,6 +20,9 @@ const tests = [ ["1970-01-01T12:34:56.987654321[UTC][u-ca=iso8601]", "with date and time zone"], ["1970-01-01T12:34:56.987654321[!u-ca=iso8601]", "with !, date, and no time zone"], ["1970-01-01T12:34:56.987654321[UTC][!u-ca=iso8601]", "with !, date, and time zone"], + ["12:34:56.987654321[u-ca=hebrew]", "calendar annotation ignored"], + ["12:34:56.987654321[u-ca=unknown]", "calendar annotation ignored even if unknown calendar"], + ["12:34:56.987654321[!u-ca=unknown]", "calendar annotation ignored even if unknown calendar with !"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][u-ca=discord]", "second annotation ignored"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][!u-ca=discord]", "second annotation ignored even with !"], ]; diff --git a/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/calendar-temporal-object.js b/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/calendar-temporal-object.js deleted file mode 100644 index 0532439421..0000000000 --- a/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/calendar-temporal-object.js +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2020 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: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots -info: | - sec-temporal.plaindate.prototype.tozoneddatetime step 6.a: - a. Set _temporalTime_ to ? ToTemporalTime(_temporalTime_). - sec-temporal-totemporaltime step 3.d: - d. If _calendar_ is not *undefined*, then - i. Set _calendar_ to ? ToTemporalCalendar(_calendar_). - ii. If ? ToString(_calendar_) is not *"iso8601"*, then - 1. Throw a *RangeError* exception. - sec-temporal-totemporalcalendar step 1.a: - a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then - i. Return _temporalCalendarLike_.[[Calendar]]. -includes: [compareArray.js, temporalHelpers.js] -features: [Temporal] ----*/ - -TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => { - const date = new Temporal.PlainDate(2000, 5, 2); - assert.throws(RangeError, () => date.toZonedDateTime({ timeZone: "UTC", plainTime: { hour: 12, minute: 30, calendar: temporalObject } })); -}); diff --git a/test/built-ins/Temporal/PlainDate/prototype/withCalendar/calendar-temporal-object.js b/test/built-ins/Temporal/PlainDate/prototype/withCalendar/calendar-temporal-object.js index 278e2d7e23..919710c361 100644 --- a/test/built-ins/Temporal/PlainDate/prototype/withCalendar/calendar-temporal-object.js +++ b/test/built-ins/Temporal/PlainDate/prototype/withCalendar/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.plaindate.prototype.withcalendar description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/PlainDateTime/calendar-temporal-object.js b/test/built-ins/Temporal/PlainDateTime/calendar-temporal-object.js index 7a8f6b640b..e3e3287d2c 100644 --- a/test/built-ins/Temporal/PlainDateTime/calendar-temporal-object.js +++ b/test/built-ins/Temporal/PlainDateTime/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.plaindatetime description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-temporal-object.js b/test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-temporal-object.js index e69ed75dcc..f070f11fe0 100644 --- a/test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-temporal-object.js +++ b/test/built-ins/Temporal/PlainDateTime/prototype/withCalendar/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.plaindatetime.prototype.withcalendar description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-calendar-annotation.js b/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-calendar-annotation.js index 08450416e5..9ec7b9476b 100644 --- a/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-calendar-annotation.js +++ b/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/argument-string-calendar-annotation.js @@ -21,6 +21,9 @@ const tests = [ ["1970-01-01T12:34:56.987654321[UTC][u-ca=iso8601]", "with date and time zone"], ["1970-01-01T12:34:56.987654321[!u-ca=iso8601]", "with !, date, and no time zone"], ["1970-01-01T12:34:56.987654321[UTC][!u-ca=iso8601]", "with !, date, and time zone"], + ["12:34:56.987654321[u-ca=hebrew]", "calendar annotation ignored"], + ["12:34:56.987654321[u-ca=unknown]", "calendar annotation ignored even if unknown calendar"], + ["12:34:56.987654321[!u-ca=unknown]", "calendar annotation ignored even if unknown calendar with !"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][u-ca=discord]", "second annotation ignored"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][!u-ca=discord]", "second annotation ignored even with !"], ]; diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/calendar-temporal-object.js b/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/calendar-temporal-object.js deleted file mode 100644 index ddf67ab2fe..0000000000 --- a/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/calendar-temporal-object.js +++ /dev/null @@ -1,25 +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.zoneddatetime.prototype.withplaintime -description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots -info: | - sec-temporal.zoneddatetime.prototype.withplaintime step 4.a: - a. Let _plainTime_ be ? ToTemporalTime(_plainTimeLike_). - sec-temporal-totemporaltime step 3.d: - d. If _calendar_ is not *undefined*, then - i. Set _calendar_ to ? ToTemporalCalendar(_calendar_). - ii. If ? ToString(_calendar_) is not *"iso8601"*, then - 1. Throw a *RangeError* exception. - sec-temporal-totemporalcalendar step 1.a: - a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then - i. Return _temporalCalendarLike_.[[Calendar]]. -includes: [compareArray.js, temporalHelpers.js] -features: [Temporal] ----*/ - -TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => { - const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); - assert.throws(RangeError, () => datetime.withPlainTime({ hour: 12, minute: 30, calendar: temporalObject })); -}); diff --git a/test/built-ins/Temporal/PlainMonthDay/calendar-temporal-object.js b/test/built-ins/Temporal/PlainMonthDay/calendar-temporal-object.js index d7aab9f32f..1e184a913c 100644 --- a/test/built-ins/Temporal/PlainMonthDay/calendar-temporal-object.js +++ b/test/built-ins/Temporal/PlainMonthDay/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.plainmonthday description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/PlainTime/basic.js b/test/built-ins/Temporal/PlainTime/basic.js index 40ea36f208..ce41174fc1 100644 --- a/test/built-ins/Temporal/PlainTime/basic.js +++ b/test/built-ins/Temporal/PlainTime/basic.js @@ -11,4 +11,3 @@ features: [Temporal] const args = [15, 23, 30, 123, 456, 789]; const plainTime = new Temporal.PlainTime(...args); TemporalHelpers.assertPlainTime(plainTime, ...args); -assert.sameValue(plainTime.calendar.id, "iso8601", "calendar"); diff --git a/test/built-ins/Temporal/PlainTime/compare/calendar-temporal-object.js b/test/built-ins/Temporal/PlainTime/compare/calendar-temporal-object.js deleted file mode 100644 index c1eb23e228..0000000000 --- a/test/built-ins/Temporal/PlainTime/compare/calendar-temporal-object.js +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (C) 2020 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: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots -info: | - sec-temporal.plaintime.compare steps 1–2: - 1. Set _one_ to ? ToTemporalTime(_one_). - 2. Set _two_ to ? ToTemporalTime(_two_). - sec-temporal-totemporaltime step 3.d: - d. If _calendar_ is not *undefined*, then - i. Set _calendar_ to ? ToTemporalCalendar(_calendar_). - ii. If ? ToString(_calendar_) is not *"iso8601"*, then - 1. Throw a *RangeError* exception. - sec-temporal-totemporalcalendar step 1.a: - a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then - i. Return _temporalCalendarLike_.[[Calendar]]. -includes: [compareArray.js, temporalHelpers.js] -features: [Temporal] ----*/ - -TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => { - const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); - assert.throws(RangeError, () => Temporal.PlainTime.compare({ hour: 12, minute: 30, calendar: temporalObject }, time)); - assert.throws(RangeError, () => Temporal.PlainTime.compare(time, { hour: 12, minute: 30, calendar: temporalObject })); -}); diff --git a/test/built-ins/Temporal/PlainTime/from/argument-string-calendar-annotation.js b/test/built-ins/Temporal/PlainTime/from/argument-string-calendar-annotation.js index b15e34bf4d..af52c96a02 100644 --- a/test/built-ins/Temporal/PlainTime/from/argument-string-calendar-annotation.js +++ b/test/built-ins/Temporal/PlainTime/from/argument-string-calendar-annotation.js @@ -21,6 +21,9 @@ const tests = [ ["1970-01-01T12:34:56.987654321[UTC][u-ca=iso8601]", "with date and time zone"], ["1970-01-01T12:34:56.987654321[!u-ca=iso8601]", "with !, date, and no time zone"], ["1970-01-01T12:34:56.987654321[UTC][!u-ca=iso8601]", "with !, date, and time zone"], + ["12:34:56.987654321[u-ca=hebrew]", "calendar annotation ignored"], + ["12:34:56.987654321[u-ca=unknown]", "calendar annotation ignored even if unknown calendar"], + ["12:34:56.987654321[!u-ca=unknown]", "calendar annotation ignored even if unknown calendar with !"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][u-ca=discord]", "second annotation ignored"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][!u-ca=discord]", "second annotation ignored even with !"], ]; diff --git a/test/built-ins/Temporal/PlainTime/from/argument-string-with-calendar.js b/test/built-ins/Temporal/PlainTime/from/argument-string-with-calendar.js deleted file mode 100644 index 84bb8ee43b..0000000000 --- a/test/built-ins/Temporal/PlainTime/from/argument-string-with-calendar.js +++ /dev/null @@ -1,35 +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-totemporaltime -description: Strings with non-ISO calendars are not supported. -info: | - b. Let result be ? ParseTemporalTimeString(string). - d. If result.[[Calendar]] is not one of undefined or "iso8601", then - i. Throw a RangeError exception. -features: [Temporal] ----*/ - -const isoString = "2004-03-21T10:00:00"; - -const valid = [ - "", - "[u-ca=iso8601]", -]; - -for (const s of valid) { - const input = isoString + s; - const plainTime = Temporal.PlainTime.from(input); - assert.sameValue(plainTime.calendar.id, "iso8601"); -} - -const invalid = [ - "[u-ca=indian]", - "[u-ca=hebrew]", -]; - -for (const s of invalid) { - const input = isoString + s; - assert.throws(RangeError, () => Temporal.PlainTime.from(input)); -} diff --git a/test/built-ins/Temporal/PlainTime/from/calendar-temporal-object.js b/test/built-ins/Temporal/PlainTime/from/calendar-temporal-object.js deleted file mode 100644 index 639a79426a..0000000000 --- a/test/built-ins/Temporal/PlainTime/from/calendar-temporal-object.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (C) 2020 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: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots -info: | - sec-temporal.plaintime.from step 4: - 4. Return ? ToTemporalTime(_temporalTime_, _overflow_). - sec-temporal-totemporaltime step 3.d: - d. If _calendar_ is not *undefined*, then - i. Set _calendar_ to ? ToTemporalCalendar(_calendar_). - ii. If ? ToString(_calendar_) is not *"iso8601"*, then - 1. Throw a *RangeError* exception. - sec-temporal-totemporalcalendar step 1.a: - a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then - i. Return _temporalCalendarLike_.[[Calendar]]. -includes: [compareArray.js, temporalHelpers.js] -features: [Temporal] ----*/ - -TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => { - assert.throws(RangeError, () => Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, calendar: temporalObject })); -}); diff --git a/test/built-ins/Temporal/PlainTime/from/order-of-operations.js b/test/built-ins/Temporal/PlainTime/from/order-of-operations.js index 8c4548e920..96d1e89628 100644 --- a/test/built-ins/Temporal/PlainTime/from/order-of-operations.js +++ b/test/built-ins/Temporal/PlainTime/from/order-of-operations.js @@ -12,9 +12,6 @@ const expected = [ "get options.overflow", "get options.overflow.toString", "call options.overflow.toString", - "get fields.calendar", - "get fields.calendar.toString", - "call fields.calendar.toString", // ToTemporalTimeRecord "get fields.hour", "get fields.hour.valueOf", diff --git a/test/built-ins/Temporal/PlainTime/prototype/add/order-of-operations.js b/test/built-ins/Temporal/PlainTime/prototype/add/order-of-operations.js index c67fdba319..92409826cc 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/add/order-of-operations.js +++ b/test/built-ins/Temporal/PlainTime/prototype/add/order-of-operations.js @@ -56,5 +56,4 @@ const fields = TemporalHelpers.propertyBagObserver(actual, { }, "fields"); const result = instance.add(fields); TemporalHelpers.assertPlainTime(result, 13, 35, 57, 988, 655, 322); -assert.sameValue(result.calendar.id, "iso8601", "calendar result"); assert.compareArray(actual, expected, "order of operations"); diff --git a/test/built-ins/Temporal/PlainTime/prototype/calendar/basic.js b/test/built-ins/Temporal/PlainTime/prototype/calendar/basic.js deleted file mode 100644 index 83bd0e3f19..0000000000 --- a/test/built-ins/Temporal/PlainTime/prototype/calendar/basic.js +++ /dev/null @@ -1,13 +0,0 @@ -// 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/test/built-ins/Temporal/PlainTime/prototype/calendar/branding.js b/test/built-ins/Temporal/PlainTime/prototype/calendar/branding.js deleted file mode 100644 index ccf2de2a6c..0000000000 --- a/test/built-ins/Temporal/PlainTime/prototype/calendar/branding.js +++ /dev/null @@ -1,22 +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-get-temporal.plaintime.prototype.calendar -description: Throw a TypeError if the receiver is invalid -features: [Symbol, Temporal] ----*/ - -const calendar = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "calendar").get; - -assert.sameValue(typeof calendar, "function"); - -assert.throws(TypeError, () => calendar.call(undefined), "undefined"); -assert.throws(TypeError, () => calendar.call(null), "null"); -assert.throws(TypeError, () => calendar.call(true), "true"); -assert.throws(TypeError, () => calendar.call(""), "empty string"); -assert.throws(TypeError, () => calendar.call(Symbol()), "symbol"); -assert.throws(TypeError, () => calendar.call(1), "1"); -assert.throws(TypeError, () => calendar.call({}), "plain object"); -assert.throws(TypeError, () => calendar.call(Temporal.PlainTime), "Temporal.PlainTime"); -assert.throws(TypeError, () => calendar.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype"); diff --git a/test/built-ins/Temporal/PlainTime/prototype/calendar/prop-desc.js b/test/built-ins/Temporal/PlainTime/prototype/calendar/prop-desc.js deleted file mode 100644 index d4ffd5312e..0000000000 --- a/test/built-ins/Temporal/PlainTime/prototype/calendar/prop-desc.js +++ /dev/null @@ -1,14 +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-get-temporal.plaintime.prototype.calendar -description: The "calendar" property of Temporal.PlainTime.prototype -features: [Temporal] ----*/ - -const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "calendar"); -assert.sameValue(typeof descriptor.get, "function"); -assert.sameValue(descriptor.set, undefined); -assert.sameValue(descriptor.enumerable, false); -assert.sameValue(descriptor.configurable, true); diff --git a/test/built-ins/Temporal/PlainTime/prototype/equals/argument-string-calendar-annotation.js b/test/built-ins/Temporal/PlainTime/prototype/equals/argument-string-calendar-annotation.js index 1803cce00e..f71e86f970 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/equals/argument-string-calendar-annotation.js +++ b/test/built-ins/Temporal/PlainTime/prototype/equals/argument-string-calendar-annotation.js @@ -20,6 +20,9 @@ const tests = [ ["1970-01-01T12:34:56.987654321[UTC][u-ca=iso8601]", "with date and time zone"], ["1970-01-01T12:34:56.987654321[!u-ca=iso8601]", "with !, date, and no time zone"], ["1970-01-01T12:34:56.987654321[UTC][!u-ca=iso8601]", "with !, date, and time zone"], + ["12:34:56.987654321[u-ca=hebrew]", "calendar annotation ignored"], + ["12:34:56.987654321[u-ca=unknown]", "calendar annotation ignored even if unknown calendar"], + ["12:34:56.987654321[!u-ca=unknown]", "calendar annotation ignored even if unknown calendar with !"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][u-ca=discord]", "second annotation ignored"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][!u-ca=discord]", "second annotation ignored even with !"], ]; diff --git a/test/built-ins/Temporal/PlainTime/prototype/equals/calendar-temporal-object.js b/test/built-ins/Temporal/PlainTime/prototype/equals/calendar-temporal-object.js deleted file mode 100644 index 0234fb5444..0000000000 --- a/test/built-ins/Temporal/PlainTime/prototype/equals/calendar-temporal-object.js +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2020 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: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots -info: | - sec-temporal.plaintime.prototype.equals step 3: - 3. Set _other_ to ? ToTemporalTime(_other_). - sec-temporal-totemporaltime step 3.d: - d. If _calendar_ is not *undefined*, then - i. Set _calendar_ to ? ToTemporalCalendar(_calendar_). - ii. If ? ToString(_calendar_) is not *"iso8601"*, then - 1. Throw a *RangeError* exception. - sec-temporal-totemporalcalendar step 1.a: - a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then - i. Return _temporalCalendarLike_.[[Calendar]]. -includes: [compareArray.js, temporalHelpers.js] -features: [Temporal] ----*/ - -TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => { - const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); - assert.throws(RangeError, () => time.equals({ hour: 12, minute: 30, calendar: temporalObject })); -}); diff --git a/test/built-ins/Temporal/PlainTime/prototype/getISOFields/custom.js b/test/built-ins/Temporal/PlainTime/prototype/getISOFields/custom.js deleted file mode 100644 index cf6d41ceab..0000000000 --- a/test/built-ins/Temporal/PlainTime/prototype/getISOFields/custom.js +++ /dev/null @@ -1,21 +0,0 @@ -// 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/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-names.js b/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-names.js index df16645aa9..4ea80a535f 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-names.js +++ b/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-names.js @@ -16,4 +16,3 @@ 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/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-prop-desc.js b/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-prop-desc.js index 3d4c7a6cb5..4b81951bf4 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-prop-desc.js +++ b/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-prop-desc.js @@ -9,7 +9,6 @@ features: [Temporal] ---*/ const expected = [ - "calendar", "isoHour", "isoMicrosecond", "isoMillisecond", diff --git a/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-traversal-order.js b/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-traversal-order.js index 882bfda76e..55afd2c4d8 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-traversal-order.js +++ b/test/built-ins/Temporal/PlainTime/prototype/getISOFields/field-traversal-order.js @@ -9,7 +9,6 @@ features: [Temporal] ---*/ const expected = [ - "calendar", "isoHour", "isoMicrosecond", "isoMillisecond", diff --git a/test/built-ins/Temporal/PlainTime/prototype/since/argument-string-calendar-annotation.js b/test/built-ins/Temporal/PlainTime/prototype/since/argument-string-calendar-annotation.js index eac24b18f9..64025684aa 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/since/argument-string-calendar-annotation.js +++ b/test/built-ins/Temporal/PlainTime/prototype/since/argument-string-calendar-annotation.js @@ -21,6 +21,9 @@ const tests = [ ["1970-01-01T12:34:56.987654321[UTC][u-ca=iso8601]", "with date and time zone"], ["1970-01-01T12:34:56.987654321[!u-ca=iso8601]", "with !, date, and no time zone"], ["1970-01-01T12:34:56.987654321[UTC][!u-ca=iso8601]", "with !, date, and time zone"], + ["12:34:56.987654321[u-ca=hebrew]", "calendar annotation ignored"], + ["12:34:56.987654321[u-ca=unknown]", "calendar annotation ignored even if unknown calendar"], + ["12:34:56.987654321[!u-ca=unknown]", "calendar annotation ignored even if unknown calendar with !"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][u-ca=discord]", "second annotation ignored"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][!u-ca=discord]", "second annotation ignored even with !"], ]; diff --git a/test/built-ins/Temporal/PlainTime/prototype/since/calendar-temporal-object.js b/test/built-ins/Temporal/PlainTime/prototype/since/calendar-temporal-object.js deleted file mode 100644 index 04bf4d7492..0000000000 --- a/test/built-ins/Temporal/PlainTime/prototype/since/calendar-temporal-object.js +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2020 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: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots -info: | - sec-temporal.plaintime.prototype.since step 3: - 3. Set _other_ to ? ToTemporalTime(_other_). - sec-temporal-totemporaltime step 3.d: - d. If _calendar_ is not *undefined*, then - i. Set _calendar_ to ? ToTemporalCalendar(_calendar_). - ii. If ? ToString(_calendar_) is not *"iso8601"*, then - 1. Throw a *RangeError* exception. - sec-temporal-totemporalcalendar step 1.a: - a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then - i. Return _temporalCalendarLike_.[[Calendar]]. -includes: [compareArray.js, temporalHelpers.js] -features: [Temporal] ----*/ - -TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => { - const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); - assert.throws(RangeError, () => time.since({ hour: 12, minute: 30, calendar: temporalObject })); -}); diff --git a/test/built-ins/Temporal/PlainTime/prototype/since/order-of-operations.js b/test/built-ins/Temporal/PlainTime/prototype/since/order-of-operations.js index 3505a41660..1809cd3575 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/since/order-of-operations.js +++ b/test/built-ins/Temporal/PlainTime/prototype/since/order-of-operations.js @@ -10,9 +10,6 @@ features: [Temporal] const expected = [ // ToTemporalTime - "get other.calendar", - "get other.calendar.toString", - "call other.calendar.toString", "get other.hour", "get other.hour.valueOf", "call other.hour.valueOf", diff --git a/test/built-ins/Temporal/PlainTime/prototype/subtract/order-of-operations.js b/test/built-ins/Temporal/PlainTime/prototype/subtract/order-of-operations.js index c11a4b0258..b6727a99f3 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/subtract/order-of-operations.js +++ b/test/built-ins/Temporal/PlainTime/prototype/subtract/order-of-operations.js @@ -56,5 +56,4 @@ const fields = TemporalHelpers.propertyBagObserver(actual, { }, "fields"); const result = instance.subtract(fields); TemporalHelpers.assertPlainTime(result, 11, 33, 55, 986, 653, 320); -assert.sameValue(result.calendar.id, "iso8601", "calendar result"); assert.compareArray(actual, expected, "order of operations"); diff --git a/test/built-ins/Temporal/PlainTime/prototype/until/argument-string-calendar-annotation.js b/test/built-ins/Temporal/PlainTime/prototype/until/argument-string-calendar-annotation.js index 4d2f6c0c4c..2f518f9ea7 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/until/argument-string-calendar-annotation.js +++ b/test/built-ins/Temporal/PlainTime/prototype/until/argument-string-calendar-annotation.js @@ -21,6 +21,9 @@ const tests = [ ["1970-01-01T12:34:56.987654321[UTC][u-ca=iso8601]", "with date and time zone"], ["1970-01-01T12:34:56.987654321[!u-ca=iso8601]", "with !, date, and no time zone"], ["1970-01-01T12:34:56.987654321[UTC][!u-ca=iso8601]", "with !, date, and time zone"], + ["12:34:56.987654321[u-ca=hebrew]", "calendar annotation ignored"], + ["12:34:56.987654321[u-ca=unknown]", "calendar annotation ignored even if unknown calendar"], + ["12:34:56.987654321[!u-ca=unknown]", "calendar annotation ignored even if unknown calendar with !"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][u-ca=discord]", "second annotation ignored"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][!u-ca=discord]", "second annotation ignored even with !"], ]; diff --git a/test/built-ins/Temporal/PlainTime/prototype/until/calendar-temporal-object.js b/test/built-ins/Temporal/PlainTime/prototype/until/calendar-temporal-object.js deleted file mode 100644 index 983c110723..0000000000 --- a/test/built-ins/Temporal/PlainTime/prototype/until/calendar-temporal-object.js +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2020 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: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots -info: | - sec-temporal.plaintime.prototype.until step 3: - 3. Set _other_ to ? ToTemporalTime(_other_). - sec-temporal-totemporaltime step 3.d: - d. If _calendar_ is not *undefined*, then - i. Set _calendar_ to ? ToTemporalCalendar(_calendar_). - ii. If ? ToString(_calendar_) is not *"iso8601"*, then - 1. Throw a *RangeError* exception. - sec-temporal-totemporalcalendar step 1.a: - a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then - i. Return _temporalCalendarLike_.[[Calendar]]. -includes: [compareArray.js, temporalHelpers.js] -features: [Temporal] ----*/ - -TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => { - const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); - assert.throws(RangeError, () => time.until({ hour: 12, minute: 30, calendar: temporalObject })); -}); diff --git a/test/built-ins/Temporal/PlainTime/prototype/until/order-of-operations.js b/test/built-ins/Temporal/PlainTime/prototype/until/order-of-operations.js index 41263769a4..4c401ef288 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/until/order-of-operations.js +++ b/test/built-ins/Temporal/PlainTime/prototype/until/order-of-operations.js @@ -10,9 +10,6 @@ features: [Temporal] const expected = [ // ToTemporalTime - "get other.calendar", - "get other.calendar.toString", - "call other.calendar.toString", "get other.hour", "get other.hour.valueOf", "call other.hour.valueOf", diff --git a/test/built-ins/Temporal/PlainYearMonth/calendar-temporal-object.js b/test/built-ins/Temporal/PlainYearMonth/calendar-temporal-object.js index 65ad8ab6e6..a5ea5b5b55 100644 --- a/test/built-ins/Temporal/PlainYearMonth/calendar-temporal-object.js +++ b/test/built-ins/Temporal/PlainYearMonth/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.plainyearmonth description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/calendar-temporal-object.js b/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/calendar-temporal-object.js index 574bad04a3..5b16830075 100644 --- a/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/calendar-temporal-object.js +++ b/test/built-ins/Temporal/TimeZone/prototype/getPlainDateTimeFor/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.timezone.prototype.getplaindatetimefor description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/ZonedDateTime/calendar-temporal-object.js b/test/built-ins/Temporal/ZonedDateTime/calendar-temporal-object.js index 8e1fba5d99..a66e68fd14 100644 --- a/test/built-ins/Temporal/ZonedDateTime/calendar-temporal-object.js +++ b/test/built-ins/Temporal/ZonedDateTime/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.zoneddatetime description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/calendar-temporal-object.js b/test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/calendar-temporal-object.js index 3cd5a97176..347a4282e9 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/calendar-temporal-object.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/withCalendar/calendar-temporal-object.js @@ -6,7 +6,7 @@ esid: sec-temporal.zoneddatetime.prototype.withcalendar description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots info: | sec-temporal-totemporalcalendar step 1.b: - b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then + b. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then i. Return _temporalCalendarLike_.[[Calendar]]. includes: [compareArray.js] features: [Temporal] @@ -14,12 +14,11 @@ features: [Temporal] const plainDate = new Temporal.PlainDate(2000, 5, 2); const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321); -const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321); const plainMonthDay = new Temporal.PlainMonthDay(5, 2); const plainYearMonth = new Temporal.PlainYearMonth(2000, 5); const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); -[plainDate, plainDateTime, plainTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { +[plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((arg) => { const actual = []; const expected = []; diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-calendar-annotation.js b/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-calendar-annotation.js index f18dc778d5..b63b578cd6 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-calendar-annotation.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/argument-string-calendar-annotation.js @@ -20,6 +20,9 @@ const tests = [ ["1970-01-01T12:34:56.987654321[UTC][u-ca=iso8601]", "with date and time zone"], ["1970-01-01T12:34:56.987654321[!u-ca=iso8601]", "with !, date, and no time zone"], ["1970-01-01T12:34:56.987654321[UTC][!u-ca=iso8601]", "with !, date, and time zone"], + ["12:34:56.987654321[u-ca=hebrew]", "calendar annotation ignored"], + ["12:34:56.987654321[u-ca=unknown]", "calendar annotation ignored even if unknown calendar"], + ["12:34:56.987654321[!u-ca=unknown]", "calendar annotation ignored even if unknown calendar with !"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][u-ca=discord]", "second annotation ignored"], ["1970-01-01T12:34:56.987654321[u-ca=iso8601][!u-ca=discord]", "second annotation ignored even with !"], ]; diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/calendar-temporal-object.js b/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/calendar-temporal-object.js deleted file mode 100644 index dc5866225d..0000000000 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/calendar-temporal-object.js +++ /dev/null @@ -1,25 +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.plaindatetime.prototype.withplaintime -description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots -info: | - sec-temporal.plaindatetime.prototype.withplaintime step 4: - 3. Let _plainTime_ be ? ToTemporalTime(_plainTimeLike_). - sec-temporal-totemporaltime step 3.d: - d. If _calendar_ is not *undefined*, then - i. Set _calendar_ to ? ToTemporalCalendar(_calendar_). - ii. If ? ToString(_calendar_) is not *"iso8601"*, then - 1. Throw a *RangeError* exception. - sec-temporal-totemporalcalendar step 1.a: - a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then - i. Return _temporalCalendarLike_.[[Calendar]]. -includes: [compareArray.js, temporalHelpers.js] -features: [Temporal] ----*/ - -TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => { - const datetime = new Temporal.PlainDateTime(2000, 5, 3, 13, 3, 27, 123, 456, 789); - assert.throws(RangeError, () => datetime.withPlainTime({ hour: 12, minute: 30, calendar: temporalObject })); -});