>>32
バグというか仕様の解釈の違いだろうけど
b[m]++; → ++b[m]&=255;
b[m]--; → --b[m]&=255;
o.push(a.charAt(b[m] % 256)); → o.push(a.charAt(b[m]));
の方が安定するかもしれない
(無限ループもどきが減ると思う)