
Safari Tech Preview 8 achieves 100% ES6 support - scarlac
https://developer.apple.com/safari/technology-preview/release-notes/
======
renownedmedia
I frequently see members of the Firefox, Chrome, and Edge teams at various
JavaScript Meetups (in the Bay Area) as well as conferences, though I've yet
to meet someone from the Safari team.

Perhaps this is due to the secretive nature of Apple, and as a result I'm
always surprised when new Safari features come out. By the time a feature
lands in a different browser, we already know it's coming.

~~~
sandstrom
I wish they would be more flexible with their secrecy. The open-source pieces
of Apple (the CLI-stuff in OS X, Safari, etc) would gain much by being less
secretive.

(and it wouldn't hinder them from being gold silent on other matters;
hardware, business, etc)

~~~
dak1
WebKit, which is the heart of Safari, is open source:
[http://webkit.org](http://webkit.org)

I've been tracking many of these issues on the WebKit bug tracker:
[https://bug.webkit.org](https://bug.webkit.org)

For example:
[https://bug.webkit.org/show_bug.cgi?id=80559](https://bug.webkit.org/show_bug.cgi?id=80559)
(Bug 80559 - [ES6] Add support for ES6 Harmony).

The release notes linked to also links to the public commit that implemented
each noted fix/update/new feature.

~~~
sandstrom
I know much of it is open source (darwin is, too).

It's just that they don't engage much and it doesn't feel prioritized.

Take this website for example:
[http://opensource.apple.com/](http://opensource.apple.com/)

The design feels like it's from the early 2000. There is almost no
documentation besides the raw data/files.

------
stymaar
I find the title quite misleading as I was expecting support of ES6 modules
syntax, which is one of the most important change that came with ES6. But it
looks like it's still work in progress (see
[https://bugs.webkit.org/show_bug.cgi?id=147340](https://bugs.webkit.org/show_bug.cgi?id=147340)
).

------
ilkkao
Chrome Canary with experimental JS features enabled fails two tests:
"Array.prototype.values" and "no assignments allowed in for-in head". First
one on purpose to maintain web compatibility
([https://bugs.chromium.org/p/chromium/issues/detail?id=615873](https://bugs.chromium.org/p/chromium/issues/detail?id=615873)).
Wondering what is the reason behind the second missing feature?

~~~
uwu
compatibility, same as the first one

[https://bugs.chromium.org/p/v8/issues/detail?id=4942#c4](https://bugs.chromium.org/p/v8/issues/detail?id=4942#c4)

> Per
> [https://www.chromestatus.com/metrics/feature/timeline/popula...](https://www.chromestatus.com/metrics/feature/timeline/popularity/1238),
> this syntax is still seen on the web, and any such pages would be broken by
> this change.

[https://github.com/tc39/ecma262/issues/260](https://github.com/tc39/ecma262/issues/260)

------
gdeglin
Still no Service Workers or Web Push unfortunately:
[https://jakearchibald.github.io/isserviceworkerready/](https://jakearchibald.github.io/isserviceworkerready/)

~~~
Touche
While I wish they had these things, these are not JavaScript features and not
relevant to the article.

~~~
magicalist
> _While I wish they had these things, these are not JavaScript features and
> not relevant to the article._

Do you mean "not relevant to the title the submitter chose"? The "article" is
the release notes for the entire browser.

------
hoodoof
The final piece to the JavaScript puzzle is ES7's async and await. Whilst this
is awesome news, if it included async and await then the circle would be
complete.

~~~
kevlened
Unfortunately, async and await didn't make it into ES7. ES2016 (ES7) was
finalized with Array.prototype.includes and the exponentiation operator [0].
We'll have to wait for ES2017 at the earliest for async/await to make it into
the official spec [1][2].

[0] [http://www.ecma-international.org/ecma-262/7.0/](http://www.ecma-
international.org/ecma-262/7.0/) [1]
[https://github.com/tc39/proposals](https://github.com/tc39/proposals) [2]
[http://www.2ality.com/2016/02/ecmascript-2017.html](http://www.2ality.com/2016/02/ecmascript-2017.html)

------
proyb2
Yet waiting for WebMIDI support for years.

~~~
chowes
You, me, and maybe 6 more people :P

------
fokinsean
...but still lacks on other web standards such as getUserMedia() which is the
one reason I still have to use flash.

~~~
dak1
To be fair, MediaDevices.getUserMedia() is still highly experimental and only
in the Editor's Draft stage. Chrome didn't support it until December.

It's definitely not ready for primetime/production use yet.

Navigator.getUserMedia() is deprecated, so support for that won't be coming
ever.

------
peternicky
Tail call optimization included?

~~~
scarlac
Yes. You can see a list here: [https://kangax.github.io/compat-
table/es6/](https://kangax.github.io/compat-table/es6/)

------
TylerH
Wait, Safari 8? What about the already released Safari 9? They're all the way
up to 9.1.1 now...

~~~
Razengan
It's the 8th release of the Technology Preview of the next Safari. Safari 10
Beta 8 if you will.

~~~
alwillis
Actually, there’s a separate beta of Safari 10 for Sierra, El Capitan and
Yosemite: [http://iphone.appleinsider.com/articles/16/06/23/apple-
relea...](http://iphone.appleinsider.com/articles/16/06/23/apple-releases-
safari-10-beta-for-os-x-el-capitan-and-os-x-yosemite)

~~~
Razengan
Ah, thanks for the correction. I guess the Tech Preview is more about the
WebKit core, while the 10 Beta includes newer macOS-specific UI etc.?

