I like so much about this. The music is AWESOME!!! The movement / combat has some depth to it. I appreciate that it's not possible to go ethereal while standing in ethereal spikes.
It did perform quite poorly. I tried playing this on several browsers (firefox, chrome, edge) and it didn't seem to make a difference on performance. One thing I noticed is that the vertical shaft level with the floating skull didn't lag at all, and that had no spikes in it. Are you checking for collisions with every spike, every frame?
However, the big problem isn't the performance, it's that a large number of things seem to be arbitrarily tied to performance. It seems like I jump lower when the framerate dips. Flames sometimes wouldn't light lanterns when the framerate was low. When the framerate is good, my flames have very little range, and when it's bad, they have an extreme range. It's like TimeDelta() is being for certain things but not for others. Performance was so bad, I couldn't get past this level:
It's a real shame; this is a very competent and polished game otherwise. Great work! I hope you can sort that out!