diff --git a/packages/babel-core/src/parser/util/missing-plugin-helper.ts b/packages/babel-core/src/parser/util/missing-plugin-helper.ts index 6847a889060d..462bf6d69e81 100644 --- a/packages/babel-core/src/parser/util/missing-plugin-helper.ts +++ b/packages/babel-core/src/parser/util/missing-plugin-helper.ts @@ -106,16 +106,6 @@ const pluginNameMap: Record< url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple", }, }, - regexpUnicodeSets: { - syntax: { - name: "@babel/plugin-syntax-unicode-sets-regex", - url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md", - }, - transform: { - name: "@babel/plugin-proposal-unicode-sets-regex", - url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md", - }, - }, throwExpressions: { syntax: { name: "@babel/plugin-syntax-throw-expressions", @@ -289,6 +279,16 @@ if (!process.env.BABEL_8_BREAKING) { url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object", }, }, + regexpUnicodeSets: { + syntax: { + name: "@babel/plugin-syntax-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md", + }, + transform: { + name: "@babel/plugin-proposal-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md", + }, + }, }); } diff --git a/packages/babel-helper-create-regexp-features-plugin/src/features.ts b/packages/babel-helper-create-regexp-features-plugin/src/features.ts index bcd2a061d297..7d7b5d4f1f0f 100644 --- a/packages/babel-helper-create-regexp-features-plugin/src/features.ts +++ b/packages/babel-helper-create-regexp-features-plugin/src/features.ts @@ -3,6 +3,7 @@ export const FEATURES = Object.freeze({ dotAllFlag: 1 << 1, unicodePropertyEscape: 1 << 2, namedCaptureGroups: 1 << 3, + // Not used, for backward compatibility with syntax-unicode-sets-regex unicodeSetsFlag_syntax: 1 << 4, unicodeSetsFlag: 1 << 5, duplicateNamedCaptureGroups: 1 << 6, diff --git a/packages/babel-helper-create-regexp-features-plugin/src/util.ts b/packages/babel-helper-create-regexp-features-plugin/src/util.ts index 7396baf3219a..94a00cc66365 100644 --- a/packages/babel-helper-create-regexp-features-plugin/src/util.ts +++ b/packages/babel-helper-create-regexp-features-plugin/src/util.ts @@ -33,9 +33,7 @@ export function generateRegexpuOptions( return { unicodeFlag: feat("unicodeFlag"), - unicodeSetsFlag: - feat("unicodeSetsFlag") || - feat("unicodeSetsFlag_syntax", "parse"), + unicodeSetsFlag: feat("unicodeSetsFlag") || "parse", dotAllFlag: feat("dotAllFlag"), unicodePropertyEscapes: feat("unicodePropertyEscape"), namedGroups: feat("namedCaptureGroups") || featDuplicateNamedGroups(), diff --git a/packages/babel-parser/src/tokenizer/index.ts b/packages/babel-parser/src/tokenizer/index.ts index edd0c7649677..8750a3cf808c 100644 --- a/packages/babel-parser/src/tokenizer/index.ts +++ b/packages/babel-parser/src/tokenizer/index.ts @@ -57,7 +57,6 @@ const VALID_REGEX_FLAGS = new Set([ charCodes.lowercaseY, charCodes.lowercaseU, charCodes.lowercaseD, - // This is only valid when using the regexpUnicodeSets plugin charCodes.lowercaseV, ]); @@ -1100,8 +1099,6 @@ export default abstract class Tokenizer extends CommentsParser { // @ts-expect-error VALID_REGEX_FLAGS.has should accept expanded type: number if (VALID_REGEX_FLAGS.has(cp)) { if (cp === charCodes.lowercaseV) { - this.expectPlugin("regexpUnicodeSets", nextPos()); - if (mods.includes("u")) { this.raise(Errors.IncompatibleRegExpUVFlags, { at: nextPos() }); } diff --git a/packages/babel-parser/src/typings.d.ts b/packages/babel-parser/src/typings.d.ts index 3ed4a5c70b59..7eded8ebc8b6 100644 --- a/packages/babel-parser/src/typings.d.ts +++ b/packages/babel-parser/src/typings.d.ts @@ -34,7 +34,7 @@ export type Plugin = | "partialApplication" | "placeholders" | "privateIn" // Enabled by default - | "regexpUnicodeSets" + | "regexpUnicodeSets" // Enabled by default | "throwExpressions" | "topLevelAwait" | "v8intrinsic" diff --git a/packages/babel-parser/test/fixtures/experimental/_no-plugin/regexp-unicode-sets/input.js b/packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/basic/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/_no-plugin/regexp-unicode-sets/input.js rename to packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/basic/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/basic/output.json b/packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/basic/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/basic/output.json rename to packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/basic/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/uv-error/input.js b/packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/uv-error/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/uv-error/input.js rename to packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/uv-error/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/uv-error/output.json b/packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/uv-error/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/uv-error/output.json rename to packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/uv-error/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/vu-error/input.js b/packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/vu-error/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/vu-error/input.js rename to packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/vu-error/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/vu-error/output.json b/packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/vu-error/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/vu-error/output.json rename to packages/babel-parser/test/fixtures/es2024/regexp-unicode-sets/vu-error/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/_no-plugin/regexp-unicode-sets/options.json b/packages/babel-parser/test/fixtures/experimental/_no-plugin/regexp-unicode-sets/options.json deleted file mode 100644 index a9aa871d03c7..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/_no-plugin/regexp-unicode-sets/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "This experimental syntax requires enabling the parser plugin: \"regexpUnicodeSets\". (1:4)" -} diff --git a/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/basic/input.js b/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/basic/input.js deleted file mode 100644 index 04ee6ccf77ed..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/basic/input.js +++ /dev/null @@ -1 +0,0 @@ -/a/v; diff --git a/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/options.json b/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/options.json deleted file mode 100644 index a027295978f0..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/regexp-unicode-sets/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["regexpUnicodeSets"] -} diff --git a/packages/babel-parser/typings/babel-parser.d.ts b/packages/babel-parser/typings/babel-parser.d.ts index d80fff653c30..dc3623bc2d35 100644 --- a/packages/babel-parser/typings/babel-parser.d.ts +++ b/packages/babel-parser/typings/babel-parser.d.ts @@ -38,7 +38,7 @@ type Plugin = | "partialApplication" | "placeholders" | "privateIn" // Enabled by default - | "regexpUnicodeSets" + | "regexpUnicodeSets" // Enabled by default | "throwExpressions" | "topLevelAwait" | "v8intrinsic"