<div dir="ltr">On Wed, Nov 12, 2014 at 6:17 PM, C. Scott Ananian <span dir="ltr"><<a href="mailto:ecmascript@cscott.net" target="_blank">ecmascript@cscott.net</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Nov 12, 2014 at 11:08 AM, Axel Rauschmayer <<a href="mailto:axel@rauschma.de">axel@rauschma.de</a>> wrote:<br>
> Is that true, though? Couldn’t a finalizer or something similar check<br>
> (before a promise is garbage collected) whether all errors have been<br>
> handled?<br>
<br>
</span>A finalizer can do this check.  This will flag some uncaught<br>
exceptions, but not promptly.  And as I wrote above, that's only part<br>
of the issue -- promises can also be kept alive for an indefinite<br>
period of time, but never end up either handling their exceptions or<br>
becoming unreachable.  This could also be an error.<br>
<br>
That is, liveness is one way to tell that an exception will never be<br>
handled, but it is only an approximation.<br>
<br>
And it's not necessarily an error to not handle an exception --<br>
`Promise.race()` is expected to have this behavior as a matter of<br>
course, for example.<br>
<br>
We've been through this discussion many times before.  Eventually<br>
there may be a `Promise#done`.  But the consensus was that the first<br>
step was to give the devtools folks time to make good UI for showing<br>
the dynamic "unhandled async exception" state of a program, and see<br>
how well that worked.<br>
<span class="HOEnZb"><font color="#888888">  --scott<br></font></span></blockquote><div><br><br></div><div>Actually that already works, at least in Chrome, if you execute<br><br>(function () {<br>  return new Promise(function (resolve, reject) {<br></div><div>    reject(new Error("foo"));<br></div><div>  });<br>}());<br><br><br></div><div>that shows up as an uncaught exception in the console.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">
</font></span><br>
ps. some of the discussed language features threaten to release zalgo.<br>
but i'll not open up that can of worms.<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</div></div></blockquote></div><br></div></div>