Version 1.23.0-dev.11.11

Cherry-pick 2a2de1aa2380b1338749bc18c94d953c904f485d into dev
Cherry-pick 9add06fe7f835ec2a95175184cdcaa3d72f7c18d into dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f0e3f7..5a5879c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,13 +1,5 @@
 ## 1.23.0
 
-### Language
-* Allow using URI strings in `part of` declarations to refer to the
-  importing library.
-  A library part now can declare its library either as:
-  `part of name.of.library;` or as `part of "uriReferenceOfLibrary.dart";`.
-  This allows libraries with no library declarations (and therefore no name)
-  to have parts, and it allows tools to easily find the library of a part file.
-
 #### Strong Mode
 
 * Breaking change - it is now a strong mode error if a mixin causes a name
diff --git a/runtime/vm/jit_optimizer.cc b/runtime/vm/jit_optimizer.cc
index 686adc5..e42fa50 100644
--- a/runtime/vm/jit_optimizer.cc
+++ b/runtime/vm/jit_optimizer.cc
@@ -1542,6 +1542,17 @@
   const ICData& unary_checks =
       ICData::ZoneHandle(Z, instr->ic_data()->AsUnaryClassChecks());
 
+  const bool is_dense = CheckClassInstr::IsDenseCidRange(unary_checks);
+  const intptr_t number_of_checks = unary_checks.NumberOfChecks();
+  if (op_kind == Token::kEQ &&
+      number_of_checks > FLAG_max_equality_polymorphic_checks && !is_dense &&
+      flow_graph()->InstanceCallNeedsClassCheck(
+          instr, RawFunction::kRegularFunction)) {
+    // Too many checks, it will be megamorphic which needs unary checks.
+    instr->set_ic_data(&unary_checks);
+    return;
+  }
+
   if ((op_kind == Token::kASSIGN_INDEX) && TryReplaceWithIndexedOp(instr)) {
     return;
   }
diff --git a/tools/VERSION b/tools/VERSION
index 11dbf70..79f0a52 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 23
 PATCH 0
 PRERELEASE 11
-PRERELEASE_PATCH 10
+PRERELEASE_PATCH 11