out-of-range.js (5675B)
1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally 2 // Copyright (C) 2021 the V8 project authors. All rights reserved. 3 // This code is governed by the BSD license found in the LICENSE file. 4 /*--- 5 esid: sec-temporal.plaindate.from 6 description: Should throw RangeError for input not in valid range. 7 info: | 8 1. Let calendar be the this value. 9 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]). 10 3. Assert: calendar.[[Identifier]] is "iso8601". 11 4. If Type(fields) is not Object, throw a TypeError exception. 12 5. Set options to ? GetOptionsObject(options). 13 6. Let result be ? ISODateFromFields(fields, options). 14 7. Return ? CreateTemporalDate(result.[[Year]], result.[[Month]], result.[[Day]], calendar). 15 features: [Temporal, arrow-function] 16 ---*/ 17 18 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, monthCode: "m1", day: 17})); 19 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, monthCode: "M1", day: 17})); 20 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, monthCode: "m01", day: 17})); 21 22 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 12, monthCode: "M11", day: 17})); 23 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, monthCode: "M00", day: 17})); 24 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, monthCode: "M19", day: 17})); 25 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, monthCode: "M99", day: 17})); 26 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, monthCode: "M13", day: 17})); 27 28 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: -1, day: 17})); 29 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: -Infinity, day: 17})); 30 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 7, day: -17})); 31 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 7, day: -Infinity})); 32 33 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 12, day: 0}, {overflow: "reject"})); 34 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 12, day: 32}, {overflow: "reject"})); 35 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 1, day: 32}, {overflow: "reject"})); 36 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 2, day: 29}, {overflow: "reject"})); 37 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 6, day: 31}, {overflow: "reject"})); 38 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 9, day: 31}, {overflow: "reject"})); 39 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 0, day: 5}, {overflow: "reject"})); 40 assert.throws(RangeError, () => Temporal.PlainDate.from({year: 2021, month: 13, day: 5}, {overflow: "reject"})); 41 42 assert.throws(RangeError, () => Temporal.PlainDate.from( 43 {year: 2021, monthCode: "M12", day: 0}, {overflow: "reject"})); 44 assert.throws(RangeError, () => Temporal.PlainDate.from( 45 {year: 2021, monthCode: "M12", day: 32}, {overflow: "reject"})); 46 assert.throws(RangeError, () => Temporal.PlainDate.from( 47 {year: 2021, monthCode: "M01", day: 32}, {overflow: "reject"})); 48 assert.throws(RangeError, () => Temporal.PlainDate.from( 49 {year: 2021, monthCode: "M02", day: 29}, {overflow: "reject"})); 50 assert.throws(RangeError, () => Temporal.PlainDate.from( 51 {year: 2021, monthCode: "M06", day: 31}, {overflow: "reject"})); 52 assert.throws(RangeError, () => Temporal.PlainDate.from( 53 {year: 2021, monthCode: "M09", day: 31}, {overflow: "reject"})); 54 assert.throws(RangeError, () => Temporal.PlainDate.from( 55 {year: 2021, monthCode: "M00", day: 5}, {overflow: "reject"})); 56 assert.throws(RangeError, () => Temporal.PlainDate.from( 57 {year: 2021, monthCode: "M13", day: 5}, {overflow: "reject"})); 58 59 assert.throws(RangeError, () => Temporal.PlainDate.from( 60 {year: 2021, month: 12, day: 0})); 61 assert.throws(RangeError, () => Temporal.PlainDate.from( 62 {year: 2021, month: 0, day: 3})); 63 64 assert.throws(RangeError, () => Temporal.PlainDate.from( 65 {year: 2021, month: 1, day: 32}, {overflow: "reject"})); 66 assert.throws(RangeError, () => Temporal.PlainDate.from( 67 {year: 2021, month: 2, day: 29}, {overflow: "reject"})); 68 assert.throws(RangeError, () => Temporal.PlainDate.from( 69 {year: 2021, month: 3, day: 32}, {overflow: "reject"})); 70 assert.throws(RangeError, () => Temporal.PlainDate.from( 71 {year: 2021, month: 4, day: 31}, {overflow: "reject"})); 72 assert.throws(RangeError, () => Temporal.PlainDate.from( 73 {year: 2021, month: 5, day: 32}, {overflow: "reject"})); 74 assert.throws(RangeError, () => Temporal.PlainDate.from( 75 {year: 2021, month: 6, day: 31}, {overflow: "reject"})); 76 assert.throws(RangeError, () => Temporal.PlainDate.from( 77 {year: 2021, month: 7, day: 32}, {overflow: "reject"})); 78 assert.throws(RangeError, () => Temporal.PlainDate.from( 79 {year: 2021, month: 8, day: 32}, {overflow: "reject"})); 80 assert.throws(RangeError, () => Temporal.PlainDate.from( 81 {year: 2021, month: 9, day: 31}, {overflow: "reject"})); 82 assert.throws(RangeError, () => Temporal.PlainDate.from( 83 {year: 2021, month: 10, day: 32}, {overflow: "reject"})); 84 assert.throws(RangeError, () => Temporal.PlainDate.from( 85 {year: 2021, month: 11, day: 31}, {overflow: "reject"})); 86 assert.throws(RangeError, () => Temporal.PlainDate.from( 87 {year: 2021, month: 12, day: 32}, {overflow: "reject"})); 88 assert.throws(RangeError, () => Temporal.PlainDate.from( 89 {year: 2021, month: 13, day: 5}, {overflow: "reject"})); 90 91 reportCompare(0, 0);