| // Copyright (C) 2016 the V8 project authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| /*--- |
| esid: sec-date.utc |
| es6id: 20.3.3.4 |
| description: Values specified to MakeDay exceed their calendar boundaries |
| info: | |
| [...] |
| 9. Return TimeClip(MakeDate(MakeDay(yr, m, dt), MakeTime(h, min, s, milli))). |
| |
| MakeDay (year, month, date) |
| |
| [...] |
| 5. Let ym be y + floor(m / 12). |
| [...] |
| 7. Find a value t such that YearFromTime(t) is ym and MonthFromTime(t) is mn |
| and DateFromTime(t) is 1; but if this is not possible (because some |
| argument is out of range), return NaN. |
| 8. Return Day(t) + dt - 1. |
| ---*/ |
| |
| assert.sameValue(Date.UTC(2016, 12), 1483228800000, 'month: 12'); |
| assert.sameValue(Date.UTC(2016, 13), 1485907200000, 'month: 13'); |
| assert.sameValue(Date.UTC(2016, 144), 1830297600000, 'month: 144'); |
| |
| assert.sameValue(Date.UTC(2016, 0, 33), 1454371200000, 'day greater than month'); |
| assert.sameValue(Date.UTC(2016, 2, -27), 1454371200000, 'day negative value'); |