refactor(transformer): RegExp transform unbox early (#5504)

Unbox the `RegExpLiteral` early to avoid all lookups thereafter going through the indirection of a `Box`.
This commit is contained in:
overlookmotel 2024-09-06 11:51:37 +00:00
parent d1ece197c4
commit fad0a0548b

View file

@ -113,9 +113,10 @@ impl<'a> Traverse<'a> for RegExp<'a> {
expr: &mut Expression<'a>, expr: &mut Expression<'a>,
ctx: &mut oxc_traverse::TraverseCtx<'a>, ctx: &mut oxc_traverse::TraverseCtx<'a>,
) { ) {
let Expression::RegExpLiteral(ref mut regexp) = expr else { let Expression::RegExpLiteral(regexp) = expr else {
return; return;
}; };
let regexp = regexp.as_mut();
let flags = regexp.regex.flags; let flags = regexp.regex.flags;
let has_unsupported_flags = flags.intersects(self.unsupported_flags); let has_unsupported_flags = flags.intersects(self.unsupported_flags);