summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2018-02-09 16:31:26 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2018-02-26 23:18:21 +0000
commitc3eb3efa315382d1073d6a126f4d888cf3e121ec (patch)
treed70cac1a8d1d984153fbfc5860132e42720e540d
parente9f2cecf1a14285574f9b6104dd690ef92495d74 (diff)
downloadandroid-node-v8-c3eb3efa315382d1073d6a126f4d888cf3e121ec.tar.gz
android-node-v8-c3eb3efa315382d1073d6a126f4d888cf3e121ec.tar.bz2
android-node-v8-c3eb3efa315382d1073d6a126f4d888cf3e121ec.zip
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>
-rw-r--r--lib/fs.js4
-rw-r--r--test/parallel/test-fs-mkdir-rmdir.js1
-rw-r--r--test/parallel/test-fs-realpath-native.js3
3 files changed, 5 insertions, 3 deletions
diff --git a/lib/fs.js b/lib/fs.js
index abffde7b9e..543e6b8c61 100644
--- a/lib/fs.js
+++ b/lib/fs.js
@@ -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);
diff --git a/test/parallel/test-fs-mkdir-rmdir.js b/test/parallel/test-fs-mkdir-rmdir.js
index 865a5dba95..6427dbd340 100644
--- a/test/parallel/test-fs-mkdir-rmdir.js
+++ b/test/parallel/test-fs-mkdir-rmdir.js
@@ -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');
diff --git a/test/parallel/test-fs-realpath-native.js b/test/parallel/test-fs-realpath-native.js
index 43d6b8ca80..93b5a278cf 100644
--- a/test/parallel/test-fs-realpath-native.js
+++ b/test/parallel/test-fs-realpath-native.js
@@ -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);
}));