Skip to content

Commit

Permalink
refactor(transformer/logical-assignment-operator): use ctx.clone_iden…
Browse files Browse the repository at this point in the history
…tifier_reference
  • Loading branch information
Dunqing committed Aug 20, 2024
1 parent e927489 commit 744800b
Showing 1 changed file with 9 additions and 16 deletions.
25 changes: 9 additions & 16 deletions crates/oxc_transformer/src/es2021/logical_assignment_operators.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,11 +122,11 @@ impl<'a> Traverse<'a> for LogicalAssignmentOperators<'a> {
match &mut assignment_expr.left {
AssignmentTarget::AssignmentTargetIdentifier(ident) => {
left_expr = ctx.ast.expression_from_identifier_reference(
Self::clone_identifier_reference(ident, ctx),
ctx.clone_identifier_reference(ident, ReferenceFlag::Read),
);
assign_target = AssignmentTarget::from(
ctx.ast.simple_assignment_target_from_identifier_reference(
Self::clone_identifier_reference(ident, ctx),
ctx.clone_identifier_reference(ident, ReferenceFlag::Write),
),
);
}
Expand All @@ -143,7 +143,7 @@ impl<'a> Traverse<'a> for LogicalAssignmentOperators<'a> {
let right = ctx.ast.move_expression(&mut static_expr.object);
let target = AssignmentTarget::from(
ctx.ast.simple_assignment_target_from_identifier_reference(
Self::clone_identifier_reference(&ident, ctx),
ctx.clone_identifier_reference(&ident, ReferenceFlag::Write),
),
);
let object = ctx.ast.expression_assignment(SPAN, op, target, right);
Expand Down Expand Up @@ -185,7 +185,7 @@ impl<'a> Traverse<'a> for LogicalAssignmentOperators<'a> {
let right = ctx.ast.move_expression(&mut computed_expr.object);
let target = AssignmentTarget::from(
ctx.ast.simple_assignment_target_from_identifier_reference(
Self::clone_identifier_reference(&ident, ctx),
ctx.clone_identifier_reference(&ident, ReferenceFlag::Write),
),
);
let object = ctx.ast.expression_assignment(SPAN, op, target, right);
Expand All @@ -199,7 +199,10 @@ impl<'a> Traverse<'a> for LogicalAssignmentOperators<'a> {
if let Some(ref property) = property {
let left = AssignmentTarget::from(
ctx.ast.simple_assignment_target_from_identifier_reference(
Self::clone_identifier_reference(property, ctx),
ctx.clone_identifier_reference(
property,
ReferenceFlag::Write,
),
),
);
expression =
Expand All @@ -211,7 +214,7 @@ impl<'a> Traverse<'a> for LogicalAssignmentOperators<'a> {
AssignmentTarget::from(ctx.ast.member_expression_computed(
SPAN,
ctx.ast.expression_from_identifier_reference(
Self::clone_identifier_reference(&ident, ctx),
ctx.clone_identifier_reference(&ident, ReferenceFlag::Read),
),
property.map_or_else(
|| expression.clone_in(ctx.ast.allocator),
Expand Down Expand Up @@ -274,16 +277,6 @@ impl<'a> Traverse<'a> for LogicalAssignmentOperators<'a> {
}

impl<'a> LogicalAssignmentOperators<'a> {
fn clone_identifier_reference(
ident: &IdentifierReference<'a>,
ctx: &mut TraverseCtx<'a>,
) -> IdentifierReference<'a> {
let reference = ctx.symbols().get_reference(ident.reference_id.get().unwrap());
let symbol_id = reference.symbol_id();
let flag = reference.flag();
ctx.create_reference_id(ident.span, ident.name.clone(), symbol_id, *flag)
}

pub fn maybe_generate_memoised(
&mut self,
expr: &Expression<'a>,
Expand Down

0 comments on commit 744800b

Please sign in to comment.