@@ -688,19 +688,23 @@ static void ReadLink(const FunctionCallbackInfo<Value>& args) {
688688static void Rename (const FunctionCallbackInfo<Value>& args) {
689689 Environment* env = Environment::GetCurrent (args);
690690
691- CHECK_GE (args.Length (), 2 );
691+ int argc = args.Length ();
692+ CHECK_GE (argc, 3 );
692693
693694 BufferValue old_path (env->isolate (), args[0 ]);
694695 CHECK_NE (*old_path, nullptr );
695696 BufferValue new_path (env->isolate (), args[1 ]);
696697 CHECK_NE (*new_path, nullptr );
697698
698- if (args[2 ]->IsObject ()) {
699- CHECK_EQ (args. Length () , 3 );
699+ if (args[2 ]->IsObject ()) { // rename(old_path, new_path, req)
700+ CHECK_EQ (argc , 3 );
700701 AsyncDestCall (env, args, " rename" , *new_path, new_path.length (),
701702 UTF8, AfterNoArgs, uv_fs_rename, *old_path, *new_path);
702- } else {
703- SYNC_DEST_CALL (rename, *old_path, *new_path, *old_path, *new_path)
703+ } else { // rename(old_path, new_path, undefined, ctx)
704+ CHECK_EQ (argc, 4 );
705+ fs_req_wrap req_wrap;
706+ SyncCall (env, args[3 ], &req_wrap, " rename" ,
707+ uv_fs_rename, *old_path, *new_path);
704708 }
705709}
706710
0 commit comments