Skip to content
2 changes: 2 additions & 0 deletions lib/fs.js
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,8 @@ fs.Stats = Stats;
// defining the properties in this fashion (explicitly with no loop or factory)
// has been shown to be the most performant on V8 contemp.
// Ref: https://github.com/nodejs/node/pull/12818
// +0.5 is added to the Dates to protect values from being rounded down
// Ref: https://github.com/nodejs/node/pull/12607
Object.defineProperties(Stats.prototype, {
atime: {
configurable: true,
Expand Down
6 changes: 3 additions & 3 deletions src/node_file.cc
Original file line number Diff line number Diff line change
Expand Up @@ -479,9 +479,9 @@ void FillStatsArray(double* fields, const uv_stat_t* s) {
fields[9] = -1;
#endif
// Dates.
#define X(idx, name) \
fields[idx] = (static_cast<double>(s->st_##name.tv_sec) * 1000) + \
(static_cast<double>(s->st_##name.tv_nsec / 1000000)); \
#define X(idx, name) \
fields[idx] = (s->st_##name.tv_sec * 1e3) + \
(s->st_##name.tv_nsec / 1e6); \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh yeah, I didn't follow the braces, assumed it was the same as the line above...


X(10, atim)
X(11, mtim)
Expand Down
14 changes: 10 additions & 4 deletions test/parallel/test-fs-utimes.js
Original file line number Diff line number Diff line change
Expand Up @@ -143,15 +143,21 @@ function testIt(atime, mtime, callback) {
const stats = fs.statSync(__filename);

// run tests
const runTest = common.mustCall(testIt, 5);
const runTest = common.mustCall(testIt, 6);

runTest(new Date('1982-09-10 13:37'), new Date('1982-09-10 13:37'), function() {
runTest(new Date(), new Date(), function() {
runTest(123456.789, 123456.789, function() {
runTest(stats.mtime, stats.mtime, function() {
runTest('123456', -1, common.mustCall(function() {
// done
}));
runTest('123456', -1, function() {
runTest(
new Date('2017-04-08T17:59:38.008Z'),
new Date('2017-04-08T17:59:38.008Z'),
common.mustCall(function() {
// done
})
);
});
});
});
});
Expand Down