Index: runtime/bin/platform.cc |
diff --git a/runtime/bin/platform.cc b/runtime/bin/platform.cc |
index 0ed2bd364fd10eec6d347472f6233379e94a3cc1..735bc432476664c60001c4656fb8c0b3a378f1f1 100644 |
--- a/runtime/bin/platform.cc |
+++ b/runtime/bin/platform.cc |
@@ -85,6 +85,22 @@ void FUNCTION_NAME(Platform_PackageRoot)(Dart_NativeArguments args) { |
} |
+void FUNCTION_NAME(Platform_PackageResolution)(Dart_NativeArguments args) { |
Ivan Posva
2015/08/26 04:29:35
There should be no need to rely on C++ code for th
Lasse Reichstein Nielsen
2015/08/26 06:26:06
Excellent. It did seem a bit overengineered to go
|
+ Dart_Handle builtin_lib = |
+ Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary); |
+ ASSERT(!Dart_IsError(builtin_lib)); |
+ Dart_Handle field_name = DartUtils::NewString("_packageRoot"); |
+ Dart_Handle result = Dart_GetField(builtin_lib, field_name); |
+ ASSERT(!Dart_IsError(result)); |
+ if (Dart_IsNull(result)) { |
+ field_name = DartUtils::NewString("_packageMap"); |
+ result = Dart_GetField(builtin_lib, field_name); |
+ ASSERT(!Dart_IsError(result)); |
+ } |
+ Dart_SetReturnValue(args, result); |
+} |
+ |
+ |
void FUNCTION_NAME(Platform_Environment)(Dart_NativeArguments args) { |
intptr_t count = 0; |
char** env = Platform::Environment(&count); |