x |= y acts differently than x = x | y
Specificaly in the case when y is null, the first method will set x to 0 and the second method it will result in x being unchanged.
Code Snippet (if applicable) to Reproduce Problem:
var/foo = 4
foo |= null
var/bar = 4 | null
Expected Results:
foo and bar should equal the same thing
Actual Results:
foo is 0, bar is 4
Does the problem occur:
Every time?
Yes
In other games?
Even in test projects
In other user accounts?
Yes
On other computers?
Yes
When does the problem NOT occur?
It's unknown when this first started happening but it's a problem at least in the most recent versions of 511 and 512
Workarounds:
Just use the method that gives the results you want. Normally that's x = x | y.