summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2018-01-24 07:03:11 +0800
committerJoyee Cheung <joyeec9h3@gmail.com>2018-02-01 15:52:18 +0800
commit167e22937c612e18678e45e73a89dcc27e72fdc5 (patch)
tree44544a4b2f4371231c5721cd4977244e9c6fb8de /src
parent32bf0f6c5b3648a487c3fc56d0830de2ceeb60a5 (diff)
downloadandroid-node-v8-167e22937c612e18678e45e73a89dcc27e72fdc5.tar.gz
android-node-v8-167e22937c612e18678e45e73a89dcc27e72fdc5.tar.bz2
android-node-v8-167e22937c612e18678e45e73a89dcc27e72fdc5.zip
fs: throw errors from fs.linkSync in JS
PR-URL: https://github.com/nodejs/node/pull/18348 Refs: https://github.com/nodejs/node/issues/18106 Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/node_file.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/node_file.cc b/src/node_file.cc
index d67d45d4a8..0129d2d3f9 100644
--- a/src/node_file.cc
+++ b/src/node_file.cc
@@ -624,7 +624,8 @@ static void Symlink(const FunctionCallbackInfo<Value>& args) {
static void Link(const FunctionCallbackInfo<Value>& args) {
Environment* env = Environment::GetCurrent(args);
- CHECK_GE(args.Length(), 2);
+ int argc = args.Length();
+ CHECK_GE(argc, 3);
BufferValue src(env->isolate(), args[0]);
CHECK_NE(*src, nullptr);
@@ -633,11 +634,14 @@ static void Link(const FunctionCallbackInfo<Value>& args) {
CHECK_NE(*dest, nullptr);
if (args[2]->IsObject()) { // link(src, dest, req)
- CHECK_EQ(args.Length(), 3);
+ CHECK_EQ(argc, 3);
AsyncDestCall(env, args, "link", *dest, dest.length(), UTF8,
AfterNoArgs, uv_fs_link, *src, *dest);
- } else { // link(src, dest)
- SYNC_DEST_CALL(link, *src, *dest, *src, *dest)
+ } else { // link(src, dest, undefined, ctx)
+ CHECK_EQ(argc, 4);
+ fs_req_wrap req_wrap;
+ SyncCall(env, args[3], &req_wrap, "link",
+ uv_fs_link, *src, *dest);
}
}