Skip to content

Commit 4db15c4

Browse files
ptomatojustingrant
authored andcommitted
Normative: Reject relativeTo string such as "2022-08-18T17:01Z"
`relativeTo` strings must be either valid as PlainDate strings or as ZonedDateTime strings. A string with a Z but no bracketed time zone annotation is neither. We probably missed this when forbidding Z designators for Plain types, so it was an oversight. UPSTREAM_COMMIT=2dc20bf69065c17631347f8b7e48cae651ae8a38
1 parent fec683e commit 4db15c4

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

lib/ecmascript.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,6 +1134,10 @@ export function ToRelativeTemporalObject(options: {
11341134
offsetBehaviour = 'wall';
11351135
}
11361136
matchMinutes = true;
1137+
} else if (z) {
1138+
throw new RangeError(
1139+
'Z designator not supported for PlainDate relativeTo; either remove the Z or add a bracketed time zone'
1140+
);
11371141
}
11381142
if (!calendar) calendar = GetISO8601Calendar();
11391143
calendar = ToTemporalCalendar(calendar);

test/expected-failures-todo-migrated-code.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,28 +153,24 @@ built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-calendar-fields
153153
built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-calendar-wrong-type.js
154154
built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-timezone-instance-does-not-get-timeZone-property.js
155155
built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-timezone-wrong-type.js
156-
built-ins/Temporal/Duration/prototype/add/relativeto-string-datetime.js
157156
built-ins/Temporal/Duration/prototype/round/nanoseconds-to-days-loop-indefinitely-2.js
158157
built-ins/Temporal/Duration/prototype/round/order-of-operations.js
159158
built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-calendar-fields-undefined.js
160159
built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-calendar-wrong-type.js
161160
built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-timezone-instance-does-not-get-timeZone-property.js
162161
built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-timezone-wrong-type.js
163-
built-ins/Temporal/Duration/prototype/round/relativeto-string-datetime.js
164162
built-ins/Temporal/Duration/prototype/subtract/order-of-operations.js
165163
built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-calendar-fields-undefined.js
166164
built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-calendar-wrong-type.js
167165
built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-timezone-instance-does-not-get-timeZone-property.js
168166
built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-timezone-wrong-type.js
169-
built-ins/Temporal/Duration/prototype/subtract/relativeto-string-datetime.js
170167
built-ins/Temporal/Duration/prototype/toString/fractionalseconddigits-non-integer.js
171168
built-ins/Temporal/Duration/prototype/toString/order-of-operations.js
172169
built-ins/Temporal/Duration/prototype/total/order-of-operations.js
173170
built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-calendar-fields-undefined.js
174171
built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-calendar-wrong-type.js
175172
built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-timezone-instance-does-not-get-timeZone-property.js
176173
built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-timezone-wrong-type.js
177-
built-ins/Temporal/Duration/prototype/total/relativeto-string-datetime.js
178174
built-ins/Temporal/Instant/compare/argument-string-calendar-annotation.js
179175
built-ins/Temporal/Instant/compare/argument-string-date-with-utc-offset.js
180176
built-ins/Temporal/Instant/compare/argument-string-time-zone-annotation.js

0 commit comments

Comments
 (0)