diff --git a/lib/rules/no-debugger.js b/lib/rules/no-debugger.js index a158724fef1..d79cb181667 100644 --- a/lib/rules/no-debugger.js +++ b/lib/rules/no-debugger.js @@ -5,6 +5,8 @@ "use strict"; +const astUtils = require("../ast-utils"); + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -28,7 +30,10 @@ module.exports = { node, message: "Unexpected 'debugger' statement.", fix(fixer) { - return fixer.remove(node); + if (astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type)) { + return fixer.remove(node); + } + return null; } }); } diff --git a/tests/lib/rules/no-debugger.js b/tests/lib/rules/no-debugger.js index a907405c8ef..9edf059c41e 100644 --- a/tests/lib/rules/no-debugger.js +++ b/tests/lib/rules/no-debugger.js @@ -23,6 +23,15 @@ ruleTester.run("no-debugger", rule, { "var test = { debugger: 1 }; test.debugger;" ], invalid: [ - { code: "debugger", errors: [{ message: "Unexpected 'debugger' statement.", type: "DebuggerStatement" }], output: "" } + { + code: "debugger", + output: "", + errors: [{ message: "Unexpected 'debugger' statement.", type: "DebuggerStatement" }] + }, + { + code: "if (foo) debugger", + output: null, + errors: [{ message: "Unexpected 'debugger' statement.", type: "DebuggerStatement" }] + } ] });