| Index: runtime/vm/kernel_reader.cc
|
| diff --git a/runtime/vm/kernel_reader.cc b/runtime/vm/kernel_reader.cc
|
| index 8a23a7db1bfff493414f1d176ee2d9e52ffc8cae..d5d2eaf1e5cc1c65a56c65524288023a65d9d935 100644
|
| --- a/runtime/vm/kernel_reader.cc
|
| +++ b/runtime/vm/kernel_reader.cc
|
| @@ -200,7 +200,7 @@ void KernelReader::ReadLibrary(Library* kernel_library) {
|
| // Load all classes.
|
| for (intptr_t i = 0; i < kernel_library->classes().length(); i++) {
|
| Class* kernel_klass = kernel_library->classes()[i];
|
| - classes.Add(ReadClass(library, kernel_klass), Heap::kOld);
|
| + classes.Add(ReadClass(library, toplevel_class, kernel_klass), Heap::kOld);
|
| }
|
|
|
| classes.Add(toplevel_class, Heap::kOld);
|
| @@ -281,6 +281,7 @@ void KernelReader::ReadPreliminaryClass(dart::Class* klass,
|
|
|
|
|
| dart::Class& KernelReader::ReadClass(const dart::Library& library,
|
| + const dart::Class& toplevel_class,
|
| Class* kernel_klass) {
|
| // This will trigger a call to [ReadPreliminaryClass] if not already done.
|
| dart::Class& klass = LookupClass(kernel_klass);
|
| @@ -334,6 +335,11 @@ dart::Class& KernelReader::ReadClass(const dart::Library& library,
|
| kernel_constructor->function(),
|
| true, // is_method
|
| false); // is_closure
|
| +
|
| + if (FLAG_enable_mirrors) {
|
| + library.AddFunctionMetadata(function, TokenPosition::kNoSource,
|
| + kernel_constructor);
|
| + }
|
| }
|
|
|
| for (intptr_t i = 0; i < kernel_klass->procedures().length(); i++) {
|
| @@ -346,6 +352,11 @@ dart::Class& KernelReader::ReadClass(const dart::Library& library,
|
| klass.set_is_marked_for_parsing();
|
| }
|
|
|
| + if (FLAG_enable_mirrors) {
|
| + library.AddClassMetadata(klass, toplevel_class, TokenPosition::kNoSource,
|
| + kernel_klass);
|
| + }
|
| +
|
| return klass;
|
| }
|
|
|
| @@ -422,6 +433,10 @@ void KernelReader::ReadProcedure(const dart::Library& library,
|
| H.DartProcedureName(kernel_procedure)))
|
| .IsNull());
|
| }
|
| + if (FLAG_enable_mirrors) {
|
| + library.AddFunctionMetadata(function, TokenPosition::kNoSource,
|
| + kernel_procedure);
|
| + }
|
| }
|
|
|
| const Object& KernelReader::ClassForScriptAt(const dart::Class& klass,
|
|
|