mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-06 08:23:19 +08:00
`x | 0`, `x ^ 0`, `x & -1`, `x << 0`, `x >> 0` (and `x >>> 0` for a uint32) over an operand the integer range analysis proves an int32 now return the operand's number and its integer views instead of converting to i32 and back: ranges exclude -0, so the result is the operand bit for bit. The range analysis computes bitwise result ranges from the operand ranges (exact ToInt32/ToUint32 views, shift-count ranges) instead of the blanket int32 range, so `(n & 0xff) | 0`, `s.length >> 1` or `x >>> 1` keep tight bounds for later integer consumers.