@@ -598,22 +598,26 @@ static void FStat(const FunctionCallbackInfo<Value>& args) {
598598static void Symlink (const FunctionCallbackInfo<Value>& args) {
599599 Environment* env = Environment::GetCurrent (args);
600600
601- CHECK_GE (args.Length (), 3 );
601+ int argc = args.Length ();
602+ CHECK_GE (argc, 4 );
602603
603604 BufferValue target (env->isolate (), args[0 ]);
604605 CHECK_NE (*target, nullptr );
605606 BufferValue path (env->isolate (), args[1 ]);
606607 CHECK_NE (*path, nullptr );
607608
608- CHECK (args[2 ]->IsUint32 ());
609- int flags = args[2 ]-> Uint32Value (env-> context ()). ToChecked ();
609+ CHECK (args[2 ]->IsInt32 ());
610+ int flags = args[2 ]. As <Int32>()-> Value ();
610611
611612 if (args[3 ]->IsObject ()) { // symlink(target, path, flags, req)
612613 CHECK_EQ (args.Length (), 4 );
613614 AsyncDestCall (env, args, " symlink" , *path, path.length (), UTF8,
614615 AfterNoArgs, uv_fs_symlink, *target, *path, flags);
615- } else { // symlink(target, path, flags)
616- SYNC_DEST_CALL (symlink, *target, *path, *target, *path, flags)
616+ } else { // symlink(target, path, flags, undefinec, ctx)
617+ CHECK_EQ (argc, 5 );
618+ fs_req_wrap req_wrap;
619+ SyncCall (env, args[4 ], &req_wrap, " symlink" ,
620+ uv_fs_symlink, *target, *path, flags);
617621 }
618622}
619623
0 commit comments