I'm deeply suspicious of this code because it starts with a boolean value, and then uses a bitwise |= operator on it, and then treats the result as a boolean rather than a number.

Are you trying to avoid the short-circuting behavior of || here?

In any case, I think you're being too clever. Expand it out with more variables or an if/else or with a more complex conditional or something.