For the curious -- previous discussion about adding TameJS constructs: https://github.com/jashkenas/coffee-script/issues/1710
And the history of a previous attempt at doing something similar:
https://github.com/jashkenas/coffee-script/issues/241
https://github.com/jashkenas/coffee-script/issues/287
https://github.com/jashkenas/coffee-script/issues/350
http://gfxmonk.net/2010/07/04/defer-taming-asynchronous-java...