| Index: runtime/vm/service.cc
|
| diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc
|
| index 4acc49b499f38407e169135d0499a8243e3b71f5..4aa3b9cec9fabf5dc79604f1dee8a010a56cfb07 100644
|
| --- a/runtime/vm/service.cc
|
| +++ b/runtime/vm/service.cc
|
| @@ -302,7 +302,7 @@ static Dart_NativeFunction VmServiceNativeResolver(Dart_Handle name,
|
| EmbedderServiceHandler* Service::isolate_service_handler_head_ = NULL;
|
| EmbedderServiceHandler* Service::root_service_handler_head_ = NULL;
|
| Isolate* Service::service_isolate_ = NULL;
|
| -Dart_LibraryTagHandler Service::default_handler_ = NULL;
|
| +Dart_LibraryTagHandler Service::embedder_provided_handler_ = NULL;
|
| Dart_Port Service::port_ = ILLEGAL_PORT;
|
| uint32_t Service::event_mask_ = 0;
|
|
|
| @@ -417,8 +417,7 @@ Isolate* Service::GetServiceIsolate(void* callback_data) {
|
| // Isolate is empty.
|
| ASSERT(library.IsNull());
|
| // Grab embedder tag handler.
|
| - default_handler_ = isolate->library_tag_handler();
|
| - ASSERT(default_handler_ != NULL);
|
| + embedder_provided_handler_ = isolate->library_tag_handler();
|
| // Temporarily install our own.
|
| isolate->set_library_tag_handler(LibraryTagHandler);
|
| // Get script resource.
|
| @@ -446,8 +445,8 @@ Isolate* Service::GetServiceIsolate(void* callback_data) {
|
| Dart_ExitScope();
|
| library.SetLoaded();
|
| // Install embedder default library tag handler again.
|
| - isolate->set_library_tag_handler(default_handler_);
|
| - default_handler_ = NULL;
|
| + isolate->set_library_tag_handler(embedder_provided_handler_);
|
| + embedder_provided_handler_ = NULL;
|
| library.set_native_entry_resolver(VmServiceNativeResolver);
|
| }
|
| {
|
| @@ -570,8 +569,11 @@ Dart_Handle Service::LibraryTagHandler(Dart_LibraryTag tag, Dart_Handle library,
|
| }
|
| if (tag == Dart_kImportTag) {
|
| // Embedder handles all requests for external libraries.
|
| - ASSERT(default_handler_ != NULL);
|
| - return default_handler_(tag, library, url);
|
| + if (embedder_provided_handler_ == NULL) {
|
| + return Dart_NewApiError("Unable to import module as no library tag "
|
| + "handler has been provided by embedder");
|
| + }
|
| + return embedder_provided_handler_(tag, library, url);
|
| }
|
| ASSERT((tag == Dart_kSourceTag) || (tag == Dart_kCanonicalizeUrl));
|
| if (tag == Dart_kCanonicalizeUrl) {
|
|
|