diff --git a/packages/babel-generator/src/index.js b/packages/babel-generator/src/index.js index 33806375ee..bd13bfeea9 100644 --- a/packages/babel-generator/src/index.js +++ b/packages/babel-generator/src/index.js @@ -52,10 +52,7 @@ function normalizeOptions(code, opts): Format { style: " ", base: 0, }, - decoratorsBeforeExport: - opts.decoratorsBeforeExport === undefined - ? true - : opts.decoratorsBeforeExport, + decoratorsBeforeExport: !!opts.decoratorsBeforeExport, }; if (format.minified) { diff --git a/packages/babel-generator/test/fixtures/types/Decorator/output.js b/packages/babel-generator/test/fixtures/types/Decorator/output.js index 1e83cb3d8a..5c526f5f61 100644 --- a/packages/babel-generator/test/fixtures/types/Decorator/output.js +++ b/packages/babel-generator/test/fixtures/types/Decorator/output.js @@ -32,15 +32,15 @@ class Foo { } -@foo -export default class Foo { +export default @foo +class Foo { bar() { class Baz {} } } -@foo -export class Foo { +export @foo +class Foo { bar() { class Baz {} } diff --git a/packages/babel-parser/src/parser/statement.js b/packages/babel-parser/src/parser/statement.js index 0fe94de1be..7bf7f55d07 100644 --- a/packages/babel-parser/src/parser/statement.js +++ b/packages/babel-parser/src/parser/statement.js @@ -263,8 +263,7 @@ export default class StatementParser extends ExpressionParser { this.raise( this.state.start, "Using the export keyword between a decorator and a class is not allowed. " + - "Please use `export @dec class` instead, or set the " + - "'decoratorsBeforeExport' option to true.", + "Please use `export @dec class` instead.", ); } } else if (!this.canHaveLeadingDecorator()) { diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/no-export-decorators-on-class/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/no-export-decorators-on-class/options.json index f428da505e..cb54fc7944 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/no-export-decorators-on-class/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/no-export-decorators-on-class/options.json @@ -1,4 +1,4 @@ { "sourceType": "module", - "throws": "Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead, or set the 'decoratorsBeforeExport' option to true. (2:0)" + "throws": "Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead. (2:0)" } diff --git a/packages/babel-plugin-syntax-decorators/src/index.js b/packages/babel-plugin-syntax-decorators/src/index.js index 8f0c12fbc0..7c2a454c94 100644 --- a/packages/babel-plugin-syntax-decorators/src/index.js +++ b/packages/babel-plugin-syntax-decorators/src/index.js @@ -16,7 +16,7 @@ export default declare((api, options) => { ); } - let { decoratorsBeforeExport } = options; + const { decoratorsBeforeExport } = options; if (decoratorsBeforeExport !== undefined) { if (legacy) { throw new Error( @@ -26,8 +26,6 @@ export default declare((api, options) => { if (typeof decoratorsBeforeExport !== "boolean") { throw new Error("'decoratorsBeforeExport' must be a boolean."); } - } else if (!legacy) { - decoratorsBeforeExport = true; } return { diff --git a/packages/babel-plugin-syntax-decorators/test/index.js b/packages/babel-plugin-syntax-decorators/test/index.js index 79e201fcc2..4ff1679172 100644 --- a/packages/babel-plugin-syntax-decorators/test/index.js +++ b/packages/babel-plugin-syntax-decorators/test/index.js @@ -47,8 +47,8 @@ describe("'decoratorsBeforeExport' option", function() { const AFTER = "export @dec class Foo {}"; // These are skipped - run(BEFORE, undefined, false); - run(AFTER, undefined, true); + run(BEFORE, undefined, true); + run(AFTER, undefined, false); run(BEFORE, true, false); run(AFTER, true, true); run(BEFORE, false, true);