diff --git a/babel.config.js b/babel.config.js index 1746d9728970..1ec169604ab5 100644 --- a/babel.config.js +++ b/babel.config.js @@ -36,6 +36,7 @@ module.exports = function(api) { case "standalone": includeRegeneratorRuntime = true; unambiguousSources.push("packages/babel-runtime/regenerator"); + // fall through case "rollup": convertESM = false; ignoreLib = false; diff --git a/packages/babel-core/src/config/files/module-types.js b/packages/babel-core/src/config/files/module-types.js index f90fb40b516d..2cffeb613d84 100644 --- a/packages/babel-core/src/config/files/module-types.js +++ b/packages/babel-core/src/config/files/module-types.js @@ -21,6 +21,7 @@ export default function* loadCjsOrMjsDefault( } catch (e) { if (e.code !== "ERR_REQUIRE_ESM") throw e; } + // fall through case "mjs": if (yield* isAsync()) { return yield* waitFor(loadMjsDefault(filepath)); diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index 74f78c6047ac..0af61a473bd6 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -1058,7 +1058,7 @@ export default class ExpressionParser extends LValParser { case tt.at: this.parseDecorators(); - + // fall through case tt._class: node = this.startNode(); this.takeDecorators(node); @@ -1111,7 +1111,7 @@ export default class ExpressionParser extends LValParser { return this.finishNode(node, "PipelinePrimaryTopicReference"); } } - + // fall through default: throw this.unexpected(); } diff --git a/packages/babel-parser/src/plugins/flow.js b/packages/babel-parser/src/plugins/flow.js index 29a8c8e69f24..58e78eaf6522 100644 --- a/packages/babel-parser/src/plugins/flow.js +++ b/packages/babel-parser/src/plugins/flow.js @@ -1441,7 +1441,7 @@ export default (superClass: Class): Class => ); } - this.unexpected(); + throw this.unexpected(); case tt.num: return this.parseLiteral( this.state.value, diff --git a/packages/babel-parser/src/tokenizer/index.js b/packages/babel-parser/src/tokenizer/index.js index 8558137f719f..63169b531117 100644 --- a/packages/babel-parser/src/tokenizer/index.js +++ b/packages/babel-parser/src/tokenizer/index.js @@ -332,7 +332,7 @@ export default class Tokenizer extends LocationParser { ) { ++this.state.pos; } - + // fall through case charCodes.lineFeed: case charCodes.lineSeparator: case charCodes.paragraphSeparator: @@ -736,7 +736,7 @@ export default class Tokenizer extends LocationParser { } } // Anything else beginning with a digit is an integer, octal - // number, or float. + // number, or float. (fall through) case charCodes.digit1: case charCodes.digit2: case charCodes.digit3: @@ -1221,6 +1221,7 @@ export default class Tokenizer extends LocationParser { if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) { ++this.state.pos; } + // fall through case charCodes.lineFeed: out += "\n"; break; @@ -1268,9 +1269,11 @@ export default class Tokenizer extends LocationParser { if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) { ++this.state.pos; } + // fall through case charCodes.lineFeed: this.state.lineStart = this.state.pos; ++this.state.curLine; + // fall through case charCodes.lineSeparator: case charCodes.paragraphSeparator: return ""; @@ -1279,6 +1282,7 @@ export default class Tokenizer extends LocationParser { if (inTemplate) { return null; } + // fall through default: if (ch >= charCodes.digit0 && ch <= charCodes.digit7) { const codePos = this.state.pos - 1; diff --git a/packages/babel-types/src/validators/isReferenced.js b/packages/babel-types/src/validators/isReferenced.js index 847738fa4c43..9ae72f9423d2 100644 --- a/packages/babel-types/src/validators/isReferenced.js +++ b/packages/babel-types/src/validators/isReferenced.js @@ -54,16 +54,18 @@ export default function isReferenced( if (parent.params.includes(node)) { return false; } - // Fall-through to next case clause to check whether the node is the method's name. + // fall through // yes: { [NODE]: "" } // no: { NODE: "" } // depends: { NODE } // depends: { key: NODE } + // fall through case "ObjectProperty": // no: class { NODE = value; } // yes: class { [NODE] = value; } // yes: class { key = NODE; } + // fall through case "ClassProperty": case "ClassPrivateProperty": if (parent.key === node) {