[vm] Canonicalize empty Class::interfaces_.

TEST=ci
Change-Id: I921eb1796b5e142aba8a8f8649a0105ef0e396e4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/243380
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
diff --git a/runtime/vm/kernel_loader.cc b/runtime/vm/kernel_loader.cc
index bab3326..a9835fa 100644
--- a/runtime/vm/kernel_loader.cc
+++ b/runtime/vm/kernel_loader.cc
@@ -1377,15 +1377,19 @@
 
   // Build implemented interface types
   intptr_t interface_count = helper_.ReadListLength();
-  const Array& interfaces =
-      Array::Handle(Z, Array::New(interface_count, Heap::kOld));
-  for (intptr_t i = 0; i < interface_count; i++) {
-    const AbstractType& type =
-        T.BuildTypeWithoutFinalization();  // read ith type.
-    interfaces.SetAt(i, type);
+  if (interface_count == 0) {
+    klass->set_interfaces(Object::empty_array());
+  } else {
+    const Array& interfaces =
+        Array::Handle(Z, Array::New(interface_count, Heap::kOld));
+    for (intptr_t i = 0; i < interface_count; i++) {
+      const AbstractType& type =
+          T.BuildTypeWithoutFinalization();  // read ith type.
+      interfaces.SetAt(i, type);
+    }
+    klass->set_interfaces(interfaces);
   }
   class_helper->SetJustRead(ClassHelper::kImplementedClasses);
-  klass->set_interfaces(interfaces);
 
   if (class_helper->is_abstract()) klass->set_is_abstract();