Index: src/wp-admin/edit-form-blocks.php
===================================================================
--- src/wp-admin/edit-form-blocks.php	(revision 46288)
+++ src/wp-admin/edit-form-blocks.php	(working copy)
@@ -184,19 +184,23 @@
 
 if ( $editor_styles && current_theme_supports( 'editor-styles' ) ) {
 	foreach ( $editor_styles as $style ) {
-		if ( preg_match( '~^(https?:)?//~', $style ) ) {
-			$response = wp_remote_get( $style );
+		if ( preg_match( '~^(https?:)?//~', $style['file'] ) ) {
+			$style_url = $style['file'];
+			if ( isset( $style['version'] ) && $style['version'] ) {
+				$style_url .= '?ver=' . $style['version'];
+			}
+			$response = wp_remote_get( $style_url );
 			if ( ! is_wp_error( $response ) ) {
 				$styles[] = array(
 					'css' => wp_remote_retrieve_body( $response ),
 				);
 			}
 		} else {
-			$file = get_theme_file_path( $style );
-			if ( is_file( $file ) ) {
+			$file = get_theme_file_path( $style['file'] );
+			if ( is_file( $style['file'] ) ) {
 				$styles[] = array(
-					'css'     => file_get_contents( $file ),
-					'baseURL' => get_theme_file_uri( $style ),
+					'css'     => file_get_contents( $style['file'] ),
+					'baseURL' => get_theme_file_uri( $style['file'] ),
 				);
 			}
 		}
Index: src/wp-includes/theme.php
===================================================================
--- src/wp-includes/theme.php	(revision 46288)
+++ src/wp-includes/theme.php	(working copy)
@@ -1927,26 +1927,47 @@
  * It is a better option to use that class and add any RTL styles to the main stylesheet.
  *
  * @since 3.0.0
+ * @since 5.3.0 Add version support.
  *
  * @global array $editor_styles
  *
- * @param array|string $stylesheet Optional. Stylesheet name or array thereof, relative to theme root.
- *                                 Defaults to 'editor-style.css'
+ * @param array|string $stylesheet Optional. Stylesheet name or array thereof,
+ *                                 relative to theme root. Defaults to
+ *                                 'editor-style.css'
+ * @param array|string $version    Optional. Stylesheet version or array thereof.
+ *                                 The versions will be attach to stylesheets
+ *                                 respectively.
  */
-function add_editor_style( $stylesheet = 'editor-style.css' ) {
+function add_editor_style( $stylesheet = 'editor-style.css', $version = '' ) {
 	global $editor_styles;
 
 	add_theme_support( 'editor-style' );
 
 	$editor_styles = (array) $editor_styles;
 	$stylesheet    = (array) $stylesheet;
+	$version       = (array) $version;
+	$stylesheets   = array();
+
+	for ( $i = 0; $i < count( $stylesheet ); $i++ ) {
+		$stylesheets[ $i ] = array( 'file' => $stylesheet[ $i ] );
+		if ( isset( $version[ $i ] ) && $version[ $i ] ) {
+			$stylesheets[ $i ]['version'] = $version[ $i ];
+		}
+	}
 
 	if ( is_rtl() ) {
 		$rtl_stylesheet = str_replace( '.css', '-rtl.css', $stylesheet[0] );
-		$stylesheet[]   = $rtl_stylesheet;
+		if ( isset( $version[0] ) && $version[0] ) {
+			$stylesheets[] = array(
+				'file'    => $rtl_stylesheet,
+				'version' => $version[0],
+			);
+		} else {
+			$stylesheets[] = array( 'file' => $rtl_stylesheet );
+		}
 	}
 
-	$editor_styles = array_merge( $editor_styles, $stylesheet );
+	$editor_styles = array_merge( $editor_styles, $stylesheets );
 }
 
 /**
@@ -1979,42 +2000,66 @@
  * @return array If registered, a list of editor stylesheet URLs.
  */
 function get_editor_stylesheets() {
-	$stylesheets = array();
-	// load editor_style.css if the current theme supports it
-	if ( ! empty( $GLOBALS['editor_styles'] ) && is_array( $GLOBALS['editor_styles'] ) ) {
-		$editor_styles = $GLOBALS['editor_styles'];
-
-		$editor_styles = array_unique( array_filter( $editor_styles ) );
-		$style_uri     = get_stylesheet_directory_uri();
-		$style_dir     = get_stylesheet_directory();
-
-		// Support externally referenced styles (like, say, fonts).
-		foreach ( $editor_styles as $key => $file ) {
-			if ( preg_match( '~^(https?:)?//~', $file ) ) {
-				$stylesheets[] = esc_url_raw( $file );
-				unset( $editor_styles[ $key ] );
-			}
+	/**
+	 * Return eary if no editor style is found.
+	 *
+	 * @since 5.3.0
+	 */
+	if (
+		empty( $GLOBALS['editor_styles'] )
+		|| ! is_array( $GLOBALS['editor_styles'] )
+	) {
+		return apply_filters( 'editor_stylesheets', array() );
+	}
+
+	$stylesheets   = array();
+	$editor_styles = $GLOBALS['editor_styles'];
+
+	$editor_styles = array_filter(
+		$editor_styles,
+		function( $item ) {
+			return ! ! strpos( $item['file'], '.css' );
 		}
+	);
+	$style_uri     = get_stylesheet_directory_uri();
+	$style_dir     = get_stylesheet_directory();
 
-		// Look in a parent theme first, that way child theme CSS overrides.
-		if ( is_child_theme() ) {
-			$template_uri = get_template_directory_uri();
-			$template_dir = get_template_directory();
-
-			foreach ( $editor_styles as $key => $file ) {
-				if ( $file && file_exists( "$template_dir/$file" ) ) {
-					$stylesheets[] = "$template_uri/$file";
-				}
-			}
+	// Support externally referenced styles (like, say, fonts).
+	foreach ( $editor_styles as $key => $file ) {
+		if ( preg_match( '~^(https?:)?//~', $file ) ) {
+			$stylesheets[] = esc_url_raw( $file );
+			unset( $editor_styles[ $key ] );
 		}
+	}
 
-		foreach ( $editor_styles as $file ) {
-			if ( $file && file_exists( "$style_dir/$file" ) ) {
-				$stylesheets[] = "$style_uri/$file";
+	// Look in a parent theme first, that way child theme CSS overrides.
+	if ( is_child_theme() ) {
+		$template_uri = get_template_directory_uri();
+		$template_dir = get_template_directory();
+
+		foreach ( $editor_styles as $key => $style ) {
+			if ( ! file_exists( $template_dir . '/' . $style['file'] ) ) {
+				continue;
+			}
+			if ( isset( $style['version'] ) && $style['version'] ) {
+				$stylesheets[] = $template_uri . '/' . $style['file'] . '?ver=' . $style['version'];
+			} else {
+				$stylesheets[] = $template_uri . '/' . $style['file'];
 			}
 		}
 	}
 
+	foreach ( $editor_styles as $key => $style ) {
+		if ( ! file_exists( $style_dir . '/' . $style['file'] ) ) {
+			continue;
+		}
+		if ( isset( $style['version'] ) && $style['version'] ) {
+			$stylesheets[] = $style_uri . '/' . $style['file'] . '?ver=' . $style['version'];
+		} else {
+			$stylesheets[] = $style_uri . '/' . $style['file'];
+		}
+	}
+
 	/**
 	 * Filters the array of stylesheets applied to the editor.
 	 *
