diff --git a/test/built-ins/Temporal/Duration/compare/order-of-operations.js b/test/built-ins/Temporal/Duration/compare/order-of-operations.js index 4af2518bbd..b760ae7f11 100644 --- a/test/built-ins/Temporal/Duration/compare/order-of-operations.js +++ b/test/built-ins/Temporal/Duration/compare/order-of-operations.js @@ -191,6 +191,9 @@ const expectedOpsForZonedRelativeTo = expected.concat([ "call options.relativeTo.year.valueOf", "get options.relativeTo.calendar.dateFromFields", "call options.relativeTo.calendar.dateFromFields", + "has options.relativeTo.timeZone.getOffsetNanosecondsFor", + "has options.relativeTo.timeZone.getPossibleInstantsFor", + "has options.relativeTo.timeZone.id", "get options.relativeTo.timeZone.getPossibleInstantsFor", "call options.relativeTo.timeZone.getPossibleInstantsFor", "get options.relativeTo.timeZone.getOffsetNanosecondsFor", diff --git a/test/built-ins/Temporal/Duration/compare/relativeto-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/Duration/compare/relativeto-propertybag-timezone-wrong-type.js index ccb8c1847e..b37aa4e60a 100644 --- a/test/built-ins/Temporal/Duration/compare/relativeto-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/Duration/compare/relativeto-propertybag-timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Duration/prototype/add/order-of-operations.js b/test/built-ins/Temporal/Duration/prototype/add/order-of-operations.js index a872a36cac..e07bc7347e 100644 --- a/test/built-ins/Temporal/Duration/prototype/add/order-of-operations.js +++ b/test/built-ins/Temporal/Duration/prototype/add/order-of-operations.js @@ -175,6 +175,10 @@ const expectedOpsForZonedRelativeTo = expected.concat([ // InterpretTemporalDateTimeFields "get options.relativeTo.calendar.dateFromFields", "call options.relativeTo.calendar.dateFromFields", + // ToRelativeTemporalObject again + "has options.relativeTo.timeZone.getOffsetNanosecondsFor", + "has options.relativeTo.timeZone.getPossibleInstantsFor", + "has options.relativeTo.timeZone.id", // InterpretISODateTimeOffset "get options.relativeTo.timeZone.getPossibleInstantsFor", "call options.relativeTo.timeZone.getPossibleInstantsFor", diff --git a/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-timezone-wrong-type.js index f77a416dc2..3b33c57850 100644 --- a/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Duration/prototype/round/order-of-operations.js b/test/built-ins/Temporal/Duration/prototype/round/order-of-operations.js index 7f427c372a..02055c0870 100644 --- a/test/built-ins/Temporal/Duration/prototype/round/order-of-operations.js +++ b/test/built-ins/Temporal/Duration/prototype/round/order-of-operations.js @@ -268,6 +268,9 @@ const expectedOpsForZonedRelativeTo = [ "call options.relativeTo.year.valueOf", "get options.relativeTo.calendar.dateFromFields", "call options.relativeTo.calendar.dateFromFields", + "has options.relativeTo.timeZone.getOffsetNanosecondsFor", + "has options.relativeTo.timeZone.getPossibleInstantsFor", + "has options.relativeTo.timeZone.id", // InterpretISODateTimeOffset "get options.relativeTo.timeZone.getPossibleInstantsFor", "call options.relativeTo.timeZone.getPossibleInstantsFor", diff --git a/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-timezone-wrong-type.js index 5618349ad6..8c05571961 100644 --- a/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Duration/prototype/subtract/order-of-operations.js b/test/built-ins/Temporal/Duration/prototype/subtract/order-of-operations.js index 42ec072712..8d96ee6a20 100644 --- a/test/built-ins/Temporal/Duration/prototype/subtract/order-of-operations.js +++ b/test/built-ins/Temporal/Duration/prototype/subtract/order-of-operations.js @@ -175,6 +175,10 @@ const expectedOpsForZonedRelativeTo = expected.concat([ // InterpretTemporalDateTimeFields "get options.relativeTo.calendar.dateFromFields", "call options.relativeTo.calendar.dateFromFields", + // ToRelativeTemporalObject again + "has options.relativeTo.timeZone.getOffsetNanosecondsFor", + "has options.relativeTo.timeZone.getPossibleInstantsFor", + "has options.relativeTo.timeZone.id", // InterpretISODateTimeOffset "get options.relativeTo.timeZone.getPossibleInstantsFor", "call options.relativeTo.timeZone.getPossibleInstantsFor", diff --git a/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-timezone-wrong-type.js index 0d92e89035..61ad351a60 100644 --- a/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Duration/prototype/total/order-of-operations.js b/test/built-ins/Temporal/Duration/prototype/total/order-of-operations.js index f6420b37d0..57196df4fc 100644 --- a/test/built-ins/Temporal/Duration/prototype/total/order-of-operations.js +++ b/test/built-ins/Temporal/Duration/prototype/total/order-of-operations.js @@ -181,6 +181,9 @@ const expectedOpsForZonedRelativeTo = [ "call options.relativeTo.year.valueOf", "get options.relativeTo.calendar.dateFromFields", "call options.relativeTo.calendar.dateFromFields", + "has options.relativeTo.timeZone.getOffsetNanosecondsFor", + "has options.relativeTo.timeZone.getPossibleInstantsFor", + "has options.relativeTo.timeZone.id", // InterpretISODateTimeOffset "get options.relativeTo.timeZone.getPossibleInstantsFor", "call options.relativeTo.timeZone.getPossibleInstantsFor", diff --git a/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-timezone-wrong-type.js index e75f3141ad..b19bec2af7 100644 --- a/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Instant/prototype/toString/order-of-operations.js b/test/built-ins/Temporal/Instant/prototype/toString/order-of-operations.js index 4f55140708..0c4e27bc03 100644 --- a/test/built-ins/Temporal/Instant/prototype/toString/order-of-operations.js +++ b/test/built-ins/Temporal/Instant/prototype/toString/order-of-operations.js @@ -19,6 +19,9 @@ const expected = [ "get options.smallestUnit.toString", "call options.smallestUnit.toString", "get options.timeZone", + "has options.timeZone.getOffsetNanosecondsFor", + "has options.timeZone.getPossibleInstantsFor", + "has options.timeZone.id", "get options.timeZone.getOffsetNanosecondsFor", "call options.timeZone.getOffsetNanosecondsFor", "get options.timeZone.getOffsetNanosecondsFor", diff --git a/test/built-ins/Temporal/Instant/prototype/toString/timezone-wrong-type.js b/test/built-ins/Temporal/Instant/prototype/toString/timezone-wrong-type.js index 7904ef0a19..7ca0cc0a2d 100644 --- a/test/built-ins/Temporal/Instant/prototype/toString/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Instant/prototype/toString/timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Instant/prototype/toString/timezone.js b/test/built-ins/Temporal/Instant/prototype/toString/timezone.js index 19eac92a8f..3a57354165 100644 --- a/test/built-ins/Temporal/Instant/prototype/toString/timezone.js +++ b/test/built-ins/Temporal/Instant/prototype/toString/timezone.js @@ -10,6 +10,9 @@ features: [Temporal] const actual = []; const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", "get timeZone.getOffsetNanosecondsFor", "call timeZone.getOffsetNanosecondsFor", "get timeZone.getOffsetNanosecondsFor", diff --git a/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/plain-custom-timezone.js b/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/plain-custom-timezone.js index 86901d3324..6e5b788922 100644 --- a/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/plain-custom-timezone.js +++ b/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/plain-custom-timezone.js @@ -9,6 +9,11 @@ features: [Temporal] ---*/ const actual = []; +const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", +]; const instant = Temporal.Instant.from("1975-02-02T14:25:36.123456789Z"); const calendar = Temporal.Calendar.from("iso8601"); @@ -19,4 +24,4 @@ const timeZone = TemporalHelpers.timeZoneObserver(actual, "timeZone", { const result = instant.toZonedDateTime({ timeZone, calendar }); assert.sameValue(result.epochNanoseconds, instant.epochNanoseconds); -assert.compareArray(actual, []); +assert.compareArray(actual, expected); diff --git a/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/timezone-wrong-type.js b/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/timezone-wrong-type.js index 2fe2877930..0b3dd555e8 100644 --- a/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Instant/prototype/toZonedDateTime/timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/timezone-wrong-type.js b/test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/timezone-wrong-type.js index 15c4814d87..7f09d939a8 100644 --- a/test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Instant/prototype/toZonedDateTimeISO/timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Now/plainDate/timezone-wrong-type.js b/test/built-ins/Temporal/Now/plainDate/timezone-wrong-type.js index 8bf7bd9ee8..18ec9b628e 100644 --- a/test/built-ins/Temporal/Now/plainDate/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Now/plainDate/timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Now/plainDate/toPlainDate-override.js b/test/built-ins/Temporal/Now/plainDate/toPlainDate-override.js index 552cf1d21c..aa9a3ae32a 100644 --- a/test/built-ins/Temporal/Now/plainDate/toPlainDate-override.js +++ b/test/built-ins/Temporal/Now/plainDate/toPlainDate-override.js @@ -10,6 +10,9 @@ features: [Temporal] const actual = []; const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", "get timeZone.getOffsetNanosecondsFor", "call timeZone.getOffsetNanosecondsFor", ]; diff --git a/test/built-ins/Temporal/Now/plainDateISO/timezone-wrong-type.js b/test/built-ins/Temporal/Now/plainDateISO/timezone-wrong-type.js index 89c7a3ab5b..1478b5303a 100644 --- a/test/built-ins/Temporal/Now/plainDateISO/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Now/plainDateISO/timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Now/plainDateTime/calendar-function.js b/test/built-ins/Temporal/Now/plainDateTime/calendar-function.js index 8596750bcd..1b668fc535 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/calendar-function.js +++ b/test/built-ins/Temporal/Now/plainDateTime/calendar-function.js @@ -9,6 +9,9 @@ features: [BigInt, Proxy, Temporal] const actual = []; const expected = [ + 'has timeZone.getOffsetNanosecondsFor', + 'has timeZone.getPossibleInstantsFor', + 'has timeZone.id', 'get timeZone.getOffsetNanosecondsFor', 'call timeZone.getOffsetNanosecondsFor' ]; diff --git a/test/built-ins/Temporal/Now/plainDateTime/return-value.js b/test/built-ins/Temporal/Now/plainDateTime/return-value.js index 8ae9424be1..3ec75b7f23 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/return-value.js +++ b/test/built-ins/Temporal/Now/plainDateTime/return-value.js @@ -8,6 +8,8 @@ features: [BigInt, Temporal] const calendar = Temporal.Calendar.from('iso8601'); const timeZone = { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, getOffsetNanosecondsFor(instant) { return -Number(instant.epochNanoseconds % 86400000000000n); } diff --git a/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-invocation.js b/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-invocation.js index 5a24b0271d..8e0266a54a 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-invocation.js +++ b/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-invocation.js @@ -8,6 +8,8 @@ features: [Temporal] var calls = []; var timeZone = { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, getOffsetNanosecondsFor: function() { calls.push({ args: arguments, diff --git a/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-not-a-number.js b/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-not-a-number.js index 628bdea933..e8755f386f 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-not-a-number.js +++ b/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-not-a-number.js @@ -21,7 +21,9 @@ for (const dateTime of invalidValues) { let callCount = 0; const timeZone = { - getOffsetNanosecondsFor(instant, calendar) { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, + getOffsetNanosecondsFor() { callCount += 1; return dateTime; } diff --git a/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-poisoned.js b/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-poisoned.js index e46cecbf14..a8649a046a 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-poisoned.js +++ b/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-poisoned.js @@ -7,6 +7,8 @@ features: [Temporal] ---*/ var timeZone = { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, get getOffsetNanosecondsFor() { throw new Test262Error(); } diff --git a/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-throws.js b/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-throws.js index 3af6f00c4a..12ed043c9c 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-throws.js +++ b/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-throws.js @@ -7,6 +7,8 @@ features: [Temporal] ---*/ var timeZone = { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, getOffsetNanosecondsFor() { throw new Test262Error(); } diff --git a/test/built-ins/Temporal/Now/plainDateTime/timezone-object.js b/test/built-ins/Temporal/Now/plainDateTime/timezone-object.js index f5d33421d1..ea8a25e32b 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/timezone-object.js +++ b/test/built-ins/Temporal/Now/plainDateTime/timezone-object.js @@ -9,6 +9,9 @@ features: [BigInt, Proxy, Temporal] const actual = []; const expected = [ + 'has timeZone.getOffsetNanosecondsFor', + 'has timeZone.getPossibleInstantsFor', + 'has timeZone.id', 'get timeZone.getOffsetNanosecondsFor', 'call timeZone.getOffsetNanosecondsFor' ]; diff --git a/test/built-ins/Temporal/Now/plainDateTime/timezone-wrong-type.js b/test/built-ins/Temporal/Now/plainDateTime/timezone-wrong-type.js index 76bbc2a0e2..d68dc04aa0 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Now/plainDateTime/timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Now/plainDateTime/timezone.js b/test/built-ins/Temporal/Now/plainDateTime/timezone.js index 1d1d8c9558..bb176e6892 100644 --- a/test/built-ins/Temporal/Now/plainDateTime/timezone.js +++ b/test/built-ins/Temporal/Now/plainDateTime/timezone.js @@ -10,6 +10,9 @@ features: [Temporal] const actual = []; const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", "get timeZone.getOffsetNanosecondsFor", "call timeZone.getOffsetNanosecondsFor", ]; diff --git a/test/built-ins/Temporal/Now/plainDateTimeISO/return-value.js b/test/built-ins/Temporal/Now/plainDateTimeISO/return-value.js index c0de72cb6d..f1f31f2bb9 100644 --- a/test/built-ins/Temporal/Now/plainDateTimeISO/return-value.js +++ b/test/built-ins/Temporal/Now/plainDateTimeISO/return-value.js @@ -6,6 +6,8 @@ description: Return value describes the start of a day features: [BigInt, Temporal] ---*/ const timeZone = { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, getOffsetNanosecondsFor(instant) { return -Number(instant.epochNanoseconds % 86400000000000n); } diff --git a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-invocation.js b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-invocation.js index 4cf8cd2011..03f3bd666e 100644 --- a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-invocation.js +++ b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-invocation.js @@ -8,6 +8,8 @@ features: [Temporal] var calls = []; var timeZone = { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, getOffsetNanosecondsFor: function() { calls.push({ args: arguments, diff --git a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-not-a-number.js b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-not-a-number.js index 57f5304812..4fd510ca60 100644 --- a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-not-a-number.js +++ b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-not-a-number.js @@ -21,6 +21,8 @@ for (const dateTime of invalidValues) { let callCount = 0; const timeZone = { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, getOffsetNanosecondsFor(instant, calendar) { callCount += 1; return dateTime; diff --git a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-poisoned.js b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-poisoned.js index 822e6a6b6d..e1d4a73506 100644 --- a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-poisoned.js +++ b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-poisoned.js @@ -7,6 +7,8 @@ features: [Temporal] ---*/ var timeZone = { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, get getOffsetNanosecondsFor() { throw new Test262Error(); } diff --git a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-throws.js b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-throws.js index 2c87fdf471..21b92652a6 100644 --- a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-throws.js +++ b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-throws.js @@ -7,6 +7,8 @@ features: [Temporal] ---*/ var timeZone = { + id: 'Etc/Test', + getPossibleInstantsFor() { return []; }, getOffsetNanosecondsFor() { throw new Test262Error(); } diff --git a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-object.js b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-object.js index 54cb16c241..329207447e 100644 --- a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-object.js +++ b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-object.js @@ -9,6 +9,9 @@ features: [BigInt, Proxy, Temporal] const actual = []; const expected = [ + 'has timeZone.getOffsetNanosecondsFor', + 'has timeZone.getPossibleInstantsFor', + 'has timeZone.id', 'get timeZone.getOffsetNanosecondsFor', 'call timeZone.getOffsetNanosecondsFor' ]; diff --git a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-wrong-type.js b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-wrong-type.js index e44908ec8d..5fde195e2a 100644 --- a/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Now/plainDateTimeISO/timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Now/plainTimeISO/timezone-wrong-type.js b/test/built-ins/Temporal/Now/plainTimeISO/timezone-wrong-type.js index ef1b7149e0..09be7bb696 100644 --- a/test/built-ins/Temporal/Now/plainTimeISO/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Now/plainTimeISO/timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Now/plainTimeISO/timezone.js b/test/built-ins/Temporal/Now/plainTimeISO/timezone.js index 75cf03f9b1..afdbe41bd8 100644 --- a/test/built-ins/Temporal/Now/plainTimeISO/timezone.js +++ b/test/built-ins/Temporal/Now/plainTimeISO/timezone.js @@ -10,6 +10,9 @@ features: [Temporal] const actual = []; const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", "get timeZone.getOffsetNanosecondsFor", "call timeZone.getOffsetNanosecondsFor", ]; diff --git a/test/built-ins/Temporal/Now/plainTimeISO/toPlainTime-override.js b/test/built-ins/Temporal/Now/plainTimeISO/toPlainTime-override.js index c93449e765..7411562060 100644 --- a/test/built-ins/Temporal/Now/plainTimeISO/toPlainTime-override.js +++ b/test/built-ins/Temporal/Now/plainTimeISO/toPlainTime-override.js @@ -10,6 +10,9 @@ features: [Temporal] const actual = []; const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", "get timeZone.getOffsetNanosecondsFor", "call timeZone.getOffsetNanosecondsFor", ]; diff --git a/test/built-ins/Temporal/Now/zonedDateTime/calendar-function.js b/test/built-ins/Temporal/Now/zonedDateTime/calendar-function.js index 10632cd37e..ce0ce37aee 100644 --- a/test/built-ins/Temporal/Now/zonedDateTime/calendar-function.js +++ b/test/built-ins/Temporal/Now/zonedDateTime/calendar-function.js @@ -7,6 +7,11 @@ includes: [compareArray.js, temporalHelpers.js] features: [BigInt, Proxy, Temporal] ---*/ const actual = []; +const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", +]; const calendar = function() {}; @@ -25,7 +30,7 @@ Object.defineProperty(Temporal.Calendar, 'from', { const result = Temporal.Now.zonedDateTime(calendar, timeZone); -assert.compareArray(actual, [], 'no observable operations should be invoked'); +assert.compareArray(actual, expected, 'order of observable operations'); for (const property of ['hour', 'minute', 'second', 'millisecond', 'microsecond', 'nanosecond']) { assert.sameValue(result[property], 0, 'The value of result[property] is expected to be 0'); diff --git a/test/built-ins/Temporal/Now/zonedDateTime/timezone-object.js b/test/built-ins/Temporal/Now/zonedDateTime/timezone-object.js index 3bbb2d30e8..f6f9631b55 100644 --- a/test/built-ins/Temporal/Now/zonedDateTime/timezone-object.js +++ b/test/built-ins/Temporal/Now/zonedDateTime/timezone-object.js @@ -7,6 +7,11 @@ includes: [compareArray.js, temporalHelpers.js] features: [BigInt, Proxy, Temporal] ---*/ const actual = []; +const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", +]; const timeZone = TemporalHelpers.timeZoneObserver(actual, "timeZone", { getOffsetNanosecondsFor(instant) { @@ -28,4 +33,4 @@ Object.defineProperty(Temporal.TimeZone, 'from', { }); Temporal.Now.zonedDateTime('iso8601', timeZone); -assert.compareArray(actual, [], 'no observable operations should be invoked'); +assert.compareArray(actual, expected, 'order of observable operations'); diff --git a/test/built-ins/Temporal/Now/zonedDateTime/timezone-wrong-type.js b/test/built-ins/Temporal/Now/zonedDateTime/timezone-wrong-type.js index 976ba27c80..12fd8c4204 100644 --- a/test/built-ins/Temporal/Now/zonedDateTime/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Now/zonedDateTime/timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-object.js b/test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-object.js index bcb8472dc2..36be882fbf 100644 --- a/test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-object.js +++ b/test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-object.js @@ -7,6 +7,11 @@ includes: [compareArray.js, temporalHelpers.js] features: [BigInt, Proxy, Temporal] ---*/ const actual = []; +const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", +]; const timeZone = TemporalHelpers.timeZoneObserver(actual, "timeZone", { getOffsetNanosecondsFor(instant) { @@ -28,4 +33,4 @@ Object.defineProperty(Temporal.TimeZone, 'from', { }); Temporal.Now.zonedDateTimeISO(timeZone); -assert.compareArray(actual, [], 'no observable operations should be invoked'); +assert.compareArray(actual, expected, 'order of observable operations'); diff --git a/test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-wrong-type.js b/test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-wrong-type.js index 3c3b4023a0..5b75622ed1 100644 --- a/test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-wrong-type.js +++ b/test/built-ins/Temporal/Now/zonedDateTimeISO/timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-wrong-type.js b/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-wrong-type.js index 95d2789f50..a54d302728 100644 --- a/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-wrong-type.js +++ b/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/order-of-operations.js b/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/order-of-operations.js index e47e3a7c98..813aaaac68 100644 --- a/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/order-of-operations.js +++ b/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/order-of-operations.js @@ -9,6 +9,10 @@ features: [Temporal] ---*/ const expected = [ + // ToTemporalTimeZoneSlotValue + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", // ToTemporalDisambiguation "get options.disambiguation", "get options.disambiguation.toString", diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/plain-custom-timezone.js b/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/plain-custom-timezone.js index 4b3b66a03b..77e507cbfd 100644 --- a/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/plain-custom-timezone.js +++ b/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/plain-custom-timezone.js @@ -10,6 +10,9 @@ features: [Temporal] const actual = []; const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", "get options.disambiguation", "get options.disambiguation.toString", "call options.disambiguation.toString", diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/timezone-wrong-type.js b/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/timezone-wrong-type.js index 44cd279070..4538ced085 100644 --- a/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/timezone-wrong-type.js +++ b/test/built-ins/Temporal/PlainDateTime/prototype/toZonedDateTime/timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-wrong-type.js b/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-wrong-type.js index cbc3124db6..7aa204395e 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-wrong-type.js +++ b/test/built-ins/Temporal/PlainTime/prototype/toZonedDateTime/timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/TimeZone/from/argument-object.js b/test/built-ins/Temporal/TimeZone/from/argument-object.js index 48ff3d1a9e..31d443ba3a 100644 --- a/test/built-ins/Temporal/TimeZone/from/argument-object.js +++ b/test/built-ins/Temporal/TimeZone/from/argument-object.js @@ -12,9 +12,7 @@ class CustomTimeZone extends Temporal.TimeZone {} const objects = [ new Temporal.TimeZone("UTC"), new CustomTimeZone("UTC"), - {}, - { getPlainDateTimeFor: null }, - { id: "Etc/Custom" }, + { id: "Etc/Custom", getPossibleInstantsFor: null, getOffsetNanosecondsFor: null }, ]; const thisValues = [ diff --git a/test/built-ins/Temporal/TimeZone/from/timezone-wrong-type.js b/test/built-ins/Temporal/TimeZone/from/timezone-wrong-type.js index 172320b9bb..ac74b54f7f 100644 --- a/test/built-ins/Temporal/TimeZone/from/timezone-wrong-type.js +++ b/test/built-ins/Temporal/TimeZone/from/timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-timezone-wrong-type.js index 2b354dcbd8..12ae11172c 100644 --- a/test/built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -28,6 +27,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/ZonedDateTime/compare/order-of-operations.js b/test/built-ins/Temporal/ZonedDateTime/compare/order-of-operations.js index aa38edc774..209b732b31 100644 --- a/test/built-ins/Temporal/ZonedDateTime/compare/order-of-operations.js +++ b/test/built-ins/Temporal/ZonedDateTime/compare/order-of-operations.js @@ -47,6 +47,9 @@ const expected = [ "get one.year", "get one.year.valueOf", "call one.year.valueOf", + "has one.timeZone.getOffsetNanosecondsFor", + "has one.timeZone.getPossibleInstantsFor", + "has one.timeZone.id", // InterpretTemporalDateTimeFields "get one.calendar.dateFromFields", "call one.calendar.dateFromFields", @@ -94,6 +97,9 @@ const expected = [ "get two.year", "get two.year.valueOf", "call two.year.valueOf", + "has two.timeZone.getOffsetNanosecondsFor", + "has two.timeZone.getPossibleInstantsFor", + "has two.timeZone.id", // InterpretTemporalDateTimeFields "get two.calendar.dateFromFields", "call two.calendar.dateFromFields", diff --git a/test/built-ins/Temporal/ZonedDateTime/from/argument-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/ZonedDateTime/from/argument-propertybag-timezone-wrong-type.js index 81d4d21d7d..d4e814ebbe 100644 --- a/test/built-ins/Temporal/ZonedDateTime/from/argument-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/ZonedDateTime/from/argument-propertybag-timezone-wrong-type.js @@ -16,7 +16,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -25,6 +24,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/ZonedDateTime/from/order-of-operations.js b/test/built-ins/Temporal/ZonedDateTime/from/order-of-operations.js index da43817c08..7881e8098f 100644 --- a/test/built-ins/Temporal/ZonedDateTime/from/order-of-operations.js +++ b/test/built-ins/Temporal/ZonedDateTime/from/order-of-operations.js @@ -47,6 +47,9 @@ const expected = [ "get item.year", "get item.year.valueOf", "call item.year.valueOf", + "has item.timeZone.getOffsetNanosecondsFor", + "has item.timeZone.getPossibleInstantsFor", + "has item.timeZone.id", // InterpretTemporalDateTimeFields "get options.disambiguation", "get options.disambiguation.toString", diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-propertybag-timezone-wrong-type.js index 284a2f3ac2..2f5480eea3 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/equals/argument-propertybag-timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/equals/order-of-operations.js b/test/built-ins/Temporal/ZonedDateTime/prototype/equals/order-of-operations.js index ff90d04f7a..a39fa96637 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/equals/order-of-operations.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/equals/order-of-operations.js @@ -47,6 +47,9 @@ const expected = [ "get other.year", "get other.year.valueOf", "call other.year.valueOf", + "has other.timeZone.getOffsetNanosecondsFor", + "has other.timeZone.getPossibleInstantsFor", + "has other.timeZone.id", // InterpretTemporalDateTimeFields "get other.calendar.dateFromFields", "call other.calendar.dateFromFields", diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-timezone-wrong-type.js index 4024447a63..4535b54017 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/since/argument-propertybag-timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/since/order-of-operations.js b/test/built-ins/Temporal/ZonedDateTime/prototype/since/order-of-operations.js index 3221ea3547..4e21060db1 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/since/order-of-operations.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/since/order-of-operations.js @@ -47,6 +47,9 @@ const expected = [ "get other.year", "get other.year.valueOf", "call other.year.valueOf", + "has other.timeZone.getOffsetNanosecondsFor", + "has other.timeZone.getPossibleInstantsFor", + "has other.timeZone.id", "get other.calendar.dateFromFields", "call other.calendar.dateFromFields", "get other.timeZone.getPossibleInstantsFor", diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/toPlainDateTime/plain-custom-timezone.js b/test/built-ins/Temporal/ZonedDateTime/prototype/toPlainDateTime/plain-custom-timezone.js index a20429d86c..1ec1b9a739 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/toPlainDateTime/plain-custom-timezone.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/toPlainDateTime/plain-custom-timezone.js @@ -10,6 +10,9 @@ features: [Temporal] const actual = []; const expected = [ + "has timeZone.getOffsetNanosecondsFor", + "has timeZone.getPossibleInstantsFor", + "has timeZone.id", "get timeZone.getOffsetNanosecondsFor", "call timeZone.getOffsetNanosecondsFor", ]; diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-auto.js b/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-auto.js index bdde75152f..46f1b57c3b 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-auto.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-auto.js @@ -12,6 +12,7 @@ const tests = [ ["+01:00", "1970-01-01T02:01:01.987654321+01:00[+01:00]", "built-in offset"], [{ getOffsetNanosecondsFor() { return 0; }, + getPossibleInstantsFor() { return []; }, id: "Etc/Custom", }, "1970-01-01T01:01:01.987654321+00:00[Etc/Custom]", "custom"], ]; diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-critical.js b/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-critical.js index e7b79c94ff..b20ebe5d7a 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-critical.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-critical.js @@ -14,6 +14,7 @@ const tests = [ ["+01:00", "1970-01-01T02:01:01.987654321+01:00[!+01:00]", "built-in offset"], [{ getOffsetNanosecondsFor() { return 0; }, + getPossibleInstantsFor() { return []; }, id: "Etc/Custom", }, "1970-01-01T01:01:01.987654321+00:00[!Etc/Custom]", "custom"], ]; diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-never.js b/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-never.js index 632dff2ccb..5f87ca06bb 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-never.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/toString/timezonename-never.js @@ -12,7 +12,8 @@ const tests = [ ["+01:00", "1970-01-01T02:01:01.987654321+01:00", "built-in offset"], [{ getOffsetNanosecondsFor() { return 0; }, - toString() { return "Etc/Custom"; }, + getPossibleInstantsFor() { return []; }, + id: "Etc/Custom", }, "1970-01-01T01:01:01.987654321+00:00", "custom"], ]; diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-timezone-wrong-type.js b/test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-timezone-wrong-type.js index 073c937a85..9f3dcd5041 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-timezone-wrong-type.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/until/argument-propertybag-timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/until/order-of-operations.js b/test/built-ins/Temporal/ZonedDateTime/prototype/until/order-of-operations.js index 10a4038f3b..a64ddd12eb 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/until/order-of-operations.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/until/order-of-operations.js @@ -47,6 +47,9 @@ const expected = [ "get other.year", "get other.year.valueOf", "call other.year.valueOf", + "has other.timeZone.getOffsetNanosecondsFor", + "has other.timeZone.getPossibleInstantsFor", + "has other.timeZone.id", "get other.calendar.dateFromFields", "call other.calendar.dateFromFields", "get other.timeZone.getPossibleInstantsFor", diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-not-callable.js b/test/built-ins/Temporal/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-not-callable.js index 18412e810e..bd2f5c3799 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-not-callable.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-not-callable.js @@ -18,6 +18,7 @@ features: [BigInt, Symbol, Temporal, arrow-function] ); const badTimeZone = { + id: "Etc/Bad", getPossibleInstantsFor() { return []; }, getOffsetNanosecondsFor: notCallable, }; diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/timezone-wrong-type.js b/test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/timezone-wrong-type.js index 4615fba3ef..96fee6b2cf 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/timezone-wrong-type.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/withTimeZone/timezone-wrong-type.js @@ -18,7 +18,6 @@ const rangeErrorTests = [ [1, "number that doesn't convert to a valid ISO string"], [19761118, "number that would convert to a valid ISO string in other contexts"], [1n, "bigint"], - [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of rangeErrorTests) { @@ -27,6 +26,8 @@ for (const [timeZone, description] of rangeErrorTests) { const typeErrorTests = [ [Symbol(), "symbol"], + [{}, "object not implementing time zone protocol"], + [new Temporal.Calendar("iso8601"), "calendar instance"], ]; for (const [timeZone, description] of typeErrorTests) { diff --git a/test/staging/Temporal/ZonedDateTime/old/construction-and-properties.js b/test/staging/Temporal/ZonedDateTime/old/construction-and-properties.js index 5a78498594..63e5216902 100644 --- a/test/staging/Temporal/ZonedDateTime/old/construction-and-properties.js +++ b/test/staging/Temporal/ZonedDateTime/old/construction-and-properties.js @@ -70,6 +70,7 @@ var fakeGregorian = { }; var fakeVienna = { getOffsetNanosecondsFor() { return 3600_000_000_000; }, + getPossibleInstantsFor(datetime) { return [datetime.toZonedDateTime("+01:00").toInstant()]; }, id: "Europe/Vienna", } var zdt = new Temporal.ZonedDateTime(epochNanos, fakeVienna, fakeGregorian); diff --git a/test/staging/Temporal/ZonedDateTime/old/equals.js b/test/staging/Temporal/ZonedDateTime/old/equals.js index 8715af737c..46c85290d1 100644 --- a/test/staging/Temporal/ZonedDateTime/old/equals.js +++ b/test/staging/Temporal/ZonedDateTime/old/equals.js @@ -8,6 +8,7 @@ features: [Temporal] ---*/ var tz = { + getOffsetNanosecondsFor() { return -5 * 3600_000_000_000; }, getPossibleInstantsFor(pdt) { return Temporal.TimeZone.from("-05:00").getPossibleInstantsFor(pdt); }, id: "America/New_York", };