From f02bf516cf2d779b6d6075be4517a7f99a7aea5a Mon Sep 17 00:00:00 2001 From: overlookmotel <557937+overlookmotel@users.noreply.github.com> Date: Mon, 23 Sep 2024 18:05:31 +0000 Subject: [PATCH] refactor(transformer): arrow function transform: remove unnecessary assertion (#6002) This assertion was required previously for soundness, but now `SparseStack::pop` makes it impossible for `self.this_var_stack.len()` to be 0. Being exactly 1 is not a safety invariant, only that it's not 0. --- crates/oxc_transformer/src/es2015/arrow_functions.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/oxc_transformer/src/es2015/arrow_functions.rs b/crates/oxc_transformer/src/es2015/arrow_functions.rs index bb2079d22..d3f2d20a1 100644 --- a/crates/oxc_transformer/src/es2015/arrow_functions.rs +++ b/crates/oxc_transformer/src/es2015/arrow_functions.rs @@ -165,7 +165,6 @@ impl<'a> Traverse<'a> for ArrowFunctions<'a> { /// Insert `var _this = this;` for the global scope. fn exit_program(&mut self, program: &mut Program<'a>, _ctx: &mut TraverseCtx<'a>) { - assert!(self.this_var_stack.len() == 1); if let Some(this_var) = self.this_var_stack.take() { self.insert_this_var_statement_at_the_top_of_statements(&mut program.body, &this_var); }