Skip to content

Commit a03421f

Browse files
committed
perf(minifier): InjectGlobalVariables only add to replaced_dot_defines once for each
1 parent 08bba4f commit a03421f

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

crates/oxc_minifier/src/plugins/inject_global_variables.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -222,16 +222,18 @@ impl<'a> InjectGlobalVariables<'a> {
222222
if let Expression::StaticMemberExpression(member) = expr {
223223
for DotDefineState { dot_define, value_atom } in &mut self.dot_defines {
224224
if ReplaceGlobalDefines::is_dot_define(dot_define, member) {
225-
// Create `Atom` for replacement lazily on first replacement
225+
// If this is first replacement made for this dot define,
226+
// create `Atom` for replacement, and record in `replaced_dot_defines`
226227
if value_atom.is_none() {
227228
*value_atom = Some(self.ast.atom(dot_define.value.as_str()));
229+
230+
self.replaced_dot_defines
231+
.push((dot_define.parts[0].clone(), dot_define.value.clone()));
228232
}
229233
let value_atom = value_atom.as_ref().unwrap().clone();
230234

231235
let value = self.ast.expression_identifier_reference(SPAN, value_atom);
232236
*expr = value;
233-
self.replaced_dot_defines
234-
.push((dot_define.parts[0].clone(), dot_define.value.clone()));
235237
break;
236238
}
237239
}

0 commit comments

Comments
 (0)