Skip to content

Commit 40a1e2e

Browse files
authored
fix(es/minifier): Don't optimize Number properties when Number is shadowed (#10947)
**Related issue:** - Closes #10938
1 parent 63172ef commit 40a1e2e

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

crates/swc_ecma_minifier/src/compress/optimize/evaluate.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,12 @@ impl Optimizer<'_> {
145145
span,
146146
..
147147
}) if matches!(obj.as_ref(), Expr::Ident(ident) if &*ident.sym == "Number") => {
148+
if let Expr::Ident(number_ident) = &**obj {
149+
if number_ident.ctxt != self.ctx.expr_ctx.unresolved_ctxt {
150+
return;
151+
}
152+
}
153+
148154
match &*prop.sym {
149155
"MIN_VALUE" => {
150156
report_change!("evaluate: `Number.MIN_VALUE` -> `5e-324`");
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
let Number; console.log(Number.NaN);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log((void 0).NaN);

0 commit comments

Comments
 (0)