Skip to content

Commit d757c6b

Browse files
committed
fix(lexer): fix wrong error when using regex flag s together with m or y
closes #202
1 parent 6a386a2 commit d757c6b

2 files changed

Lines changed: 14 additions & 7 deletions

File tree

src/lexer/regexp.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@ export function scanRegularExpression(parser: ParserState, context: Context): To
5959
const bodyEnd = parser.index - 1;
6060

6161
const enum RegexFlags {
62-
Empty = 0b00000,
63-
IgnoreCase = 0b00001,
64-
Global = 0b00010,
65-
Multiline = 0b00100,
66-
Unicode = 0b10000,
67-
Sticky = 0b01000,
68-
DotAll = 0b1100
62+
Empty = 0b000000,
63+
IgnoreCase = 0b000001,
64+
Global = 0b000010,
65+
Multiline = 0b000100,
66+
Unicode = 0b010000,
67+
Sticky = 0b001000,
68+
DotAll = 0b100000
6969
}
7070

7171
let mask = RegexFlags.Empty;

test/lexer/regexp.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,13 @@ describe('Lexer - Regular expressions', () => {
133133
[Context.AllowRegExp, '/a(?!b(?!c)d)e/', 'a(?!b(?!c)d)e', ''],
134134
[Context.AllowRegExp, '/[^a-z]{4}/', '[^a-z]{4}', ''],
135135
[Context.AllowRegExp, '/1?1/mig', '1?1', 'mig'],
136+
[Context.AllowRegExp, '/.*/sm', '.*', 'sm'],
137+
[Context.AllowRegExp, '/.*/ms', '.*', 'ms'],
138+
[Context.AllowRegExp, '/.*/sy', '.*', 'sy'],
139+
[Context.AllowRegExp, '/.*/ys', '.*', 'ys'],
140+
[Context.AllowRegExp, '/.*/s', '.*', 's'],
141+
[Context.AllowRegExp, '/.*/m', '.*', 'm'],
142+
[Context.AllowRegExp, '/.*/y', '.*', 'y'],
136143
[Context.AllowRegExp, '/\\%([0-9]*)\\[(\\^)?(\\]?[^\\]]*)\\]/', '\\%([0-9]*)\\[(\\^)?(\\]?[^\\]]*)\\]', '']
137144
];
138145

0 commit comments

Comments
 (0)