2^63, the operator returns zero.
In other words, if the operand has its high bit set when converted to
uint64, these operators will return 0 instead of their correct value.
Here are a few quick test cases:
console.log(18446744073709550000 >>> 0); console.log(18446744073709550000 >> 0); console.log(18446744073709550000 | 0);In correct browsers, these expressions will print non-zero values. In IE8, they print zero.
I don't expect Microsoft ever to fix this because IE8 is so old. I just wanted to get the word out so that when someone else sees something fishy going on with their code, they can Google "IE8 bitwise operators bug" and find this page instead of no information about the bug.
If there is already a bug report for this somewhere, please let me know!