JavaScript でビット演算のオペランドに小数を指定した場合、小数部を 0 方向に切り捨てて(round towards zero)、32ビットの整数に変換してから演算されます。
DMonkey では小数部を最近接偶数への丸め(round half to even)で整数化するため、演算結果が異なります。
alert (+1.5 | 0); // 2 ※JavaSciprt では 1
alert (0 | -1.5); // -2 ※JavaSciprt では -1