diff --git a/polyfill/test/instant.mjs b/polyfill/test/instant.mjs index 43dba6e171..5c1b02779e 100644 --- a/polyfill/test/instant.mjs +++ b/polyfill/test/instant.mjs @@ -912,6 +912,8 @@ describe('Instant', () => { throws(() => Instant.from('+275760-09-13T00:00:00.000000001Z'), RangeError); equal(`${Instant.from('-271821-04-20T00:00Z')}`, '-271821-04-20T00:00:00Z'); equal(`${Instant.from('+275760-09-13T00:00Z')}`, '+275760-09-13T00:00:00Z'); + throws(() => Instant.from('-271821-04-20T00:00:00+00:01'), RangeError); + throws(() => Instant.from('+275760-09-13T00:00:00-00:01'), RangeError); }); it('converting from DateTime', () => { const min = Temporal.PlainDateTime.from('-271821-04-19T00:00:00.000000001'); diff --git a/spec/instant.html b/spec/instant.html index 9f7b8648d0..c8b18e14e5 100644 --- a/spec/instant.html +++ b/spec/instant.html @@ -546,7 +546,10 @@

ParseTemporalInstant ( _isoString_ )

1. If _utc_ < −8.64 × 1021 or _utc_ > 8.64 × 1021, then 1. Throw a *RangeError* exception. 1. Let _offsetNanoseconds_ be ? ParseTimeZoneOffsetString(_offsetString_). - 1. Return _utc_ − _offsetNanoseconds_. + 1. Let _result_ be _utc_ − _offsetNanoseconds_. + 1. If ! IsValidEpochNanoseconds(ℤ(_result_)) is *false*, then + 1. Throw a *RangeError* exception. + 1. Return _result_.