website icon indicating copy to clipboard operation
website copied to clipboard

Move exception handling to phase 4

Open yoshuawuyts opened this issue 1 year ago • 4 comments

Exception handling has been voted to move to phase 4 (ref). This patch reflects that change in the feature tracker on the website. Thanks!

yoshuawuyts avatar Jul 17 '24 11:07 yoshuawuyts

This one I think is actually going to take some more nuance. What the browsers have shipped already is actually not the full current spec, it's what the spec now calls Legacy Exception Handling (specified in a spec appendix). Probably for the purposes of the website I think it would make sense to treat this as 2 separate features (maybe called "legacy exception handling" and "exception references" or something like that. None of the browsers have actually shipped the latter yet, but Chrome and Firefox have implementations behind a flag that we could also document here.

dschuff avatar Jul 17 '24 13:07 dschuff

That makes sense to me. Follow up question though: how should we treat legacy spec features? Would these also be considered tier 4 and therefore "stable" because they're part of this spec? Or should we perhaps put these in a new, separate section clarifying that it's considered "legacy" and should not be relied on?

I'm personally not familiar with the contents of the spec, nor did I attend the meeting in which the vote was held, so I don't really know how Legacy Exception Handling has been discussed.

yoshuawuyts avatar Jul 17 '24 13:07 yoshuawuyts

regarding legacy features, EH is really an, um, exceptional case here. There aren't (and hopefully won't be in the future) other cases where a feature was shipped and then retrofitted this way before phase 4.

We didn't discuss the legacy status in this meeting (it really was just an acknowledgement that we'd completed all the steps, and making the formal vote); the background, changing the proposal and handling the legacy spec was discussed previously on github and in the October meeting last year. We do want to encourage users to use the new spec if possible, and eventually will have toolchains default to using exnref; even though on the web, the legacy instructions will only actually be removed if usage gets sufficiently low, and that may never happen. I'm not sure having a separate section in this table is the right way to do that or not. For now, at least until exnref ships in some browsers, it probably makes sense to keep them together.

dschuff avatar Jul 17 '24 14:07 dschuff

Legacy EH should definitely not be considered phase 4, since it never reached that state. And there is no obligation for engines to implement it — in fact, they are encouraged to not implement it.

Not sure how to represent that in the table. But if we include it at all, then I concur with @dschuff that it should be separate from the new proposal, and it should somehow clearly be marked as legacy (i.e., to be deprecated).

Perhaps it would be adequate to move legacy features to the very bottom of the table, since they are to be considered on their way out, not in?

rossberg avatar Jul 18 '24 08:07 rossberg

This is now done in #390. Thanks for raising this!

dschuff avatar Sep 25 '24 22:09 dschuff