From 2ade16ece542719d5ac2bc1382d3546c84c3cfdd Mon Sep 17 00:00:00 2001 From: camc314 <18101008+camc314@users.noreply.github.com> Date: Sun, 13 Oct 2024 06:47:10 +0000 Subject: [PATCH] fix(codegen): invalid codegen when `in` inside bin expr in or loop (#6431) https://github.com/oxc-project/monitor-oxc/actions/runs/11278829870 ?? --- crates/oxc_codegen/src/gen.rs | 2 +- crates/oxc_codegen/tests/integration/unit.rs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/oxc_codegen/src/gen.rs b/crates/oxc_codegen/src/gen.rs index 40abebce5..089bed38e 100644 --- a/crates/oxc_codegen/src/gen.rs +++ b/crates/oxc_codegen/src/gen.rs @@ -1737,7 +1737,7 @@ impl<'a> GenExpr for LogicalExpression<'a> { precedence, ctx, left_precedence: Precedence::Lowest, - left_ctx: Context::empty(), + left_ctx: ctx, operator: BinaryishOperator::Logical(self.operator), wrap: false, right_precedence: Precedence::Lowest, diff --git a/crates/oxc_codegen/tests/integration/unit.rs b/crates/oxc_codegen/tests/integration/unit.rs index cfb574c08..702822be4 100644 --- a/crates/oxc_codegen/tests/integration/unit.rs +++ b/crates/oxc_codegen/tests/integration/unit.rs @@ -279,4 +279,9 @@ fn in_expr_in_sequence_in_for_loop_init() { "for (l = ('foo' in bar), i; i < 10; i += 1) {}", "for (l = (\"foo\" in bar), i; i < 10; i += 1) {}\n", ); + + test( + "for (('hidden' in a) && (m = a.hidden), r = 0; s > r; r++) {}", + "for ((\"hidden\" in a) && (m = a.hidden), r = 0; s > r; r++) {}\n", + ); }