Skip to content

Commit 1925ddc

Browse files
committed
refactor(transformer): rename VarDeclarationsStore methods (#7682)
Follow-on after #7668. Rename `create_var*` methods to `create_uid_var*`. Previous method name `create_var` might suggest that it creates a binding with the provided name. But actually it creates a UID with name *based on* the name provided.
1 parent 583b36b commit 1925ddc

6 files changed

Lines changed: 26 additions & 24 deletions

File tree

crates/oxc_transformer/src/common/var_declarations.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,20 +107,20 @@ impl<'a> VarDeclarationsStore<'a> {
107107
self.insert_var_binding_pattern(pattern, Some(init), ctx);
108108
}
109109

110-
/// Create a new [`BoundIdentifier`], add a var declaration to be inserted at the top of
111-
/// the current enclosing statement block, and then return the [`BoundIdentifier`].
110+
/// Create a new UID based on `name`, add a `var` declaration to be inserted at the top of
111+
/// the current enclosing statement block, and return the [`BoundIdentifier`].
112112
#[inline]
113-
pub fn create_var(&self, name: &str, ctx: &mut TraverseCtx<'a>) -> BoundIdentifier<'a> {
113+
pub fn create_uid_var(&self, name: &str, ctx: &mut TraverseCtx<'a>) -> BoundIdentifier<'a> {
114114
let binding = ctx.generate_uid_in_current_hoist_scope(name);
115115
self.insert_var(&binding, ctx);
116116
binding
117117
}
118118

119-
/// Create a new [`BoundIdentifier`], add a var declaration with the given init expression
120-
/// to be inserted at the top of the current enclosing statement block, and then return
121-
/// the [`BoundIdentifier`].
119+
/// Create a new UID based on `name`, add a `var` declaration with the given init expression
120+
/// to be inserted at the top of the current enclosing statement block, and return the
121+
/// [`BoundIdentifier`].
122122
#[inline]
123-
pub fn create_var_with_init(
123+
pub fn create_uid_var_with_init(
124124
&self,
125125
name: &str,
126126
expression: Expression<'a>,
@@ -131,10 +131,10 @@ impl<'a> VarDeclarationsStore<'a> {
131131
binding
132132
}
133133

134-
/// Create a new [`BoundIdentifier`] based on node, add a var declaration to be inserted
135-
/// at the top of the current enclosing statement block, and then return the [`BoundIdentifier`].
134+
/// Create a new UID with name based on `node`, add a `var` declaration to be inserted
135+
/// at the top of the current enclosing statement block, and return the [`BoundIdentifier`].
136136
#[inline]
137-
pub fn create_var_based_on_node<N: GatherNodeParts<'a>>(
137+
pub fn create_uid_var_based_on_node<N: GatherNodeParts<'a>>(
138138
&self,
139139
node: &N,
140140
ctx: &mut TraverseCtx<'a>,

crates/oxc_transformer/src/es2016/exponentiation_operator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ impl<'a, 'ctx> ExponentiationOperator<'a, 'ctx> {
559559
ctx: &mut TraverseCtx<'a>,
560560
) -> BoundIdentifier<'a> {
561561
// var _name;
562-
let binding = self.ctx.var_declarations.create_var_based_on_node(&expr, ctx);
562+
let binding = self.ctx.var_declarations.create_uid_var_based_on_node(&expr, ctx);
563563

564564
// Add new reference `_name = name` to `temp_var_inits`
565565
temp_var_inits.push(ctx.ast.expression_assignment(

crates/oxc_transformer/src/es2020/optional_chaining.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ impl<'a, 'ctx> OptionalChaining<'a, 'ctx> {
396396
.create_read_expression(ctx)
397397
} else {
398398
// `foo.bar` -> `_foo$bar = foo.bar`
399-
let binding = self.ctx.var_declarations.create_var_based_on_node(object, ctx);
399+
let binding = self.ctx.var_declarations.create_uid_var_based_on_node(object, ctx);
400400
*object = Self::create_assignment_expression(
401401
binding.create_write_target(ctx),
402402
ctx.ast.move_expression(object),
@@ -571,7 +571,7 @@ impl<'a, 'ctx> OptionalChaining<'a, 'ctx> {
571571
}
572572

573573
// We should generate a temp binding for the expression first to avoid the next step changing the expression.
574-
let temp_binding = self.ctx.var_declarations.create_var_based_on_node(expr, ctx);
574+
let temp_binding = self.ctx.var_declarations.create_uid_var_based_on_node(expr, ctx);
575575
if is_call && !self.ctx.assumptions.pure_getters {
576576
if let Some(member) = expr.as_member_expression_mut() {
577577
let object = member.object_mut();
@@ -581,7 +581,7 @@ impl<'a, 'ctx> OptionalChaining<'a, 'ctx> {
581581
let binding =
582582
self.get_existing_binding_for_identifier(ident, ctx).unwrap_or_else(|| {
583583
let binding =
584-
self.ctx.var_declarations.create_var_based_on_node(object, ctx);
584+
self.ctx.var_declarations.create_uid_var_based_on_node(object, ctx);
585585
// `(_foo = foo)`
586586
*object = Self::create_assignment_expression(
587587
binding.create_write_target(ctx),
@@ -638,7 +638,7 @@ impl<'a, 'ctx> OptionalChaining<'a, 'ctx> {
638638

639639
let temp_binding = {
640640
if self.temp_binding.is_none() {
641-
let binding = self.ctx.var_declarations.create_var_based_on_node(expr, ctx);
641+
let binding = self.ctx.var_declarations.create_uid_var_based_on_node(expr, ctx);
642642
self.set_temp_binding(binding);
643643
}
644644
self.temp_binding.as_ref().unwrap()

crates/oxc_transformer/src/es2021/logical_assignment_operators.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,6 @@ impl<'a, 'ctx> LogicalAssignmentOperators<'a, 'ctx> {
310310
if ctx.is_static(expr) {
311311
return None;
312312
}
313-
Some(self.ctx.var_declarations.create_var_based_on_node(expr, ctx))
313+
Some(self.ctx.var_declarations.create_uid_var_based_on_node(expr, ctx))
314314
}
315315
}

crates/oxc_transformer/src/es2022/class_properties/private.rs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -735,7 +735,7 @@ impl<'a, 'ctx> ClassProperties<'a, 'ctx> {
735735
};
736736

737737
// `_object$prop = _assertClassBrand(Class, object, _prop)._`
738-
let temp_binding = self.ctx.var_declarations.create_var(&temp_var_name_base, ctx);
738+
let temp_binding = self.ctx.var_declarations.create_uid_var(&temp_var_name_base, ctx);
739739
let assignment = create_assignment(&temp_binding, get_expr, ctx);
740740

741741
// `++_object$prop` / `_object$prop++` (reusing existing `UpdateExpression`)
@@ -768,7 +768,8 @@ impl<'a, 'ctx> ClassProperties<'a, 'ctx> {
768768
// Source = `object.#prop++` (postfix `++`)
769769

770770
// `_object$prop2 = _object$prop++`
771-
let temp_binding2 = self.ctx.var_declarations.create_var(&temp_var_name_base, ctx);
771+
let temp_binding2 =
772+
self.ctx.var_declarations.create_uid_var(&temp_var_name_base, ctx);
772773
let assignment2 = create_assignment(&temp_binding2, update_expr, ctx);
773774

774775
// `(_object$prop = _assertClassBrand(Class, object, _prop)._, _object$prop2 = _object$prop++, _object$prop)`
@@ -811,7 +812,7 @@ impl<'a, 'ctx> ClassProperties<'a, 'ctx> {
811812
let get_call = self.create_private_field_get(prop_ident, object2, SPAN, ctx);
812813

813814
// `_object$prop = _classPrivateFieldGet(_prop, object)`
814-
let temp_binding = self.ctx.var_declarations.create_var(&temp_var_name_base, ctx);
815+
let temp_binding = self.ctx.var_declarations.create_uid_var(&temp_var_name_base, ctx);
815816
let assignment = create_assignment(&temp_binding, get_call, ctx);
816817

817818
// `++_object$prop` / `_object$prop++` (reusing existing `UpdateExpression`)
@@ -831,7 +832,8 @@ impl<'a, 'ctx> ClassProperties<'a, 'ctx> {
831832
} else {
832833
// Source = `object.#prop++` (postfix `++`)
833834
// `_object$prop2 = _object$prop++`
834-
let temp_binding2 = self.ctx.var_declarations.create_var(&temp_var_name_base, ctx);
835+
let temp_binding2 =
836+
self.ctx.var_declarations.create_uid_var(&temp_var_name_base, ctx);
835837
let assignment2 = create_assignment(&temp_binding2, update_expr, ctx);
836838

837839
// `(_object$prop = _classPrivateFieldGet(_prop, object), _object$prop2 = _object$prop++, _object$prop)`
@@ -1119,7 +1121,7 @@ impl<'a, 'ctx> ClassProperties<'a, 'ctx> {
11191121

11201122
// `A.B` -> `(_A$B = A.B) === null || _A$B === void 0`
11211123
// TODO: should add an API `generate_uid_in_current_hoist_scope_based_on_node` to instead this
1122-
let temp_var_binding = self.ctx.var_declarations.create_var_based_on_node(object, ctx);
1124+
let temp_var_binding = self.ctx.var_declarations.create_uid_var_based_on_node(object, ctx);
11231125

11241126
let object = mem::replace(object, temp_var_binding.create_read_expression(ctx));
11251127
let assignment = create_assignment(
@@ -1505,14 +1507,14 @@ impl<'a, 'ctx> ClassProperties<'a, 'ctx> {
15051507
// Previously `x += 1` (`x` read + write), but moving to `_x = x` (`x` read only)
15061508
*reference.flags_mut() = ReferenceFlags::Read;
15071509

1508-
self.ctx.var_declarations.create_var(&ident.name, ctx)
1510+
self.ctx.var_declarations.create_uid_var(&ident.name, ctx)
15091511
}
15101512
Expression::ThisExpression(this) => {
15111513
// Reading `this` cannot have side effects, so no need for temp var
15121514
let object1 = ctx.ast.expression_this(this.span);
15131515
return (object1, object);
15141516
}
1515-
_ => self.ctx.var_declarations.create_var_based_on_node(&object, ctx),
1517+
_ => self.ctx.var_declarations.create_uid_var_based_on_node(&object, ctx),
15161518
};
15171519

15181520
let object1 = create_assignment(&temp_var_binding, object, ctx);

crates/oxc_transformer/src/jsx/refresh.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ impl<'a, 'ctx> ReactRefresh<'a, 'ctx> {
590590
ctx.ast.vec(),
591591
false,
592592
);
593-
let binding = self.ctx.var_declarations.create_var_with_init("s", init, ctx);
593+
let binding = self.ctx.var_declarations.create_uid_var_with_init("s", init, ctx);
594594

595595
// _s();
596596
let call_expression = ctx.ast.statement_expression(

0 commit comments

Comments
 (0)