| Index: runtime/vm/precompiler.cc
 | 
| diff --git a/runtime/vm/precompiler.cc b/runtime/vm/precompiler.cc
 | 
| index 85e00851d1dc3d1f75ce2f98aea0bc1b57e4861a..0a9040f89dc97417d453daba5720a6a52b4679ec 100644
 | 
| --- a/runtime/vm/precompiler.cc
 | 
| +++ b/runtime/vm/precompiler.cc
 | 
| @@ -482,6 +482,7 @@ void Precompiler::DoCompileAll(
 | 
|        I->object_store()->set_async_star_move_next_helper(null_function);
 | 
|        I->object_store()->set_complete_on_async_return(null_function);
 | 
|        I->object_store()->set_async_star_stream_controller(null_class);
 | 
| +      DropMetadata();
 | 
|        DropLibraryEntries();
 | 
|      }
 | 
|      DropClasses();
 | 
| @@ -1968,6 +1969,36 @@ void Precompiler::TraceTypesFromRetainedClasses() {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +void Precompiler::DropMetadata() {
 | 
| +  Library& lib = Library::Handle(Z);
 | 
| +  const GrowableObjectArray& null_growable_list =
 | 
| +      GrowableObjectArray::Handle(Z);
 | 
| +  Array& dependencies = Array::Handle(Z);
 | 
| +  Namespace& ns = Namespace::Handle(Z);
 | 
| +  const Field& null_field = Field::Handle(Z);
 | 
| +
 | 
| +  for (intptr_t i = 0; i < libraries_.Length(); i++) {
 | 
| +    lib ^= libraries_.At(i);
 | 
| +    lib.set_metadata(null_growable_list);
 | 
| +
 | 
| +    dependencies = lib.imports();
 | 
| +    for (intptr_t j = 0; j < dependencies.Length(); j++) {
 | 
| +      ns ^= dependencies.At(j);
 | 
| +      if (!ns.IsNull()) {
 | 
| +        ns.set_metadata_field(null_field);
 | 
| +      }
 | 
| +    }
 | 
| +
 | 
| +    dependencies = lib.exports();
 | 
| +    for (intptr_t j = 0; j < dependencies.Length(); j++) {
 | 
| +      ns ^= dependencies.At(j);
 | 
| +      if (!ns.IsNull()) {
 | 
| +        ns.set_metadata_field(null_field);
 | 
| +      }
 | 
| +    }
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  void Precompiler::DropLibraryEntries() {
 | 
|    Library& lib = Library::Handle(Z);
 | 
|    Array& dict = Array::Handle(Z);
 | 
| 
 |