From a6ffc52beae131aa08c808aed7ae08149d63021e Mon Sep 17 00:00:00 2001 From: Ryan Macnak Date: Thu, 16 Apr 2015 15:49:11 -0700 Subject: [PATCH] Ensure isolates have a root library so createMirrorSystem() and spawnUri() are happy. https://github.com/domokit/mojo/issues/98 R=eseidel@chromium.org Review URL: https://codereview.chromium.org/1088263004 --- engine/core/script/dart_controller.cc | 8 ++++++++ tests/dart/mirror-system-expected.txt | 1 + tests/dart/mirror-system.sky | 14 ++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 tests/dart/mirror-system-expected.txt create mode 100644 tests/dart/mirror-system.sky diff --git a/engine/core/script/dart_controller.cc b/engine/core/script/dart_controller.cc index 2a05e588552..dc7ce4c78a6 100644 --- a/engine/core/script/dart_controller.cc +++ b/engine/core/script/dart_controller.cc @@ -204,6 +204,10 @@ static Dart_Isolate IsolateCreateCallback(const char* script_uri, DartApiScope apiScope; Builtin::SetNativeResolver(Builtin::kBuiltinLibrary); Builtin::SetNativeResolver(Builtin::kMojoInternalLibrary); + + // Ensure the isolate has a root library. + Dart_LoadScript(Dart_NewStringFromCString("dart:empty"), + Dart_NewStringFromCString(""), 0, 0); } Dart_ExitIsolate(); @@ -273,6 +277,10 @@ void DartController::CreateIsolateFor(Document* document) { { DartApiScope apiScope; + // Ensure the isolate has a root library. + Dart_LoadScript(Dart_NewStringFromCString("dart:empty"), + Dart_NewStringFromCString(""), 0, 0); + Builtin::SetNativeResolver(Builtin::kBuiltinLibrary); Builtin::SetNativeResolver(Builtin::kMojoInternalLibrary); BuiltinNatives::Init(); diff --git a/tests/dart/mirror-system-expected.txt b/tests/dart/mirror-system-expected.txt new file mode 100644 index 00000000000..7ef22e9a431 --- /dev/null +++ b/tests/dart/mirror-system-expected.txt @@ -0,0 +1 @@ +PASS diff --git a/tests/dart/mirror-system.sky b/tests/dart/mirror-system.sky new file mode 100644 index 00000000000..7d751e516dc --- /dev/null +++ b/tests/dart/mirror-system.sky @@ -0,0 +1,14 @@ +>