I'm really hoping async iterators [1] will make it to stage 4, but from the github I can't really tell what's holding it back as it has several browsers with implementation (I know that's not the only requirement for stage 4, but it's one of them.) I also noticed it's not on the agenda for the November meeting [2]. I understand there are a lot of features being worked on concurrently so it may not be finished by ES2018, but is there any chance someone could give me an update on what's happening with it. I just think this feature is amazing! And also thanks TC39 for all the great features coming to ECMAScript!<p>[1]: <a href="https://github.com/tc39/proposal-async-iteration" rel="nofollow">https://github.com/tc39/proposal-async-iteration</a>
[2]: <a href="https://github.com/tc39/agendas/blob/master/2017/11.md" rel="nofollow">https://github.com/tc39/agendas/blob/master/2017/11.md</a>
It's not easy to tell from this document what has changed, but Dr. Axel Rauschmayer does a good job here <a href="http://2ality.com/2017/02/ecmascript-2018.html" rel="nofollow">http://2ality.com/2017/02/ecmascript-2018.html</a>
Optional catch binding[0], which is at stage 3, seems like a bad idea[1] and has been pointed out as such[2]<p>[0] <a href="http://2ality.com/2017/08/optional-catch-binding.html" rel="nofollow">http://2ality.com/2017/08/optional-catch-binding.html</a><p>[1] <a href="http://wiki.c2.com/?EmptyCatchClause" rel="nofollow">http://wiki.c2.com/?EmptyCatchClause</a><p>[2] <a href="https://github.com/tc39/proposal-optional-catch-binding/issues/2" rel="nofollow">https://github.com/tc39/proposal-optional-catch-binding/issu...</a>
This page is confusing because it describes itself as ECMAScript 2018 but the features it lists are those I've associated with ECMAScript 2017.<p>Looking at the Github repo, you can see that they changed it from 2017 to 2018 on March 31st: <a href="https://github.com/tc39/ecma262/commit/8340bf9a8427ea81bb0d1459471afbcc91d18add#diff-3540caefa502006d8a33cb1385720803" rel="nofollow">https://github.com/tc39/ecma262/commit/8340bf9a8427ea81bb0d1...</a><p>So what happened to 2017?
Template Literal Revision [1] is a welcome change, but still falls way short, as there's still no way to easily include the backtick itself inside raw text.<p>I wish ES would adopt python-style triple-quotes, so you could do things like:<p>String.raw```Look, this is a backtick: "`"```<p>(The inability to do this is a pain point when you want to embed a language in ES and that language itself makes use of backticks.)<p>[1] <a href="http://2ality.com/2016/09/template-literal-revision.html" rel="nofollow">http://2ality.com/2016/09/template-literal-revision.html</a>
I guess BigInt (i.e. native integer support) is only stage 3:<p><a href="https://github.com/tc39/proposal-bigint" rel="nofollow">https://github.com/tc39/proposal-bigint</a><p>It's the feature I'd most like to see added.
That document is an incomplete working DRAFT for the next edition of the ECMAScript standard.<p>Don't assume that the current snapshot is feature complete.
I wish the spec included a more bullet pointy changelog from the previous version, but at least it has this paragraph:<p><pre><code> This specification introduces Async Functions, Shared Memory,
and Atomics along with smaller language and library
enhancements, bug fixes, and editorial updates. Async
functions improve the asynchronous programming experience by
providing syntax for promise-returning functions. Shared
Memory and Atomics introduce a new memory model that allows
multi-agent programs to communicate using atomic operations
that ensure a well-defined execution order even on parallel
CPUs. This specification also includes new static methods on
Object: Object.values, Object.entries, and
Object.getOwnPropertyDescriptors.</code></pre>
I hoped decorators[1] would make it, but seems unlikely (looks like they're still at stage 2).<p>[1] <a href="https://github.com/tc39/proposal-unified-class-features" rel="nofollow">https://github.com/tc39/proposal-unified-class-features</a>
According to [the repo](<a href="https://github.com/tc39/proposals/blob/master/finished-proposals.md" rel="nofollow">https://github.com/tc39/proposals/blob/master/finished-propo...</a>) only one minor feature had reached stage 4 since last year. Not sure why this is on top HN.
My number 1 wish for JavaScript is that it could become fully expression oriented. There's been talk about `do` blocks, which would modify control structures like `if` to become expressions but I don't think that's gone anywhere.