In particular, co-routines (in the form of the "yield" operator) are the key big improvement (IMHO). The rest is mostly syntactic sugar - and in fact, most of those are indeed enabled by co-routines (which they label as "Generators").
I have to admit, though, to being a little disappointed with trying to use them in practice, for "programming in the large" with JS type things. As always, I might be missing something - but what I'm finding is that most of the time I don't want to necessarily yield to just the calling function; I want to yield waaaay up the stack. I think what I'm really looking for is a "resumable" exception of sorts- where I can yield all the way up somewhere, take some action, and then continue execution back to the yield - ALMOST there with JS 1.7 generators - but the implementation seems to be more about keeping up with Python superficially... ah, well.
Adobe has much less of that particular adoption problem - being a single vendor monopoly for core technology has its advantages.