Version 2.13.0-129.0.dev

Merge commit '5b8b55dfdd11c58262d3c5baef9ed7635614f329' into 'dev'
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc
index abb8ad0..0753c3e 100644
--- a/runtime/vm/compiler/aot/precompiler.cc
+++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -702,7 +702,8 @@
         Array::Handle(Z, code.inlined_id_to_function());
     for (intptr_t i = 0; i < inlined_functions.Length(); i++) {
       target ^= inlined_functions.At(i);
-      AddFunction(target, RetainReasons::kSymbolicStackTraces);
+      AddRetainReason(target, RetainReasons::kSymbolicStackTraces);
+      AddTypesOf(target);
     }
   }
 }
@@ -775,7 +776,7 @@
 }
 
 void Precompiler::AddRetainReason(const Object& obj, const char* reason) {
-  if (!FLAG_trace_precompiler) return;
+  if (!FLAG_trace_precompiler || reason == nullptr) return;
   if (auto const kv = retained_reasons_map_->Lookup(&obj)) {
     if (kv->value->Lookup(reason) == nullptr) {
       kv->value->Insert(reason);
@@ -1100,9 +1101,9 @@
   if (retain_reason == nullptr) {
     retain_reason = MustRetainFunction(function);
   }
-  if (retain_reason != nullptr) {
-    AddRetainReason(function, retain_reason);
-  }
+  // Add even if we've already marked this function as possibly retained
+  // because this could be an additional reason for doing so.
+  AddRetainReason(function, retain_reason);
 
   if (possibly_retained_functions_.ContainsKey(function)) return;
   if (retain_reason != nullptr) {
diff --git a/tools/VERSION b/tools/VERSION
index 766282c..3a0631f 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 13
 PATCH 0
-PRERELEASE 128
+PRERELEASE 129
 PRERELEASE_PATCH 0
\ No newline at end of file