diff --git a/pkg/frontend_server/lib/frontend_server.dart b/pkg/frontend_server/lib/frontend_server.dart
index 136b9ab..a4208db 100644
--- a/pkg/frontend_server/lib/frontend_server.dart
+++ b/pkg/frontend_server/lib/frontend_server.dart
@@ -353,6 +353,8 @@
   final List<String> errors = <String>[];
 
   _onDiagnostic(DiagnosticMessage message) {
+    // TODO(https://dartbug.com/44867): The frontend server should take a
+    // verbosity argument and put that in CompilerOptions and use it here.
     bool printMessage;
     switch (message.severity) {
       case Severity.error:
@@ -361,9 +363,11 @@
         errors.addAll(message.plainTextFormatted);
         break;
       case Severity.warning:
-      case Severity.info:
         printMessage = true;
         break;
+      case Severity.info:
+        printMessage = false;
+        break;
       case Severity.context:
       case Severity.ignored:
         throw 'Unexpected severity: ${message.severity}';
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 8ee2201..91617a4 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -961,6 +961,11 @@
     // TODO(27003)
     return;
   }
+  // Issue(https://dartbug.com/44862): Figure out why hot-reload causes
+  // existence of non-canonical constants.
+  if (group()->HasAttemptedReload()) {
+    return;
+  }
 
   // Verify that all canonical instances are correctly setup in the
   // corresponding canonical tables.
@@ -2674,7 +2679,7 @@
 }
 
 Isolate* IsolateGroup::FirstIsolate() const {
-  SafepointWriteRwLocker ml(Thread::Current(), isolates_lock_.get());
+  SafepointReadRwLocker ml(Thread::Current(), isolates_lock_.get());
   return FirstIsolateLocked();
 }
 
diff --git a/samples/ffi/sample_ffi_functions.dart b/samples/ffi/sample_ffi_functions.dart
index 5038ba8..749dc53 100644
--- a/samples/ffi/sample_ffi_functions.dart
+++ b/samples/ffi/sample_ffi_functions.dart
@@ -14,8 +14,8 @@
 typedef UnaryOp = int Function(int);
 typedef BinaryOp = int Function(int, int);
 typedef GenericBinaryOp<T> = int Function(int, T);
-typedef NativeQuadOpSigned = Int64 Function(Int64, Int32, Int16, Int8);
-typedef NativeQuadOpUnsigned = Uint64 Function(Uint64, Uint32, Uint16, Uint8);
+typedef NativeQuadOpSigned = Int64 Function(Int8, Int16, Int32, Int64);
+typedef NativeQuadOpUnsigned = Uint64 Function(Uint8, Uint16, Uint32, Uint64);
 typedef NativeFunc4 = IntPtr Function(IntPtr);
 typedef NativeDoubleUnaryOp = Double Function(Double);
 typedef NativeFloatUnaryOp = Float Function(Float);
diff --git a/samples_2/ffi/sample_ffi_functions.dart b/samples_2/ffi/sample_ffi_functions.dart
index 1bf8ecc..53990ac 100644
--- a/samples_2/ffi/sample_ffi_functions.dart
+++ b/samples_2/ffi/sample_ffi_functions.dart
@@ -16,8 +16,8 @@
 typedef UnaryOp = int Function(int);
 typedef BinaryOp = int Function(int, int);
 typedef GenericBinaryOp<T> = int Function(int, T);
-typedef NativeQuadOpSigned = Int64 Function(Int64, Int32, Int16, Int8);
-typedef NativeQuadOpUnsigned = Uint64 Function(Uint64, Uint32, Uint16, Uint8);
+typedef NativeQuadOpSigned = Int64 Function(Int8, Int16, Int32, Int64);
+typedef NativeQuadOpUnsigned = Uint64 Function(Uint8, Uint16, Uint32, Uint64);
 typedef NativeFunc4 = IntPtr Function(IntPtr);
 typedef NativeDoubleUnaryOp = Double Function(Double);
 typedef NativeFloatUnaryOp = Float Function(Float);
diff --git a/tools/VERSION b/tools/VERSION
index 9ff967c..a691acf 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 13
 PATCH 0
-PRERELEASE 4
+PRERELEASE 5
 PRERELEASE_PATCH 0
\ No newline at end of file
