Update ESLint to 7.19.0

DISABLE_THIRD_PARTY_CHECK=NPM update
R=jacktfranklin@chromium.org

Bug: none
Change-Id: I6bc8fd7e6f416ceae5e849ba3c4061887b940f07
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2692306
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
diff --git a/node_modules/eslint/lib/rules/prefer-const.js b/node_modules/eslint/lib/rules/prefer-const.js
index 439a4db..f6e79e7 100644
--- a/node_modules/eslint/lib/rules/prefer-const.js
+++ b/node_modules/eslint/lib/rules/prefer-const.js
@@ -5,6 +5,11 @@
 
 "use strict";
 
+//------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const FixTracker = require("./utils/fix-tracker");
 const astUtils = require("./utils/ast-utils");
 
 //------------------------------------------------------------------------------
@@ -451,10 +456,18 @@
                         messageId: "useConst",
                         data: node,
                         fix: shouldFix
-                            ? fixer => fixer.replaceText(
-                                sourceCode.getFirstToken(varDeclParent, t => t.value === varDeclParent.kind),
-                                "const"
-                            )
+                            ? fixer => {
+                                const letKeywordToken = sourceCode.getFirstToken(varDeclParent, t => t.value === varDeclParent.kind);
+
+                                /**
+                                 * Extend the replacement range to the whole declaration,
+                                 * in order to prevent other fixes in the same pass
+                                 * https://github.com/eslint/eslint/issues/13899
+                                 */
+                                return new FixTracker(fixer, sourceCode)
+                                    .retainRange(varDeclParent.range)
+                                    .replaceTextRange(letKeywordToken.range, "const");
+                            }
                             : null
                     });
                 });