Commits
Click on a commit to change the comparison rangeTurbopack: Fix compound assignment expression evaluation
Previously, the analyzer treated all assignment expressions the same way,
evaluating them as their right-hand side value. This was incorrect for
compound assignments (+=, -=, *=, |=, >>=, etc.), which compute a new
value based on both the left and right operands.
This commit distinguishes between simple assignments (=) and compound
assignments. Simple assignments continue to evaluate to the right-hand
side, while compound assignments are now properly marked as unknown
values with side effects.
Also adds tests for compound assignments in conditionals, covering
bitshift operations (>>=, <<=, >>>=) and bitwise operations (|=, &=, ^=)
with both numbers and bigints. Merge branch 'canary' into canary