BT

Your opinion matters! Please fill in the InfoQ Survey!

WebKit, V8, and Edge Improve JavaScript Implementations

| by David Iffland Follow 3 Followers on May 19, 2016. Estimated reading time: 1 minute |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

The browser wars are as active as ever, with WebKit, V8, and Edge all reaching major milestones in their never-ending battle to keep up with the demands of modern JavaScript.

The team behind WebKit announced that it has reached 100% ES6 (ES2015) compatibility on the Kangax Compatibility Table; the first such achievement. WebKit is the basis for Apple's Safari web browser. Their latest browser preview, Safari Technical Preview 4 has itself reached 99% compatibility.

Juriy Zaytsev (AKA Kangax) said that WebKit's recent progress was a bit of a surprise:

They've been lagging behind for a long time; almost entire last year. Then accelerated very quickly and yes, almost out of the blue. We started getting PR's from WebKit developers with updates showing them adding more and more features. Now they reached 100% pretty much at the same time as Chrome, except that Chrome has been working on it for a longer time; WebKit's progress was just steeper.

In other news, the V8 team (the JavaScript engine behind Chrome and Node.js), have implemented async/await. While Microsoft was first to release a browser preview with async/await available, V8's usage in Node.js gives it an even broader reach beyond the browser. Developers can already use async/await in their code if they're using a transpiler like TypeScript, but a native V8 implementation would obviate the need to transpile.

Not to be outdone, Microsoft has updated their Edge preview browser to offer ES6 modules. The static nature of ES6 modules lets browsers perform lookups quickly. Microsoft describes the benefits as:

The spec syntactically restricts all declarations to the global scope in the module body (no imports/exports in if-statement, nested function, eval, etc.), so all module imports and exports can be determined during parsing and will not change in execution.

In addition, the Edge preview also includes all of the proposed ES2016 features (though there are only two such features).

ES6 modules have not yet been implemented by WebKit. That feature is not in the compatibility tables because "it's difficult to test them in an automatic manner and the spec is still not finalized," says Zaytsev. So while WebKit can claim 100% on the Kangax compatibility table, that doesn't necessarily mean they're 100% ES2015 compliant.

It's not clear when all of these advancements will land in public releases.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT