On May 13, 2013, at 4:15 PM, David Herman <dher...@mozilla.com> wrote:

> On May 13, 2013, at 11:07 AM, Allen Wirfs-Brock <al...@wirfs-brock.com> wrote:
> 
>> It closes down this whole edge-case focused discussion and that's valuable 
>> in itself.  Also, since it turns try {yield expr} finally{} into a syntax 
>> error  we could revisit the decision in a future edition if somebody 
>> actually comes up with compelling use cases.
> 
> I'm very uncomfortable with this restriction. Ad hoc restrictions break 
> compositionality. They come back to bite you because you broke generality for 
> want of use cases, when we all know we can't predict all the use cases of a 
> general-purpose programming mechanism. This gets our responsibility 
> backwards: ad hoc restrictions that break generality should be extremely 
> strongly motivated, rather than requiring use cases for the semantics they 
> disallow.

And what was I thinking, of course there are use cases: anything where you'd 
use try/finally in a language with synchronous I/O, you would use try/finally 
in task.js.

  spawn(function*() {
    let splashScreen = $("splash");
    try {
      splashScreen.style.display = 'block';
      let assets = yield downloadAssets();
      // ...
    } catch (e) {
      // ...
    } finally {
      splashScreen.style.display = 'none';
    }
  });

Dave

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to