I have never been a fan of Permadi-style math used for raycasters, but I really liked your use of bitwise operators in the math and condition checks. Some good coding under the covers. :)
I also hate WASD controls, but I do not hold that against you. XD