Optimize js.Array and js.ArrayOps.

OK. I am actually a bit concerned that the changes to `slice` and `reverse` can silently break existing code....