Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1073)

Unified Diff: runtime/bin/dartutils.cc

Issue 16368002: Make implicit things explicit when loading scripts. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« runtime/bin/builtin.dart ('K') | « runtime/bin/dartutils.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« runtime/bin/builtin.dart ('K') | « runtime/bin/dartutils.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698