mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 12:19:15 +00:00
refactor(transformer): logical assignment transform: reduce identifier cloning (#6296)
We already have to look up the reference, so use the `SymbolId` from that reference, rather than looking it up again in `clone_identifier_reference`.
This commit is contained in:
parent
527f7c82ef
commit
ac7a3edf31
1 changed files with 10 additions and 4 deletions
|
|
@ -130,12 +130,18 @@ impl<'a, 'ctx> LogicalAssignmentOperators<'a, 'ctx> {
|
|||
) -> (Expression<'a>, AssignmentTarget<'a>) {
|
||||
let reference = ctx.symbols_mut().get_reference_mut(ident.reference_id().unwrap());
|
||||
*reference.flags_mut() = ReferenceFlags::Read;
|
||||
let symbol_id = reference.symbol_id();
|
||||
let left_expr = ctx.ast.expression_from_identifier_reference(ident.clone());
|
||||
|
||||
let assign_target =
|
||||
AssignmentTarget::from(ctx.ast.simple_assignment_target_from_identifier_reference(
|
||||
ctx.clone_identifier_reference(ident, ReferenceFlags::read_write()),
|
||||
));
|
||||
let ident = ctx.create_reference_id(
|
||||
SPAN,
|
||||
ident.name.clone(),
|
||||
symbol_id,
|
||||
ReferenceFlags::read_write(),
|
||||
);
|
||||
let assign_target = AssignmentTarget::from(
|
||||
ctx.ast.simple_assignment_target_from_identifier_reference(ident),
|
||||
);
|
||||
(left_expr, assign_target)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue