diff options
author | Joyee Cheung <joyeec9h3@gmail.com> | 2018-01-24 07:03:11 +0800 |
---|---|---|
committer | Joyee Cheung <joyeec9h3@gmail.com> | 2018-02-01 15:52:18 +0800 |
commit | 167e22937c612e18678e45e73a89dcc27e72fdc5 (patch) | |
tree | 44544a4b2f4371231c5721cd4977244e9c6fb8de /src | |
parent | 32bf0f6c5b3648a487c3fc56d0830de2ceeb60a5 (diff) | |
download | android-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.cc | 12 |
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); } } |