From 7a600e60bcafc8ce3d7523df0cfdc23d894992cb Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 29 Apr 2025 16:41:31 +0200 Subject: [PATCH] LibJS: Mark `catch` parameter as initialized local when applicable Otherwise we'll emit a TDZ check for every `catch` parameter immediately after initializing it. This check would never fail, so it's redundant. --- Libraries/LibJS/Bytecode/ASTCodegen.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Libraries/LibJS/Bytecode/ASTCodegen.cpp b/Libraries/LibJS/Bytecode/ASTCodegen.cpp index 292b7f63697..44dce2118de 100644 --- a/Libraries/LibJS/Bytecode/ASTCodegen.cpp +++ b/Libraries/LibJS/Bytecode/ASTCodegen.cpp @@ -2656,6 +2656,7 @@ Bytecode::CodeGenerationErrorOr> TryStatement::generate_ if (parameter->is_local()) { auto local = generator.local(parameter->local_index()); generator.emit_mov(local, caught_value); + generator.set_local_initialized(parameter->local_index()); } else { generator.begin_variable_scope(); did_create_variable_scope_for_catch_clause = true;