| gets evaluated to either 1 or 0. 1 if either, or both are true, 0 if neither are true.
It does not return the value that was evaluated. You set that up in the conditionals "?", and ":".
So there's multiple parts.
The conditional:
statement ?value if true :else
The or as a statment:
(1=0|1=2)=0
No its not js, it's the dummied down version of parts of js.