I don't like this kind of magic. Reasoning about async code is already hard, having the language do the magic for you will make folks forget what happens under the hood, until it does not work as expected. I see the same problem with Automatic Semicolon Insertion.
Here, we have an "
asyncblock" that is unlike other blocks in that it is actually maintaining its scope.
With let and const we finally had consistent block scoping in JS ... Just to break that now again?
If this change is seen as too much, I would happily settle for just a nice
syntax sugar forPromise.all
Jup, that sounds like a good idea ...