Return a + b without using the + or - operators anywhere in your solution (that rules out ++, --, += and unary minus too).
- Both inputs fit in a signed 32-bit integer, and so does the result
- Either input may be negative — negatives are stored in two's complement, and the same add-with-carry loop handles them with no special casing
- Why it terminates: JS bitwise operators wrap to 32 bits, so the carry keeps marching left and eventually falls off the top edge, reaching 0. Without that wrap a negative operand would loop forever.