Index: src/js/_enqueues/vendor/imgareaselect/jquery.imgareaselect.js
===================================================================
--- src/js/_enqueues/vendor/imgareaselect/jquery.imgareaselect.js	(revision 61303)
+++ src/js/_enqueues/vendor/imgareaselect/jquery.imgareaselect.js	(working copy)
@@ -347,8 +347,7 @@
             .add($area).width(w = selection.width).height(h = selection.height);
 
         /*
-         * Reset the position of selection area, borders, and handles (IE6/IE7
-         * position them incorrectly if we don't do this)
+         * Reset the position of selection area, borders, and handles.
          */
         $area.add($border).add($handles).css({ left: 0, top: 0 });
 
@@ -401,22 +400,6 @@
                 });
         }
 
-        /*
-         * Internet Explorer displays 1px-wide dashed borders incorrectly by
-         * filling the spaces between dashes with white. Toggling the margin
-         * property between 0 and "auto" fixes this in IE6 and IE7 (IE8 is still
-         * broken). This workaround is not perfect, as it requires setTimeout()
-         * and thus causes the border to flicker a bit, but I haven't found a
-         * better solution.
-         *
-         * Note: This only happens with CSS borders, set with the borderWidth,
-         * borderOpacity, borderColor1, and borderColor2 options (which are now
-         * deprecated). Borders created with GIF background images are fine.
-         */
-        if (msie && $border.outerWidth() - $border.innerWidth() == 2) {
-            $border.css('margin', 0);
-            setTimeout(function () { $border.css('margin', 'auto'); }, 0);
-        }
     }
 
     /**
@@ -1008,13 +991,6 @@
         /* Append all the selection area elements to the container box */
         $box.append($area.add($border).add($areaOpera)).append($handles);
 
-        if (msie) {
-            if (o = ($outer.css('filter')||'').match(/opacity=(\d+)/))
-                $outer.css('opacity', o[1]/100);
-            if (o = ($border.css('filter')||'').match(/opacity=(\d+)/))
-                $border.css('opacity', o[1]/100);
-        }
-
         if (newOptions.hide)
             hide($box.add($outer));
         else if (newOptions.show && imgLoaded) {
@@ -1123,8 +1099,7 @@
     this.update = doUpdate;
 
     /* Do the dreaded browser detection */
-    var msie = (/msie ([\w.]+)/i.exec(ua)||[])[1],
-        opera = /opera/i.test(ua),
+    var opera = /opera/i.test(ua),
         safari = /webkit/i.test(ua) && !/chrome/i.test(ua);
 
     /*
@@ -1149,13 +1124,10 @@
      */
     zIndex = options.zIndex || zIndex;
 
-    if (msie)
-        $img.attr('unselectable', 'on');
-
     /*
-     * In MSIE and WebKit, we need to use the keydown event instead of keypress
+     * In WebKit, we need to use the keydown event instead of keypress.
      */
-    $.imgAreaSelect.keyPress = msie || safari ? 'keydown' : 'keypress';
+    $.imgAreaSelect.keyPress = safari ? 'keydown' : 'keypress';
 
     /*
      * There is a bug affecting the CSS cursor property in Opera (observed in
@@ -1188,13 +1160,6 @@
     img.complete || img.readyState == 'complete' || !$img.is('img') ?
         imgLoad() : $img.one('load', imgLoad);
 
-    /*
-     * MSIE 9.0 doesn't always fire the image load event -- resetting the src
-     * attribute seems to trigger it. The check is for version 7 and above to
-     * accommodate for MSIE 9 running in compatibility mode.
-     */
-    if (!imgLoaded && msie && msie >= 7)
-        img.src = img.src;
 };
 
 /**
Index: src/js/_enqueues/vendor/farbtastic.js
===================================================================
--- src/js/_enqueues/vendor/farbtastic.js	(revision 61303)
+++ src/js/_enqueues/vendor/farbtastic.js	(working copy)
@@ -35,20 +35,6 @@
   fb.square = 100;
   fb.width = 194;
 
-  // Fix background PNGs in IE6
-  if (navigator.appVersion.match(/MSIE [0-6]\./)) {
-    $('*', e).each(function () {
-      if (this.currentStyle.backgroundImage != 'none') {
-        var image = this.currentStyle.backgroundImage;
-        image = this.currentStyle.backgroundImage.substring(5, image.length - 2);
-        $(this).css({
-          'backgroundImage': 'none',
-          'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
-        });
-      }
-    });
-  }
-
   /**
    * Link to the given element(s) or callback.
    */
