Hacker News new | past | comments | ask | show | jobs | submit login
Safari Tech Preview 8 achieves 100% ES6 support (developer.apple.com)
87 points by scarlac on July 6, 2016 | hide | past | favorite | 32 comments

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.

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)

WebKit, which is the heart of Safari, is open source: http://webkit.org

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

For example: 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.

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/

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

Perhaps you noticed that they open sourced their Apple Pay JavaScript code, which was demonstrated a few weeks ago at WWDC: https://developer.apple.com/videos/play/wwdc2016/703/.

I expect some of it is just down to comparative size: Apple nowadays have pretty few people working on WebKit (and the JavaScriptCore team is really small—though I doubt V8 people, now mostly in Munich, appear in the Bay Area often!).

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 ).

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). Wondering what is the reason behind the second missing feature?

compatibility, same as the first one


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


Still no Service Workers or Web Push unfortunately: https://jakearchibald.github.io/isserviceworkerready/

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

> 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.

Service Workers are on the list of features being investigated: https://webkit.org/status/

"Samsung Internet"

How come I did not know about this browser until now? Yet another one that will be abandoned and full of security holes in a year.

Actually it exists since Android v3.0 I don't know the exact date because neither Google Play Store nor the release notes from Samsung [0] log version dates.

[0] http://developer.samsung.com/release-note/view.do?v=R0000000...

Yeah, I had big hopes for WWDC this year. I know, I'm a fool...

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.

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/ [1] https://github.com/tc39/proposals [2] http://www.2ality.com/2016/02/ecmascript-2017.html

I guess we'll just be a-waiting a little longer! I'll see myself out.

Yet waiting for WebMIDI support for years.

You, me, and maybe 6 more people :P

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

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.

Tail call optimization included?

Yes. You can see a list here: https://kangax.github.io/compat-table/es6/

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

This is the 8th public preview release, and the version number is "Release 8 (Safari 9.1.2, WebKit 11602.1.39)"

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

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...

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.?

Also lol "Added support for CSS4 feature"

CSS4 spec with :focus-within selector https://drafts.csswg.org/selectors/

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact