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.
