diff --git a/packages/babel-core/src/parser/util/missing-plugin-helper.js b/packages/babel-core/src/parser/util/missing-plugin-helper.js index 89f6dc91c9..5a5f7082f2 100644 --- a/packages/babel-core/src/parser/util/missing-plugin-helper.js +++ b/packages/babel-core/src/parser/util/missing-plugin-helper.js @@ -129,16 +129,6 @@ const pluginNameMap = { url: "https://git.io/JfeDR", }, }, - logicalAssignment: { - syntax: { - name: "@babel/plugin-syntax-logical-assignment-operators", - url: "https://git.io/vAlBp", - }, - transform: { - name: "@babel/plugin-proposal-logical-assignment-operators", - url: "https://git.io/vAlRe", - }, - }, moduleAttributes: { syntax: { name: "@babel/plugin-syntax-module-attributes", @@ -226,6 +216,16 @@ const pluginNameMap = { url: "https://git.io/vb4yp", }, }, + logicalAssignment: { + syntax: { + name: "@babel/plugin-syntax-logical-assignment-operators", + url: "https://git.io/vAlBp", + }, + transform: { + name: "@babel/plugin-proposal-logical-assignment-operators", + url: "https://git.io/vAlRe", + }, + }, nullishCoalescingOperator: { syntax: { name: "@babel/plugin-syntax-nullish-coalescing-operator", diff --git a/packages/babel-core/test/api.js b/packages/babel-core/test/api.js index 8fb5fc1903..384ed74218 100644 --- a/packages/babel-core/test/api.js +++ b/packages/babel-core/test/api.js @@ -804,10 +804,10 @@ describe("api", function () { options, function (err) { expect(err.message).toMatch( - "Support for the experimental syntax 'logicalAssignment' isn't currently enabled (1:3):", + "Support for the experimental syntax 'doExpressions' isn't currently enabled (1:2):", ); expect(err.message).toMatch( - "Add @babel/plugin-proposal-logical-assignment-operators (https://git.io/vAlRe) to the " + + "Add @babel/plugin-proposal-do-expressions (https://git.io/vb4S3) to the " + "'plugins' section of your Babel config to enable transformation.", ); done(); diff --git a/packages/babel-core/test/fixtures/api/parsing-errors/syntax-and-transform/file.js b/packages/babel-core/test/fixtures/api/parsing-errors/syntax-and-transform/file.js index 0cb4253cd4..9fbdc7e744 100644 --- a/packages/babel-core/test/fixtures/api/parsing-errors/syntax-and-transform/file.js +++ b/packages/babel-core/test/fixtures/api/parsing-errors/syntax-and-transform/file.js @@ -1 +1,3 @@ -a ||= 2; +(do { + x; +}); diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index 1a7c973e09..6bcb866035 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -229,12 +229,6 @@ export default class ExpressionParser extends LValParser { const operator = this.state.value; node.operator = operator; - if (operator === "??=") { - this.expectPlugin("logicalAssignment"); - } - if (operator === "||=" || operator === "&&=") { - this.expectPlugin("logicalAssignment"); - } if (this.match(tt.eq)) { node.left = this.toAssignable(left); refExpressionErrors.doubleProto = -1; // reset because double __proto__ is valid in assignment expression diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/input.js b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/and-and-equals/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/input.js rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/and-and-equals/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/output.json b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/and-and-equals/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/output.json rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/and-and-equals/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/input.js b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/mallet/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/input.js rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/mallet/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/output.json b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/mallet/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/output.json rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/mallet/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/input.js b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/qq-equals/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/input.js rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/qq-equals/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/output.json b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/qq-equals/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/output.json rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/qq-equals/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/options.json deleted file mode 100644 index 5b674fdee4..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": [], - "throws": "This experimental syntax requires enabling the parser plugin: 'logicalAssignment' (1:2)" -} diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/input.js b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/input.js deleted file mode 100644 index 740f1fa926..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/input.js +++ /dev/null @@ -1,2 +0,0 @@ -a &&= b; -obj.a &&= b; diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/options.json deleted file mode 100644 index 5041dbb19f..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["logicalAssignment"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/input.js b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/input.js deleted file mode 100644 index 53c87792bb..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/input.js +++ /dev/null @@ -1 +0,0 @@ -a ||= b; diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/options.json deleted file mode 100644 index 5b674fdee4..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": [], - "throws": "This experimental syntax requires enabling the parser plugin: 'logicalAssignment' (1:2)" -} diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/options.json deleted file mode 100644 index 5041dbb19f..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["logicalAssignment"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/options.json deleted file mode 100644 index 64389a4588..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "This experimental syntax requires enabling the parser plugin: 'logicalAssignment' (1:2)" -} diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/input.js b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/input.js deleted file mode 100644 index dcf876b174..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/input.js +++ /dev/null @@ -1,2 +0,0 @@ -a ??= b; -obj.a ??= b; diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/options.json deleted file mode 100644 index 5041dbb19f..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["logicalAssignment"] -}