diff --git a/composer.lock b/composer.lock
index c47fbee1c22eaf4eb4a4769a27cbc7259791a031..00ed91a33802c92f620a326f32ac4c76bdd3b1a3 100644
--- a/composer.lock
+++ b/composer.lock
@@ -535,7 +535,7 @@
             "dist": {
                 "type": "path",
                 "url": "core",
-                "reference": "107b1d4f65408eb2844facd227005517de15343b"
+                "reference": "833c40df380059ecff9e327223e066ac3a41c328"
             },
             "require": {
                 "asm89/stack-cors": "^1.1",
@@ -572,6 +572,7 @@
                 "symfony/http-kernel": "^4.4",
                 "symfony/mime": "^5.3.0",
                 "symfony/polyfill-iconv": "^1.0",
+                "symfony/polyfill-php80": "^1.16",
                 "symfony/process": "^4.4",
                 "symfony/psr-http-message-bridge": "^2.0",
                 "symfony/routing": "^4.4",
@@ -6962,6 +6963,7 @@
                     "type": "github"
                 }
             ],
+            "abandoned": true,
             "time": "2020-11-30T07:30:19+00:00"
         },
         {
diff --git a/core/composer.json b/core/composer.json
index 17365aabdb0e76c422bc478eef830af7c524f4b3..aa852411ecf25466168b6d9ee12b090a30c942ed 100644
--- a/core/composer.json
+++ b/core/composer.json
@@ -30,6 +30,7 @@
         "symfony/validator": "^4.4",
         "symfony/process": "^4.4",
         "symfony/polyfill-iconv": "^1.0",
+        "symfony/polyfill-php80": "^1.16",
         "symfony/yaml": "^4.4.19",
         "typo3/phar-stream-wrapper": "^3.1.3",
         "twig/twig": "^2.12.0",
diff --git a/core/lib/Drupal/Core/Ajax/AjaxHelperTrait.php b/core/lib/Drupal/Core/Ajax/AjaxHelperTrait.php
index 287abae3212a91d35b1bab7935b3115406373c67..534a2c95c16674993e5135a0a5a06534378872cf 100644
--- a/core/lib/Drupal/Core/Ajax/AjaxHelperTrait.php
+++ b/core/lib/Drupal/Core/Ajax/AjaxHelperTrait.php
@@ -18,19 +18,17 @@ trait AjaxHelperTrait {
    *   TRUE if the current request is via AJAX, FALSE otherwise.
    */
   protected function isAjax() {
-    foreach (['drupal_ajax', 'drupal_modal', 'drupal_dialog'] as $wrapper) {
-      if (strpos($this->getRequestWrapperFormat(), $wrapper) !== FALSE) {
-        return TRUE;
-      }
-    }
-    return FALSE;
+    $wrapper_format = $this->getRequestWrapperFormat() ?? '';
+    return str_contains($wrapper_format, 'drupal_ajax') ||
+      str_contains($wrapper_format, 'drupal_modal') ||
+      str_contains($wrapper_format, 'drupal_dialog');
   }
 
   /**
    * Gets the wrapper format of the current request.
    *
-   * @string
-   *   The wrapper format.
+   * @return string|null
+   *   The wrapper format. NULL if the wrapper format is not set.
    */
   protected function getRequestWrapperFormat() {
     return \Drupal::request()->get(MainContentViewSubscriber::WRAPPER_FORMAT);