blob: 4c4d5490c9e077574cfbbb4a9528aa7b03e51551 [file] [log] [blame]
// Copyright 2019 Google, Inc. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: |
Throws a RangeError if date arg is cast to an Infinity value
info: >
Intl.DateTimeFormat.prototype.formatRangeToParts ( startDate , endDate )
1. Let dtf be this value.
2. If Type(dtf) is not Object, throw a TypeError exception.
3. If dtf does not have an [[InitializedDateTimeFormat]] internal slot, throw a TypeError exception.
4. If startDate is undefined or endDate is undefined, throw a RangeError exception.
5. Let x be ? ToNumber(startDate).
6. Let y be ? ToNumber(endDate).
7. If x is greater than y, throw a RangeError exception.
8. Return ? FormatDateTimeRangeToParts(dtf, x, y).
FormatDateTimeRangeToParts ( dateTimeFormat, x, y )
1. Let parts be ? PartitionDateTimeRangePattern(dateTimeFormat, x, y).
PartitionDateTimeRangePattern ( dateTimeFormat, x, y )
1. Let x be TimeClip(x).
2. If x is NaN, throw a RangeError exception.
3. Let y be TimeClip(y).
4. If y is NaN, throw a RangeError exception.
TimeClip ( time )
1. If time is not finite, return NaN.
features: [Intl.DateTimeFormat-formatRange]
---*/
var dtf = new Intl.DateTimeFormat();
var date = new Date();
assert.throws(RangeError, function() {
dtf.formatRangeToParts(Infinity, date);
}, "+Infinity/date");
assert.throws(RangeError, function() {
dtf.formatRangeToParts(-Infinity, date);
}, "-Infinity/date");
assert.throws(RangeError, function() {
dtf.formatRangeToParts(date, Infinity);
}, "date/+Infinity");
assert.throws(RangeError, function() {
dtf.formatRangeToParts(date, -Infinity);
}, "date/-Infinity");
assert.throws(RangeError, function() {
dtf.formatRangeToParts(Infinity, Infinity);
}, "+Infinity/+Infinity");
assert.throws(RangeError, function() {
dtf.formatRangeToParts(-Infinity, -Infinity);
}, "-Infinity/-Infinity");
assert.throws(RangeError, function() {
dtf.formatRangeToParts(Infinity, -Infinity);
}, "+Infinity/-Infinity");
assert.throws(RangeError, function() {
dtf.formatRangeToParts(-Infinity, Infinity);
}, "-Infinity/+Infinity");