| Index: runtime/bin/dartutils.cc
|
| diff --git a/runtime/bin/dartutils.cc b/runtime/bin/dartutils.cc
|
| index fc9046942654246cd33e0bd4816867ac5d229c4c..41fbb0add6cd4e369aad85acfa3f97eddce16113 100644
|
| --- a/runtime/bin/dartutils.cc
|
| +++ b/runtime/bin/dartutils.cc
|
| @@ -383,13 +383,17 @@ Dart_Handle DartUtils::ReadStringFromFile(const char* filename) {
|
| }
|
|
|
|
|
| +Dart_Handle DartUtils::SetWorkingDirectory(Dart_Handle builtin_lib) {
|
| + Dart_Handle directory = NewString(original_working_directory);
|
| + return SingleArgDart_Invoke(directory, builtin_lib, "_setWorkingDirectory");
|
| +}
|
| +
|
| +
|
| Dart_Handle DartUtils::ResolveScriptUri(Dart_Handle script_uri,
|
| Dart_Handle builtin_lib) {
|
| - const int kNumArgs = 3;
|
| + const int kNumArgs = 1;
|
| Dart_Handle dart_args[kNumArgs];
|
| - dart_args[0] = NewString(original_working_directory);
|
| - dart_args[1] = script_uri;
|
| - dart_args[2] = (IsWindowsHost() ? Dart_True() : Dart_False());
|
| + dart_args[0] = script_uri;
|
| return Dart_Invoke(builtin_lib,
|
| NewString("_resolveScriptUri"),
|
| kNumArgs,
|
| @@ -399,10 +403,9 @@ Dart_Handle DartUtils::ResolveScriptUri(Dart_Handle script_uri,
|
|
|
| Dart_Handle DartUtils::FilePathFromUri(Dart_Handle script_uri,
|
| Dart_Handle builtin_lib) {
|
| - const int kNumArgs = 2;
|
| + const int kNumArgs = 1;
|
| Dart_Handle dart_args[kNumArgs];
|
| dart_args[0] = script_uri;
|
| - dart_args[1] = (IsWindowsHost() ? Dart_True() : Dart_False());
|
| return Dart_Invoke(builtin_lib,
|
| NewString("_filePathFromUri"),
|
| kNumArgs,
|
| @@ -563,9 +566,6 @@ Dart_Handle DartUtils::LoadScriptHttp(Dart_Handle uri,
|
|
|
| Dart_Handle DartUtils::LoadScript(const char* script_uri,
|
| Dart_Handle builtin_lib) {
|
| - // Always call ResolveScriptUri because as a side effect it sets
|
| - // the script entry path which is used when automatically resolving
|
| - // package root.
|
| Dart_Handle resolved_script_uri =
|
| ResolveScriptUri(NewString(script_uri), builtin_lib);
|
| if (Dart_IsError(resolved_script_uri)) {
|
| @@ -665,6 +665,19 @@ Dart_Handle DartUtils::PrepareForScriptLoading(const char* package_root,
|
| DART_CHECK_VALID(Dart_Invoke(
|
| async_lib, NewString("_setTimerFactoryClosure"), 1, args));
|
|
|
| +
|
| + // Set running on Windows flag.
|
| + result = Dart_SetField(builtin_lib, NewString("_isWindows"),
|
| + (IsWindowsHost() ? Dart_True() : Dart_False()));
|
| + if (Dart_IsError(result)) {
|
| + return result;
|
| + }
|
| + // Set current working directory.
|
| + result = SetWorkingDirectory(builtin_lib);
|
| + if (Dart_IsError(result)) {
|
| + return result;
|
| + }
|
| +
|
| // Set up package root if specified.
|
| if (package_root != NULL) {
|
| result = NewString(package_root);
|
|
|