fs: fix functions executed in wrong context
The callback should run in the global scope and not in the FSReqWrap context. PR-URL: https://github.com/nodejs/node/pull/18668 Refs: https://github.com/nodejs/node/pull/12562 Refs: https://github.com/nodejs/node/pull/12976 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Gus Caplan <me@gus.host>
This commit is contained in:
parent
e9f2cecf1a
commit
c3eb3efa31
@ -737,7 +737,7 @@ fs.ftruncateSync = function(fd, len = 0) {
|
||||
};
|
||||
|
||||
fs.rmdir = function(path, callback) {
|
||||
callback = maybeCallback(callback);
|
||||
callback = makeCallback(callback);
|
||||
path = getPathFromURL(path);
|
||||
validatePath(path);
|
||||
const req = new FSReqWrap();
|
||||
@ -1784,7 +1784,7 @@ fs.realpath = function realpath(p, options, callback) {
|
||||
|
||||
|
||||
fs.realpath.native = function(path, options, callback) {
|
||||
callback = maybeCallback(callback || options);
|
||||
callback = makeCallback(callback || options);
|
||||
options = getOptions(options, {});
|
||||
path = getPathFromURL(path);
|
||||
validatePath(path);
|
||||
|
@ -29,6 +29,7 @@ fs.mkdir(d, 0o666, common.mustCall(function(err) {
|
||||
assert.ifError(err);
|
||||
|
||||
fs.mkdir(d, 0o666, common.mustCall(function(err) {
|
||||
assert.strictEqual(this, undefined);
|
||||
assert.ok(err, 'got no error');
|
||||
assert.ok(/^EEXIST/.test(err.message), 'got no EEXIST message');
|
||||
assert.strictEqual(err.code, 'EEXIST', 'got no EEXIST code');
|
||||
|
@ -6,7 +6,8 @@ const fs = require('fs');
|
||||
if (!common.isOSX) common.skip('MacOS-only test.');
|
||||
|
||||
assert.strictEqual(fs.realpathSync.native('/users'), '/Users');
|
||||
fs.realpath.native('/users', common.mustCall((err, res) => {
|
||||
fs.realpath.native('/users', common.mustCall(function(err, res) {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual(res, '/Users');
|
||||
assert.strictEqual(this, undefined);
|
||||
}));
|
||||
|
Loading…
x
Reference in New Issue
Block a user