[vm] Enable annotations on libraries in AOT

We have no use cases for this until the dependent CL.
TEST=dependent CL

Closes: https://github.com/dart-lang/sdk/issues/50539

Change-Id: Iee91f90ddd474cef3b7218def4d3e716ab2639ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/272421
Reviewed-by: Martin Kustermann <kustermann@google.com>
diff --git a/runtime/vm/kernel_loader.cc b/runtime/vm/kernel_loader.cc
index 8b281b3..bb75cf5 100644
--- a/runtime/vm/kernel_loader.cc
+++ b/runtime/vm/kernel_loader.cc
@@ -1027,7 +1027,9 @@
     FinishTopLevelClassLoading(toplevel_class, library, library_index);
   }
 
-  if (FLAG_enable_mirrors && annotation_count > 0) {
+  // Used for mirrors and allows VM to recognize @pragma annotations on
+  // libraries.
+  if (annotation_count > 0) {
     ASSERT(annotations_kernel_offset > 0);
     library.AddMetadata(library, annotations_kernel_offset);
   }
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index a0757bb..8226044 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -4017,7 +4017,9 @@
   auto Z = T->zone();
   auto& lib = Library::Handle(Z);
 
-  if (obj.IsClass()) {
+  if (obj.IsLibrary()) {
+    lib = Library::Cast(obj).ptr();
+  } else if (obj.IsClass()) {
     auto& klass = Class::Cast(obj);
     if (!klass.has_pragma()) return false;
     lib = klass.library();