A few weeks ago, yet in 2014, we have announced shipping ES6 classes in V8
[1].

Our implementation was mostly following current ES6 draft specification.
However, as discussed on the intent-to-ship thread [1], we have found
several aspects of the specification problematic, namely subclassing of
exotic objects, in particular DOM objects.

Therefore what we were shipping at that time was a *conservative subset* of
ES6 specification.

As I stated in my intent-to-ship email, we were planning to work with
involved parties to resolve these issues. I am happy to report that that
work has now come to fruition. TC39 ECMAScript Committee turned a
sympathetic ear to our difficulties (echoed, as it turns out, by other
browser vendors), and intense technical discussion ensued over the last few
weeks among committee members to resolve them. As a result of this
discussion, the committee arrived at a revised design for subclassing ES6
classes that successfully addresses those problematic aspects. Overview of
that amended design is at [2]. The committee expressed confidence that this
amended design can be completed and put into the spec in ES6 timeframe.

We are very pleased with these developments. This revised design solves all
the problematic issues related to exotic objects’ and DOM objects’
subclassing, and will enable us, we hope, to ship a full and complete
implementation of ES6 classes quickly.

After this positive change of course however, implementation of ES6 classes
in V8 is no longer conformant to, or a conservative subset of, this new
revised design. As a responsible standards implementation vendor, and
following the guidelines of our launch process [3], we made the decision to
unship our implementation of ES6 classes.


ES6 class syntax will not, for the time being, be available in V8 (and
therefore in Chromium) without flags.


ES6 classes will still be available under --harmony-classes flag in V8, and
under ‘Enable experimental Javascript features’ flag in Chromium.

I would like to take this opportunity to thank all TC39 committee members,
and in particular, ECMAScript specification editor Allen Wirfs-Brock, for
springing into action so quickly, and working during over what for many of
them, I am sure, were winter holidays and time of their hard-earned
vacations to make sure ES6 classes specification is consistent,
implementable and addresses the language use cases in all their fullness,
while still staying on the tight schedule for completing ES6 standard.

Dmitry, on behalf of V8 team.

[1] https://groups.google.com/forum/#!topic/v8-users/bwEPA3vcscg

[2]
https://github.com/tc39/ecma262/blob/master/workingdocs/ES6-super-construct%3Dproposal.md

[3] https://developers.google.com/v8/launchprocess

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to