Upgrade ESLint

This pulls in version 8, which covers numerous breaking changes. Most
notably, the `CLIEngine` class has been removed, for which we should now
use `ESLint`.

R=jacktfranklin@chromium.org

Bug: none
Change-Id: I3b64600e690f073d4db19fb34539db7200f3b561
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3268298
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
diff --git a/node_modules/eslint/lib/rules/no-loop-func.js b/node_modules/eslint/lib/rules/no-loop-func.js
index 13ebd3e..d1a7868 100644
--- a/node_modules/eslint/lib/rules/no-loop-func.js
+++ b/node_modules/eslint/lib/rules/no-loop-func.js
@@ -154,7 +154,6 @@
 
         docs: {
             description: "disallow function declarations that contain unsafe references inside loop statements",
-            category: "Best Practices",
             recommended: false,
             url: "https://eslint.org/docs/rules/no-loop-func"
         },
@@ -174,7 +173,7 @@
          * - has a loop node in ancestors.
          * - has any references which refers to an unsafe variable.
          * @param {ASTNode} node The AST node to check.
-         * @returns {boolean} Whether or not the node is within a loop.
+         * @returns {void}
          */
         function checkForLoops(node) {
             const loopNode = getContainingLoopNode(node);