Index: src/js/_enqueues/vendor/thickbox/thickbox.js
===================================================================
--- src/js/_enqueues/vendor/thickbox/thickbox.js	(revision 61303)
+++ src/js/_enqueues/vendor/thickbox/thickbox.js	(working copy)
@@ -44,19 +44,10 @@
 	var $closeBtn;
 
 	try {
-		if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
-			jQuery("body","html").css({height: "100%", width: "100%"});
-			jQuery("html").css("overflow","hidden");
-			if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
-				jQuery("body").append("<iframe id='TB_HideSelect'>"+thickboxL10n.noiframes+"</iframe><div id='TB_overlay'></div><div id='TB_window' class='thickbox-loading'></div>");
-				jQuery("#TB_overlay").on( 'click', tb_remove );
-			}
-		}else{//all others
-			if(document.getElementById("TB_overlay") === null){
-				jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window' class='thickbox-loading'></div>");
-				jQuery("#TB_overlay").on( 'click', tb_remove );
-				jQuery( 'body' ).addClass( 'modal-open' );
-			}
+		if(document.getElementById("TB_overlay") === null){
+			jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window' class='thickbox-loading'></div>");
+			jQuery("#TB_overlay").on( 'click', tb_remove );
+			jQuery( 'body' ).addClass( 'modal-open' );
 		}
 
 		if(tb_detectMacXFF()){
@@ -292,26 +283,19 @@
 function tb_remove() {
  	jQuery("#TB_imageOff").off("click");
 	jQuery("#TB_closeWindowButton").off("click");
-	jQuery( '#TB_window' ).fadeOut( 'fast', function() {
-		jQuery( '#TB_window, #TB_overlay, #TB_HideSelect' ).trigger( 'tb_unload' ).off().remove();
+		jQuery( '#TB_window' ).fadeOut( 'fast', function() {
+		jQuery( '#TB_window, #TB_overlay' ).trigger( 'tb_unload' ).off().remove();
 		jQuery( 'body' ).trigger( 'thickbox:removed' );
 	});
 	jQuery( 'body' ).removeClass( 'modal-open' );
 	jQuery("#TB_load").remove();
-	if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
-		jQuery("body","html").css({height: "auto", width: "auto"});
-		jQuery("html").css("overflow","");
-	}
 	jQuery(document).off('.thickbox');
 	return false;
 }
 
 function tb_position() {
-var isIE6 = typeof document.body.style.maxHeight === "undefined";
 jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
-	if ( ! isIE6 ) { // take away IE6
-		jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
-	}
+	jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
 }
 
 function tb_parseQuery ( query ) {
Index: src/js/_enqueues/vendor/tinymce/skins/wordpress/wp-content.css
===================================================================
--- src/js/_enqueues/vendor/tinymce/skins/wordpress/wp-content.css	(revision 61303)
+++ src/js/_enqueues/vendor/tinymce/skins/wordpress/wp-content.css	(working copy)
@@ -395,11 +395,6 @@
 	overflow-x: hidden;
 }
 
-.ie7 .gallery,
-.ie8 .gallery {
-	margin: auto;
-}
-
 .gallery .gallery-item {
 	float: left;
 	margin: 0;
@@ -410,11 +405,6 @@
 	box-sizing: border-box;
 }
 
-.ie7 .gallery .gallery-item,
-.ie8 .gallery .gallery-item {
-	padding: 6px 0;
-}
-
 .gallery .gallery-caption,
 .gallery .gallery-icon {
 	margin: 0;
@@ -437,11 +427,6 @@
 	width: 33.333%;
 }
 
-.ie8 .gallery-columns-3 .gallery-item,
-.ie7 .gallery-columns-3 .gallery-item {
-	width: 33%;
-}
-
 .gallery-columns-4 .gallery-item {
 	width: 25%;
 }
Index: src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js
===================================================================
--- src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js	(revision 61303)
+++ src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js	(working copy)
@@ -512,15 +512,7 @@
 
 		dom.setAttrib( doc.documentElement, 'lang', editor.getParam( 'wp_lang_attr' ) );
 
-		if ( env.ie ) {
-			if ( parseInt( env.ie, 10 ) === 9 ) {
-				bodyClass.push('ie9');
-			} else if ( parseInt( env.ie, 10 ) === 8 ) {
-				bodyClass.push('ie8');
-			} else if ( env.ie < 8 ) {
-				bodyClass.push('ie7');
-			}
-		} else if ( env.webkit ) {
+		if ( env.webkit ) {
 			bodyClass.push('webkit');
 		}
 
Index: src/js/_enqueues/wp/heartbeat.js
===================================================================
--- src/js/_enqueues/wp/heartbeat.js	(revision 61303)
+++ src/js/_enqueues/wp/heartbeat.js	(working copy)
@@ -181,20 +181,16 @@
 				settings.minimalInterval = settings.minimalInterval * 1000;
 			}
 
-			/*
-			 * Switch the interval to 120 seconds by using the Page Visibility API.
-			 * If the browser doesn't support it (Safari < 7, Android < 4.4, IE < 10), the
-			 * interval will be increased to 120 seconds after 5 minutes of mouse and keyboard
-			 * inactivity.
-			 */
+        /*
+         * Switch the interval to 120 seconds by using the Page Visibility API.
+         * If the browser doesn't support it (Safari < 7, Android < 4.4), the
+         * interval will be increased to 120 seconds after 5 minutes of mouse and keyboard
+         * inactivity.
+         */
 			if ( typeof document.hidden !== 'undefined' ) {
 				hidden = 'hidden';
 				visibilitychange = 'visibilitychange';
 				visibilityState = 'visibilityState';
-			} else if ( typeof document.msHidden !== 'undefined' ) { // IE10.
-				hidden = 'msHidden';
-				visibilitychange = 'msvisibilitychange';
-				visibilityState = 'msVisibilityState';
 			} else if ( typeof document.webkitHidden !== 'undefined' ) { // Android.
 				hidden = 'webkitHidden';
 				visibilitychange = 'webkitvisibilitychange';
Index: src/js/_enqueues/wp/emoji.js
===================================================================
--- src/js/_enqueues/wp/emoji.js	(revision 61303)
+++ src/js/_enqueues/wp/emoji.js	(working copy)
@@ -28,8 +28,7 @@
 		// Private.
 		twemoji, timer,
 		loaded = false,
-		count = 0,
-		ie11 = window.navigator.userAgent.indexOf( 'Trident/7.0' ) > 0;
+		count = 0;
 
 		/**
 		 * Detect if the browser supports SVG.
@@ -126,22 +125,6 @@
 								if ( ! node.parentNode ) {
 									continue;
 								}
-
-								if ( ie11 ) {
-									/*
-									 * IE 11's implementation of MutationObserver is buggy.
-									 * It unnecessarily splits text nodes when it encounters a HTML
-									 * template interpolation symbol ( "{{", for example ). So, we
-									 * join the text nodes back together as a work-around.
-									 *
-									 * Node type 3 is a TEXT_NODE.
-									 */
-									while( node.nextSibling && 3 === node.nextSibling.nodeType ) {
-										node.nodeValue = node.nodeValue + node.nextSibling.nodeValue;
-										node.parentNode.removeChild( node.nextSibling );
-									}
-								}
-
 								node = node.parentNode;
 							}
 
Index: src/js/_enqueues/wp/dashboard.js
===================================================================
--- src/js/_enqueues/wp/dashboard.js	(revision 61303)
+++ src/js/_enqueues/wp/dashboard.js	(working copy)
@@ -199,11 +199,6 @@
 	 * @return {void}
 	 */
 	function autoResizeTextarea() {
-		// When IE8 or older is used to render this document, exit.
-		if ( document.documentMode && document.documentMode < 9 ) {
-			return;
-		}
-
 		// Add a hidden div. We'll copy over the text from the textarea to measure its height.
 		$('body').append( '<div class="quick-draft-textarea-clone" style="display: none;"></div>' );
 
@@ -233,8 +228,7 @@
 			'display': 'none'
 		});
 
-		// The 'propertychange' is used in IE < 9.
-		editor.on('focus input propertychange', function() {
+		editor.on('focus input', function() {
 			var $this = $(this),
 				// Add a non-breaking space to ensure that the height of a trailing newline is
 				// included.
@@ -422,7 +416,7 @@
 
 			requestParams          = requestParams || {};
 			requestParams._wpnonce = communityEventsData.nonce;
-			requestParams.timezone = window.Intl ? window.Intl.DateTimeFormat().resolvedOptions().timeZone : '';
+			requestParams.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
 
 			initiatedBy = requestParams.location ? 'user' : 'app';
 
@@ -675,41 +669,10 @@
 			 * Prefer a name like `Europe/Helsinki`, since that automatically tracks daylight savings. This
 			 * doesn't need to take `startTimestamp` into account for that reason.
 			 */
-			var timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
-
-			/*
-			 * Fall back to an offset for IE11, which declares the property but doesn't assign a value.
-			 */
-			if ( 'undefined' === typeof timeZone ) {
-				/*
-				 * It's important to use the _event_ time, not the _current_
-				 * time, so that daylight savings time is accounted for.
-				 */
-				timeZone = app.getFlippedTimeZoneOffset( startTimestamp );
-			}
-
-			return timeZone;
+			return Intl.DateTimeFormat().resolvedOptions().timeZone;
 		},
 
 		/**
-		 * Get intuitive time zone offset.
-		 *
-		 * `Data.prototype.getTimezoneOffset()` returns a positive value for time zones
-		 * that are _behind_ UTC, and a _negative_ value for ones that are ahead.
-		 *
-		 * See https://stackoverflow.com/questions/21102435/why-does-javascript-date-gettimezoneoffset-consider-0500-as-a-positive-off.
-		 *
-		 * @since 5.5.2
-		 *
-		 * @param {number} startTimestamp
-		 *
-		 * @returns {number}
-		 */
-		getFlippedTimeZoneOffset: function( startTimestamp ) {
-			return new Date( startTimestamp ).getTimezoneOffset() * -1;
-		},
-
-		/**
 		 * Get a short time zone name, like `PST`.
 		 *
 		 * @since 5.5.2
@@ -736,18 +699,6 @@
 				timeZoneAbbreviation = shortTimeStringParts[2];
 			}
 
-			if ( 'undefined' === typeof timeZoneAbbreviation ) {
-				/*
-				 * It's important to use the _event_ time, not the _current_
-				 * time, so that daylight savings time is accounted for.
-				 */
-				var timeZoneOffset = app.getFlippedTimeZoneOffset( startTimestamp ),
-					sign = -1 === Math.sign( timeZoneOffset ) ? '' : '+';
-
-				// translators: Used as part of a string like `GMT+5` in the Events Widget.
-				timeZoneAbbreviation = _x( 'GMT', 'Events widget offset prefix' ) + sign + ( timeZoneOffset / 60 );
-			}
-
 			return timeZoneAbbreviation;
 		},
 
Index: src/js/_enqueues/wp/customize/controls.js
===================================================================
--- src/js/_enqueues/wp/customize/controls.js	(revision 61303)
+++ src/js/_enqueues/wp/customize/controls.js	(working copy)
@@ -8115,11 +8115,6 @@
 			populateChangesetUuidParam = function( isIncluded ) {
 				var urlParser, queryParams;
 
-				// Abort on IE9 which doesn't support history management.
-				if ( ! history.replaceState ) {
-					return;
-				}
-
 				urlParser = document.createElement( 'a' );
 				urlParser.href = location.href;
 				queryParams = api.utils.parseQueryString( urlParser.search.substr( 1 ) );
Index: src/wp-admin/css/forms.css
===================================================================
--- src/wp-admin/css/forms.css	(revision 61303)
+++ src/wp-admin/css/forms.css	(working copy)
@@ -362,30 +362,7 @@
 	text-shadow: 0 0 0 #0a4b78;
 }
 
-/* Remove background focus style from IE11 while keeping focus style available on option elements. */
-.wp-core-ui select::-ms-value {
-	background: transparent;
-	color: #50575e;
-}
 
-.wp-core-ui select:hover::-ms-value {
-	color: #2271b1;
-}
-
-.wp-core-ui select:focus::-ms-value {
-	color: #0a4b78;
-}
-
-.wp-core-ui select.disabled::-ms-value,
-.wp-core-ui select:disabled::-ms-value {
-	color: #a7aaad;
-}
-
-/* Hide the native down arrow for select element on IE. */
-.wp-core-ui select::-ms-expand {
-	display: none;
-}
-
 .wp-admin .button-cancel {
 	display: inline-block;
 	min-height: 28px;
@@ -695,20 +672,11 @@
 	min-height: 30px;
 }
 
-/* Hide the Edge "reveal password" native button */
-.wp-pwd input::-ms-reveal {
-	display: none;
-}
-
 #pass1-text,
 .show-password #pass1 {
 	display: none;
 }
 
-#pass1-text::-ms-clear {
-	display: none;
-}
-
 .show-password #pass1-text {
 	display: inline-block;
 }
