I think that the player moves a little too fast. I found myself outrunung all the enemies to the point where the magic ball didn't actually do anything (cause I outran them before actually killing them)...
I think the problem is on the diagonals. I noticed if I moved diagonally I seemed to move faster than orthogonally. After a while though my browser crapped out because there were too many enemies on the screen, so my game basically halted.
You're right. I didn't normalize XY Input resulted the player can move x1.4 faster diagonally. And I didn't implement the enemy despawn, it looks necessary now.