Skip to content

Commit

Permalink
[Refactor] ES2022+: update TimeString to use `ToZeroPaddedDecimal…
Browse files Browse the repository at this point in the history
…String`
  • Loading branch information
ljharb committed Mar 28, 2024
1 parent 97b0786 commit 6839283
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 19 deletions.
1 change: 0 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -1107,7 +1107,6 @@
/2022/ThrowCompletion.js spackled linguist-generated=true
/2022/TimeClip.js spackled linguist-generated=true
/2022/TimeFromYear.js spackled linguist-generated=true
/2022/TimeString.js spackled linguist-generated=true
/2022/TimeWithinDay.js spackled linguist-generated=true
/2022/ToBigInt64.js spackled linguist-generated=true
/2022/ToBigUint64.js spackled linguist-generated=true
Expand Down
16 changes: 10 additions & 6 deletions 2022/TimeString.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,24 @@
var $TypeError = require('es-errors/type');

var $isNaN = require('../helpers/isNaN');
var padTimeComponent = require('../helpers/padTimeComponent');

var HourFromTime = require('./HourFromTime');
var MinFromTime = require('./MinFromTime');
var SecFromTime = require('./SecFromTime');
var ToZeroPaddedDecimalString = require('./ToZeroPaddedDecimalString');

// https://262.ecma-international.org/9.0/#sec-timestring
// https://262.ecma-international.org/13.0/#sec-timestring

module.exports = function TimeString(tv) {
if (typeof tv !== 'number' || $isNaN(tv)) {
throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number');
}
var hour = HourFromTime(tv);
var minute = MinFromTime(tv);
var second = SecFromTime(tv);
return padTimeComponent(hour) + ':' + padTimeComponent(minute) + ':' + padTimeComponent(second) + '\x20GMT';

var hour = ToZeroPaddedDecimalString(HourFromTime(tv), 2); // step 1

var minute = ToZeroPaddedDecimalString(MinFromTime(tv), 2); // step 2

var second = ToZeroPaddedDecimalString(SecFromTime(tv), 2); // step 3

return hour + ':' + minute + ':' + second + ' GMT'; // step 4
};
16 changes: 10 additions & 6 deletions 2023/TimeString.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 10 additions & 6 deletions 2024/TimeString.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 6839283

Please sign in to comment.