Added test to ensure that release notes are parsed properly Updated to latest dependencies to fix security vulnerability Updated GH Actions Workflow to run test before updating tag Updated README.md to reflect proper whatsnew documentation.
34 lines
936 B
JavaScript
34 lines
936 B
JavaScript
'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;
|
|
};
|