Index: runtime/bin/file.cc |
diff --git a/runtime/bin/file.cc b/runtime/bin/file.cc |
index a3906d33588895482ac994f44385cf280bf24b0e..f457dd97f44c6f0bc950fdb0f4017294f20177a3 100644 |
--- a/runtime/bin/file.cc |
+++ b/runtime/bin/file.cc |
@@ -425,6 +425,29 @@ void FUNCTION_NAME(File_Create)(Dart_NativeArguments args) { |
} |
+void FUNCTION_NAME(File_CreateLink)(Dart_NativeArguments args) { |
+ Dart_EnterScope(); |
+ if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && |
+ Dart_IsString(Dart_GetNativeArgument(args, 1))) { |
+ const char* name = |
+ DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
+ const char* target = |
+ DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
+ if (!File::CreateLink(name, target)) { |
+ Dart_Handle err = DartUtils::NewDartOSError(); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
+ Dart_SetReturnValue(args, err); |
+ } |
+ } else { |
+ OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
+ Dart_Handle err = DartUtils::NewDartOSError(&os_error); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
+ Dart_SetReturnValue(args, err); |
+ } |
+ Dart_ExitScope(); |
+} |
+ |
+ |
void FUNCTION_NAME(File_Delete)(Dart_NativeArguments args) { |
Dart_EnterScope(); |
const char* str = |