From 0b29b5c2c03023c6cfedb3fc4b7a97415308bfea Mon Sep 17 00:00:00 2001 From: Yosuke Ota Date: Mon, 31 May 2021 21:34:53 +0900 Subject: [PATCH] Add support for d flag of regex literals in parser (#13396) --- packages/babel-parser/src/tokenizer/index.js | 2 +- .../regexp-match-indices/d-flag/input.js | 1 + .../regexp-match-indices/d-flag/output.json | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 packages/babel-parser/test/fixtures/es2022/regexp-match-indices/d-flag/input.js create mode 100644 packages/babel-parser/test/fixtures/es2022/regexp-match-indices/d-flag/output.json diff --git a/packages/babel-parser/src/tokenizer/index.js b/packages/babel-parser/src/tokenizer/index.js index 524d05a694..b29621031f 100644 --- a/packages/babel-parser/src/tokenizer/index.js +++ b/packages/babel-parser/src/tokenizer/index.js @@ -21,7 +21,7 @@ import { import State from "./state"; import type { LookaheadState } from "./state"; -const VALID_REGEX_FLAGS = new Set(["g", "m", "s", "i", "y", "u"]); +const VALID_REGEX_FLAGS = new Set(["g", "m", "s", "i", "y", "u", "d"]); // The following character codes are forbidden from being // an immediate sibling of NumericLiteralSeparator _ diff --git a/packages/babel-parser/test/fixtures/es2022/regexp-match-indices/d-flag/input.js b/packages/babel-parser/test/fixtures/es2022/regexp-match-indices/d-flag/input.js new file mode 100644 index 0000000000..566fb6f0e7 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2022/regexp-match-indices/d-flag/input.js @@ -0,0 +1 @@ +/./d; diff --git a/packages/babel-parser/test/fixtures/es2022/regexp-match-indices/d-flag/output.json b/packages/babel-parser/test/fixtures/es2022/regexp-match-indices/d-flag/output.json new file mode 100644 index 0000000000..09974d1dc0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2022/regexp-match-indices/d-flag/output.json @@ -0,0 +1,26 @@ +{ + "type": "File", + "start":0,"end":5,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":5}}, + "program": { + "type": "Program", + "start":0,"end":5,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":5}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":5,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":5}}, + "expression": { + "type": "RegExpLiteral", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "extra": { + "raw": "/./d" + }, + "pattern": ".", + "flags": "d" + } + } + ], + "directives": [] + } +}