Show More
Commit Description:
submission report
Commit Description:
submission report
References:
File last commit:
Show/Diff file:
Action:
node_modules/es-abstract/2016/MakeDay.js
| 33 lines
| 936 B
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var GetIntrinsic = require('../GetIntrinsic'); | ||||
var $floor = GetIntrinsic('%Math.floor%'); | ||||
var $DateUTC = GetIntrinsic('%Date.UTC%'); | ||||
var mod = require('../helpers/mod'); | ||||
var $isFinite = require('../helpers/isFinite'); | ||||
var DateFromTime = require('./DateFromTime'); | ||||
var Day = require('./Day'); | ||||
var MonthFromTime = require('./MonthFromTime'); | ||||
var ToInteger = require('./ToInteger'); | ||||
var YearFromTime = require('./YearFromTime'); | ||||
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12 | ||||
module.exports = function MakeDay(year, month, date) { | ||||
if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { | ||||
return NaN; | ||||
} | ||||
var y = ToInteger(year); | ||||
var m = ToInteger(month); | ||||
var dt = ToInteger(date); | ||||
var ym = y + $floor(m / 12); | ||||
var mn = mod(m, 12); | ||||
var t = $DateUTC(ym, mn, 1); | ||||
if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { | ||||
return NaN; | ||||
} | ||||
return Day(t) + dt - 1; | ||||
}; | ||||