diff --git a/src/lexer/regexp.ts b/src/lexer/regexp.ts index 4a48d504..394099f3 100644 --- a/src/lexer/regexp.ts +++ b/src/lexer/regexp.ts @@ -59,13 +59,13 @@ export function scanRegularExpression(parser: ParserState, context: Context): To const bodyEnd = parser.index - 1; const enum RegexFlags { - Empty = 0b00000, - IgnoreCase = 0b00001, - Global = 0b00010, - Multiline = 0b00100, - Unicode = 0b10000, - Sticky = 0b01000, - DotAll = 0b1100 + Empty = 0b000000, + IgnoreCase = 0b000001, + Global = 0b000010, + Multiline = 0b000100, + Unicode = 0b010000, + Sticky = 0b001000, + DotAll = 0b100000 } let mask = RegexFlags.Empty; diff --git a/test/lexer/regexp.ts b/test/lexer/regexp.ts index 80b4ed5b..34e24e5f 100644 --- a/test/lexer/regexp.ts +++ b/test/lexer/regexp.ts @@ -133,6 +133,13 @@ describe('Lexer - Regular expressions', () => { [Context.AllowRegExp, '/a(?!b(?!c)d)e/', 'a(?!b(?!c)d)e', ''], [Context.AllowRegExp, '/[^a-z]{4}/', '[^a-z]{4}', ''], [Context.AllowRegExp, '/1?1/mig', '1?1', 'mig'], + [Context.AllowRegExp, '/.*/sm', '.*', 'sm'], + [Context.AllowRegExp, '/.*/ms', '.*', 'ms'], + [Context.AllowRegExp, '/.*/sy', '.*', 'sy'], + [Context.AllowRegExp, '/.*/ys', '.*', 'ys'], + [Context.AllowRegExp, '/.*/s', '.*', 's'], + [Context.AllowRegExp, '/.*/m', '.*', 'm'], + [Context.AllowRegExp, '/.*/y', '.*', 'y'], [Context.AllowRegExp, '/\\%([0-9]*)\\[(\\^)?(\\]?[^\\]]*)\\]/', '\\%([0-9]*)\\[(\\^)?(\\]?[^\\]]*)\\]', ''] ];