Define Uri.base as CWD to match the standalone Dart VM. (#5137)

Bug: https://github.com/flutter/flutter/issues/17118
This commit is contained in:
Ryan Macnak
2018-05-01 09:30:30 -07:00
committed by GitHub
parent 6f15a915c6
commit 2812ea3ed3
3 changed files with 4 additions and 9 deletions
+3 -3
View File
@@ -88,9 +88,9 @@ static void InitDartInternal(Dart_Handle builtin_library, bool is_ui_isolate) {
}
static void InitDartCore(Dart_Handle builtin, const std::string& script_uri) {
DART_CHECK_VALID(
Dart_SetField(builtin, ToDart("_baseURL"), ToDart(script_uri)));
Dart_Handle get_base_url = GetClosure(builtin, "_getGetBaseURLClosure");
Dart_Handle io_lib = Dart_LookupLibrary(ToDart("dart:io"));
Dart_Handle get_base_url =
Dart_Invoke(io_lib, ToDart("_getUriBaseClosure"), 0, NULL);
Dart_Handle core_library = Dart_LookupLibrary(ToDart("dart:core"));
DART_CHECK_VALID(
Dart_SetField(core_library, ToDart("_uriBaseClosure"), get_base_url));
-4
View File
@@ -37,15 +37,11 @@ void _setupHooks() {
void _scheduleMicrotask(void callback()) native 'ScheduleMicrotask';
String _baseURL;
Uri _getBaseURL() => Uri.parse(_baseURL);
// Required for gen_snapshot to work correctly.
int _isolateId;
Function _getPrintClosure() => _print;
Function _getScheduleMicrotaskClosure() => _scheduleMicrotask;
Function _getGetBaseURLClosure() => _getBaseURL;
// Though the "main" symbol is not included in any of the libraries imported
// above, the builtin library will be included manually during VM setup. This
+1 -2
View File
@@ -1,5 +1,6 @@
dart:_internal,::,_printClosure
dart:async,::,_setScheduleImmediateClosure
dart:io,::,_getUriBaseClosure
dart:io,::,_setupHooks
dart:io,_Platform,_localeClosure
dart:io,_Platform,set:_nativeScript
@@ -11,8 +12,6 @@ dart:ui,::,_dispatchPlatformMessage
dart:ui,::,_dispatchPointerDataPacket
dart:ui,::,_dispatchSemanticsAction
dart:ui,::,_drawFrame
dart:ui,::,_getGetBaseURLClosure
dart:ui,::,_baseURL
dart:ui,::,_getLocaleClosure
dart:ui,::,_getMainClosure
dart:ui,::,_getPrintClosure