diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/exec.js b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/exec.js index 8aab88eb1f1c..94c494288535 100644 --- a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/exec.js +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/exec.js @@ -21,6 +21,9 @@ const x = (n) => do { } { break; "l" } case 7: + { a: "m" } + break; + case 8: } } @@ -31,4 +34,5 @@ expect(x(3)).toBeUndefined() expect(x(4)).toBe("g") expect(x(5)).toBe("j") expect(x(6)).toBe("k") -expect(x(7)).toBeUndefined() +expect(x(7)).toBe("m") +expect(x(8)).toBeUndefined() diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/input.js b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/input.js index 9d82b9b49fdd..74e16ce2322f 100644 --- a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/input.js +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/input.js @@ -21,5 +21,8 @@ const x = (n) => do { } { break; "l" } case 7: + { a: "m" } + break; + case 8: } } diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/output.js b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/output.js index 62ffb4ad7b84..de89715f4fbf 100644 --- a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/output.js +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expression-switch-case/nested-break-block/output.js @@ -62,5 +62,10 @@ const x = n => function () { } case 7: + { + a: return "m"; + } + + case 8: } }(); diff --git a/packages/babel-traverse/src/path/family.ts b/packages/babel-traverse/src/path/family.ts index cff90fe350ce..2c98a500bfa2 100644 --- a/packages/babel-traverse/src/path/family.ts +++ b/packages/babel-traverse/src/path/family.ts @@ -210,7 +210,12 @@ function _getCompletionRecords( if (path.isIfStatement()) { records = addCompletionRecords(path.get("consequent"), records, context); records = addCompletionRecords(path.get("alternate"), records, context); - } else if (path.isDoExpression() || path.isFor() || path.isWhile()) { + } else if ( + path.isDoExpression() || + path.isFor() || + path.isWhile() || + path.isLabeledStatement() + ) { // @ts-expect-error(flow->ts): todo records = addCompletionRecords(path.get("body"), records, context); } else if (path.isProgram() || path.isBlockStatement()) {