Modern JS engines are fast enough for many tasks not possible before.
For example, I implemented AES256 and SHA256 in javascript for "security locker" website (http://www.memengo.com). I spent few days hand-optimizing the implementation to make it fast enough to encrypt user data in slow browsers like IE6, but last-generation browsers like FF3.5, Safari 4, Chrome would be fast enough even without excessive tuning.
In fact, browsers were that fast in 2006, when this was written. Not fast enough to do some things that we're doing today, but more than fast enough to parse a simple language like this.