diff options
-rw-r--r-- | src/js_ast.zig | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/js_ast.zig b/src/js_ast.zig index f3d941251..452f6044c 100644 --- a/src/js_ast.zig +++ b/src/js_ast.zig @@ -1853,11 +1853,21 @@ pub const E = struct { var pat = this.pattern(); while (pat.len > 0) { const start = strings.indexOfChar(pat, '?') orelse return false; - if (start == 0) return false; + if (start == 0) { + pat = pat[1..]; + continue; + } const l_paren = pat[start - 1]; - if (l_paren != '(' or pat.len < start + 1) return false; + if (start > 1 and pat[start - 2] == '\\') { + pat = pat[start..]; + continue; + } + if (l_paren != '(' or pat.len < start + 1) { + pat = pat[start..]; + continue; + } const op = pat[start + 1]; - if (op == '<' or op == '=' or op == '!') { + if (op == '<') { return true; } pat = pat[start + 1 ..]; |