Index: src/wp-content/themes/twentynineteen/js/touch-keyboard-navigation.js
===================================================================
--- src/wp-content/themes/twentynineteen/js/touch-keyboard-navigation.js	(revision 61303)
+++ src/wp-content/themes/twentynineteen/js/touch-keyboard-navigation.js	(working copy)
@@ -43,43 +43,6 @@
 	}
 
 	/**
-	 * Adds class to an element.
-	 *
-	 * @param {Object} el
-	 * @param {string} cls
-	 */
-	function addClass(el, cls) {
-		if ( ! el.className.match( '(?:^|\\s)' + cls + '(?!\\S)') ) {
-			el.className += ' ' + cls;
-		}
-	}
-
-	/**
-	 * Deletes class from an element.
-	 *
-	 * @param {Object} el
-	 * @param {string} cls
-	 */
-	function deleteClass(el, cls) {
-		el.className = el.className.replace( new RegExp( '(?:^|\\s)' + cls + '(?!\\S)' ),'' );
-	}
-
-	/**
-	 * Determines whether an element has the given class.
-	 *
-	 * @param {Object} el
-	 * @param {string} cls
-	 *
-	 * @returns {boolean} Has class
-	 */
-	function hasClass(el, cls) {
-
-		if ( el.className.match( '(?:^|\\s)' + cls + '(?!\\S)' ) ) {
-			return true;
-		}
-	}
-
-	/**
 	 * Toggles Aria Expanded state for screenreaders.
 	 *
 	 * @param {Object} ariaItem
@@ -107,9 +70,10 @@
 		'use strict';
 
 		// Update classes.
-		// classList.add is not supported in IE11.
-		currentSubMenu.parentElement.className += ' off-canvas';
-		currentSubMenu.parentElement.lastElementChild.className += ' expanded-true';
+		currentSubMenu.parentElement.classList.add( 'off-canvas' );
+		if ( currentSubMenu.parentElement.lastElementChild ) {
+			currentSubMenu.parentElement.lastElementChild.classList.add( 'expanded-true' );
+		}
 
 		// Update aria-expanded state.
 		toggleAriaExpandedState( currentSubMenu );
@@ -131,9 +95,10 @@
 		if ( getCurrentParent( currentSubMenu, 'ul' ).classList.contains( 'sub-menu' ) ) {
 
 			// Update classes.
-			// classList.remove is not supported in IE11.
-			menuItem.className = menuItem.className.replace( 'off-canvas', '' );
-			subMenu.className  = subMenu.className.replace( 'expanded-true', '' );
+			menuItem.classList.remove( 'off-canvas' );
+			if ( subMenu ) {
+				subMenu.classList.remove( 'expanded-true' );
+			}
 
 			// Update aria-expanded and :focus states.
 			toggleAriaExpandedState( menuItemAria );
@@ -142,9 +107,10 @@
 		} else {
 
 			// Update classes.
-			// classList.remove is not supported in IE11.
-			menuItem.className = menuItem.className.replace( 'off-canvas', '' );
-			menuItem.lastElementChild.className = menuItem.lastElementChild.className.replace( 'expanded-true', '' );
+			menuItem.classList.remove( 'off-canvas' );
+			if ( menuItem.lastElementChild ) {
+				menuItem.lastElementChild.classList.remove( 'expanded-true' );
+			}
 
 			// Update aria-expanded and :focus states.
 			toggleAriaExpandedState( menuItemAria );
@@ -197,18 +163,11 @@
 		}
 
 		for ( o = 0; o < getFocusedClassElements.length; o++) {
-			deleteClass( getFocusedClassElements[o], 'is-focused' );
+			getFocusedClassElements[o].classList.remove( 'is-focused' );
 		}
 	}
 
 	/**
-	 * Matches polyfill for IE11.
-	 */
-	if (!Element.prototype.matches) {
-		Element.prototype.matches = Element.prototype.msMatchesSelector;
-	}
-
-	/**
 	 * Toggles `focus` class to allow sub-menu access on touch screens.
 	 */
 	function toggleSubmenuDisplay() {
@@ -252,7 +211,7 @@
 
 			var mainNav = getCurrentParent( event.target, '.main-navigation' );
 
-			if ( null != mainNav && hasClass( mainNav, '.main-navigation' ) ) {
+			if ( null != mainNav ) {
 				// Prevent default mouse events.
 				event.preventDefault();
 
@@ -284,23 +243,23 @@
 				var prevLi            = getCurrentParent( event.target, '.main-navigation > div > ul > li', '.main-navigation' ).previousElementSibling;
 				var nextLi            = getCurrentParent( event.target, '.main-navigation > div > ul > li', '.main-navigation' ).nextElementSibling;
 
-				if ( null !== focusedElement && null !== hasClass( focusedElement, focusedClass ) ) {
-					deleteClass( focusedElement, focusedClass );
+				if ( null !== focusedElement && focusedElement.classList.contains( focusedClass ) ) {
+					focusedElement.classList.remove( focusedClass );
 				}
 
 				// Add .is-focused class to top-level li.
 				if ( getCurrentParent( event.target, '.main-navigation > div > ul > li', '.main-navigation' ) ) {
-					addClass( getCurrentParent( event.target, '.main-navigation > div > ul > li', '.main-navigation' ), focusedClass );
+					getCurrentParent( event.target, '.main-navigation > div > ul > li', '.main-navigation' ).classList.add( focusedClass );
 				}
 
 				// Check for previous li.
-				if ( prevLi && hasClass( prevLi, focusedClass ) ) {
-					deleteClass( prevLi, focusedClass );
+				if ( prevLi && prevLi.classList.contains( focusedClass ) ) {
+					prevLi.classList.remove( focusedClass );
 				}
 
 				// Check for next li.
-				if ( nextLi && hasClass( nextLi, focusedClass ) ) {
-					deleteClass( nextLi, focusedClass );
+				if ( nextLi && nextLi.classList.contains( focusedClass ) ) {
+					nextLi.classList.remove( focusedClass );
 				}
 			}
 
Index: src/wp-content/themes/twentynineteen/js/priority-menu.js
===================================================================
--- src/wp-content/themes/twentynineteen/js/priority-menu.js	(revision 61303)
+++ src/wp-content/themes/twentynineteen/js/priority-menu.js	(working copy)
@@ -56,8 +56,7 @@
 	 * @param {Element} element
 	 */
 	function showButton(element) {
-		// classList.remove is not supported in IE11.
-		element.className = element.className.replace('is-empty', '');
+		element.classList.remove( 'is-empty' );
 	}
 
 	/**
@@ -66,10 +65,7 @@
 	 * @param {Element} element
 	 */
 	function hideButton(element) {
-		// classList.add is not supported in IE11.
-		if (!element.classList.contains('is-empty')) {
-			element.className += ' is-empty';
-		}
+		element.classList.add( 'is-empty' );
 	}
 
 	/**
Index: src/wp-content/themes/twentytwentyone/functions.php
===================================================================
--- src/wp-content/themes/twentytwentyone/functions.php	(revision 61303)
+++ src/wp-content/themes/twentytwentyone/functions.php	(working copy)
@@ -391,22 +391,10 @@
  *
  * @since Twenty Twenty-One 1.0
  *
- * @global bool       $is_IE
- * @global WP_Scripts $wp_scripts
- *
  * @return void
  */
 function twenty_twenty_one_scripts() {
-	// Note, the is_IE global variable is defined by WordPress and is used
-	// to detect if the current browser is internet explorer.
-	global $is_IE, $wp_scripts;
-	if ( $is_IE ) {
-		// If IE 11 or below, use a flattened stylesheet with static values replacing CSS Variables.
-		wp_enqueue_style( 'twenty-twenty-one-style', get_template_directory_uri() . '/assets/css/ie.css', array(), wp_get_theme()->get( 'Version' ) );
-	} else {
-		// If not IE, use the standard stylesheet.
-		wp_enqueue_style( 'twenty-twenty-one-style', get_template_directory_uri() . '/style.css', array(), wp_get_theme()->get( 'Version' ) );
-	}
+	wp_enqueue_style( 'twenty-twenty-one-style', get_template_directory_uri() . '/style.css', array(), wp_get_theme()->get( 'Version' ) );
 
 	// RTL styles.
 	wp_style_add_data( 'twenty-twenty-one-style', 'rtl', 'replace' );
@@ -419,39 +407,12 @@
 		wp_enqueue_script( 'comment-reply' );
 	}
 
-	// Register the IE11 polyfill file.
-	wp_register_script(
-		'twenty-twenty-one-ie11-polyfills-asset',
-		get_template_directory_uri() . '/assets/js/polyfills.js',
-		array(),
-		wp_get_theme()->get( 'Version' ),
-		array( 'in_footer' => true )
-	);
-
-	// Register the IE11 polyfill loader.
-	wp_register_script(
-		'twenty-twenty-one-ie11-polyfills',
-		null,
-		array(),
-		wp_get_theme()->get( 'Version' ),
-		array( 'in_footer' => true )
-	);
-	wp_add_inline_script(
-		'twenty-twenty-one-ie11-polyfills',
-		wp_get_script_polyfill(
-			$wp_scripts,
-			array(
-				'Element.prototype.matches && Element.prototype.closest && window.NodeList && NodeList.prototype.forEach' => 'twenty-twenty-one-ie11-polyfills-asset',
-			)
-		)
-	);
-
 	// Main navigation scripts.
 	if ( has_nav_menu( 'primary' ) ) {
 		wp_enqueue_script(
 			'twenty-twenty-one-primary-navigation-script',
 			get_template_directory_uri() . '/assets/js/primary-navigation.js',
-			array( 'twenty-twenty-one-ie11-polyfills' ),
+			array(),
 			wp_get_theme()->get( 'Version' ),
 			array(
 				'in_footer' => false, // Because involves header.
@@ -464,7 +425,7 @@
 	wp_enqueue_script(
 		'twenty-twenty-one-responsive-embeds-script',
 		get_template_directory_uri() . '/assets/js/responsive-embeds.js',
-		array( 'twenty-twenty-one-ie11-polyfills' ),
+		array(),
 		wp_get_theme()->get( 'Version' ),
 		array( 'in_footer' => true )
 	);
Index: src/wp-content/themes/twentytwentyone/assets/js/polyfills.js
===================================================================
--- src/wp-content/themes/twentytwentyone/assets/js/polyfills.js	(revision 61303)
+++ src/wp-content/themes/twentytwentyone/assets/js/polyfills.js	(working copy)
@@ -1,46 +0,0 @@
-/**
- * File polyfills.js.
- *
- * Polyfills for IE11.
- */
-
-/**
- * Polyfill for Element.closest() because we need to support IE11.
- *
- * @since Twenty Twenty-One 1.0
- *
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
- */
-if ( ! Element.prototype.matches ) {
-	Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
-}
-
-if ( ! Element.prototype.closest ) {
-	Element.prototype.closest = function( s ) {
-		var el = this;
-		do {
-			if ( Element.prototype.matches.call( el, s ) ) {
-				return el;
-			}
-			el = el.parentElement || el.parentNode;
-		} while ( el !== null && el.nodeType === 1 );
-		return null;
-	};
-}
-
-/**
- * Polyfill for NodeList.foreach() because we need to support IE11.
- *
- * @since Twenty Twenty-One 1.0
- *
- * @see https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
- */
-if ( window.NodeList && ! NodeList.prototype.forEach ) {
-	NodeList.prototype.forEach = function( callback, thisArg ) {
-		var i;
-		thisArg = thisArg || window;
-		for ( i = 0; i < this.length; i++ ) {
-			callback.call( thisArg, this[i], i, this );
-		}
-	};
-}
