Version 2.15.0-301.0.dev

Merge commit 'fea71f432fc94e8c11f5423c8a71c2130766fa5e' into 'dev'
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index c546dba..ef5cdad 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -490,8 +490,14 @@
 
 void IsolateGroup::Shutdown() {
   char* name;
+  // We retrieve the flag value once to avoid the compiler complaining about the
+  // possibly uninitialized value of name, as the compiler is unaware that when
+  // the flag variable is non-const, it is set once during VM initialization and
+  // never changed after, and that modification never runs concurrently with
+  // this method.
+  const bool trace_shutdown = FLAG_trace_shutdown;
 
-  if (FLAG_trace_shutdown) {
+  if (trace_shutdown) {
     name = Utils::StrDup(source()->name);
     OS::PrintErr("[+%" Pd64 "ms] SHUTDOWN: Shutdown starting for group %s\n",
                  Dart::UptimeMillis(), name);
@@ -537,7 +543,7 @@
   // After this isolate group has died we might need to notify a pending
   // `Dart_Cleanup()` call.
   {
-    if (FLAG_trace_shutdown) {
+    if (trace_shutdown) {
       OS::PrintErr("[+%" Pd64
                    "ms] SHUTDOWN: Notifying "
                    "isolate group shutdown (%s)\n",
@@ -548,14 +554,14 @@
         !IsolateGroup::HasApplicationIsolateGroups()) {
       ml.Notify();
     }
-    if (FLAG_trace_shutdown) {
+    if (trace_shutdown) {
       OS::PrintErr("[+%" Pd64
                    "ms] SHUTDOWN: Done Notifying "
                    "isolate group shutdown (%s)\n",
                    Dart::UptimeMillis(), name);
     }
   }
-  if (FLAG_trace_shutdown) {
+  if (trace_shutdown) {
     OS::PrintErr("[+%" Pd64 "ms] SHUTDOWN: Done shutdown for group %s\n",
                  Dart::UptimeMillis(), name);
     free(name);
diff --git a/tools/VERSION b/tools/VERSION
index 35e81ca..f27070e 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 15
 PATCH 0
-PRERELEASE 300
+PRERELEASE 301
 PRERELEASE_PATCH 0
\ No newline at end of file