| Index: runtime/vm/parser.cc
|
| diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
|
| index ac0a9721886b71039d1bcac0fa912debf81ae9d5..16dc59442ffa62d7004f62bac86d6bcc5cf99f98 100644
|
| --- a/runtime/vm/parser.cc
|
| +++ b/runtime/vm/parser.cc
|
| @@ -4378,9 +4378,13 @@ RawObject* Parser::CallLibraryTagHandler(Dart_LibraryTag tag,
|
| }
|
| ErrorMsg(token_pos, "no library handler registered");
|
| }
|
| + // Block class finalization attempts when calling into the library
|
| + // tag handler.
|
| + isolate()->BlockClassFinalization();
|
| Dart_Handle result = handler(tag,
|
| Api::NewHandle(isolate(), library_.raw()),
|
| Api::NewHandle(isolate(), url.raw()));
|
| + isolate()->UnblockClassFinalization();
|
| if (Dart_IsError(result)) {
|
| // In case of an error we append an explanatory error message to the
|
| // error obtained from the library tag handler.
|
|
|