From 0a26066b7b01d06a6d9e3df2ab7c7e47f4aa9e4c Mon Sep 17 00:00:00 2001 From: David Sherret Date: Sun, 2 Jul 2023 21:52:51 -0400 Subject: [PATCH] refactor(es/compat): Remove usage of `box_patterns` (#7613) --- .../src/es2020/optional_chaining.rs | 13 +++++++++---- crates/swc_ecma_transforms_compat/src/lib.rs | 1 - 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/crates/swc_ecma_transforms_compat/src/es2020/optional_chaining.rs b/crates/swc_ecma_transforms_compat/src/es2020/optional_chaining.rs index 960249c83c23..1147075e1be4 100644 --- a/crates/swc_ecma_transforms_compat/src/es2020/optional_chaining.rs +++ b/crates/swc_ecma_transforms_compat/src/es2020/optional_chaining.rs @@ -66,14 +66,19 @@ impl VisitMut for OptChaining { *e = self.construct(data, false, self.c.no_document_all); } - // delete foo?.bar -> foo == null ? true : delete foo.bar Expr::Unary(UnaryExpr { - arg: box Expr::OptChain(v), + arg, op: op!("delete"), .. }) => { - let data = self.gather(v.take(), vec![]); - *e = self.construct(data, true, self.c.no_document_all); + match &mut **arg { + // delete foo?.bar -> foo == null ? true : delete foo.bar + Expr::OptChain(v) => { + let data = self.gather(v.take(), vec![]); + *e = self.construct(data, true, self.c.no_document_all); + } + _ => e.visit_mut_children_with(self), + } } e => e.visit_mut_children_with(self), diff --git a/crates/swc_ecma_transforms_compat/src/lib.rs b/crates/swc_ecma_transforms_compat/src/lib.rs index 4f03c507d220..a9bcf99c5131 100644 --- a/crates/swc_ecma_transforms_compat/src/lib.rs +++ b/crates/swc_ecma_transforms_compat/src/lib.rs @@ -3,7 +3,6 @@ #![allow(clippy::vec_box)] #![allow(clippy::boxed_local)] #![allow(clippy::match_like_matches_macro)] -#![feature(box_patterns)] pub use self::{ bugfixes::bugfixes, es2015::es2015, es2016::es2016, es2017::es2017, es2018::es2018,