Skip to content

Commit 85accff

Browse files
committed
lib: call normalizeEncoding in fs.writeFileSync and fs.readFileSync
1 parent f46152f commit 85accff

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

benchmark-results-before.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=1024 useFd="true" encoding="utf8": 379,308.70987625053
2+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=102400 useFd="true" encoding="utf8": 52,849.46896325091
3+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=1048576 useFd="true" encoding="utf8": 6,754.315163099825
4+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=1024 useFd="false" encoding="utf8": 18,715.011934282385
5+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=102400 useFd="false" encoding="utf8": 13,563.337333477992
6+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=1048576 useFd="false" encoding="utf8": 3,315.224384265696
7+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=1024 useFd="true" encoding="UTF8": 259,456.6769619076
8+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=102400 useFd="true" encoding="UTF8": 11,036.740891030086
9+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=1048576 useFd="true" encoding="UTF8": 1,157.094808334633
10+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=1024 useFd="false" encoding="UTF8": 17,446.90688149625
11+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=102400 useFd="false" encoding="UTF8": 7,024.340216894065
12+
fs/bench-writeFileSync.js n=1000 func="writeFile" useBuffer="false" length=1048576 useFd="false" encoding="UTF8": 1,024.8417373799266

benchmark/fs/bench-writeFileSync.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ tmpdir.refresh();
77

88
// Some variants are commented out as they do not show a change and just slow
99
const bench = common.createBenchmark(main, {
10-
encoding: ['utf8'],
10+
encoding: ['utf8', 'UTF8'],
1111
useFd: ['true', 'false'],
1212
length: [1024, 102400, 1024 * 1024],
1313

lib/fs.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ const {
6060

6161
const pathModule = require('path');
6262
const { isAbsolute } = pathModule;
63+
64+
const { normalizeEncoding } = require('internal/util');
6365
const { isArrayBufferView } = require('internal/util/types');
6466

6567
const binding = internalBinding('fs');
@@ -428,7 +430,7 @@ function tryReadSync(fd, isUserFd, buffer, pos, len) {
428430
function readFileSync(path, options) {
429431
options = getOptions(options, { flag: 'r' });
430432

431-
if (options.encoding === 'utf8' || options.encoding === 'utf-8') {
433+
if (normalizeEncoding(options.encoding) === 'utf8') {
432434
if (!isInt32(path)) {
433435
path = getValidatedPath(path);
434436
}
@@ -2383,7 +2385,7 @@ function writeFileSync(path, data, options) {
23832385
const flag = options.flag || 'w';
23842386

23852387
// C++ fast path for string data and UTF8 encoding
2386-
if (typeof data === 'string' && (options.encoding === 'utf8' || options.encoding === 'utf-8')) {
2388+
if (typeof data === 'string' && normalizeEncoding(options.encoding) === 'utf8') {
23872389
if (!isInt32(path)) {
23882390
path = getValidatedPath(path);
23892391
}

0 commit comments

Comments
 (0)