Intent to ship: ES6 classes

221 views
Skip to first unread message

Dmitry Lomov

unread,
Feb 14, 2015, 6:34:48 AM2/14/15
to v8-users, blink-dev
[blink-dev: FYI]

We have updated our staged implementation of ES6 classes to match the recent changes in ES6 spec draft.
We are happy to report that these changes enabled us to implement the spec in its entirety (almost; see limitations below), most critically including subclassing of built-ins and exotic objects.

IE has classes in preview release [1]. No other browser currently ships classes (Mozilla bug [2]).

V8 implementation of classes is up-to-date with the latest ES6 draft spec.

Limitations:

- Classes are dependent on lexical declarations. Since the latter are currently only supported in strict mode, we currently only support classes in strict mode as well.
- At this time we do not support 'new.target' JS syntax. Implementation of that will follow under a separate intent-to-implement/intent-to-ship. (We stress that this is not due to any deficiencies or issues with the specification  or semantics - our implementation is just not ready yet)

ad...@chromium.org

unread,
Feb 17, 2015, 4:45:00 AM2/17/15
to blin...@chromium.org, v8-u...@googlegroups.com
Non-owner LGTM. Excited to see (updated) classes shipping!

Relevant DevTools meta-bug for tracking debugger support for classes.


On Saturday, February 14, 2015 at 11:34:48 AM UTC, Dmitry wrote:
[blink-dev: FYI]

We have updated our staged implementation of ES6 classes to match the recent changes in ES6 spec draft.
We are happy to report that these changes enabled us to implement the spec in its entirety (almost; see limitations below), most critically including subclassing of built-ins and exotic objects.

IE has classes in preview release [1]. No other browser currently ships classes (Mozilla bug [2]).

V8 implementation of classes is up-to-date with the latest ES6 draft spec.

Limitations:

- Classes are dependent on lexical declarations. Since the latter are currently only supported in strict mode, we currently only support classes in strict mode as well.
- At this time we do not support 'new.target' JS syntax. Implementation of that will follow under a separate intent-to-implement/intent-to-ship. (We stress that this is not due to any deficiencies or issues with the specification  or semantics - our implementation is just not ready yet)

Chris Harrelson

unread,
Feb 22, 2015, 6:38:08 PM2/22/15
to ad...@chromium.org, blin...@chromium.org, v8-u...@googlegroups.com
Great news! This is a significant milestone for improving JavaScript.

Chris

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Ryosuke Niwa (Apple)

unread,
Mar 7, 2015, 7:44:46 PM3/7/15
to Dmitry Lomov, blink-dev
On Sat, Feb 14, 2015 at 3:34 AM, Dmitry Lomov <dsl...@chromium.org> wrote:
We have updated our staged implementation of ES6 classes to match the recent changes in ES6 spec draft.
We are happy to report that these changes enabled us to implement the spec in its entirety (almost; see limitations below), most critically including subclassing of built-ins and exotic objects.

IE has classes in preview release [1]. No other browser currently ships classes (Mozilla bug [2]).

FYI, I'm implementing it in WebKit [3].

- Classes are dependent on lexical declarations. Since the latter are currently only supported in strict mode, we currently only support classes in strict mode as well.

Since we haven't implemented lexical declarations, the current behind-the-flag implementation in WebKit uses "var" declaration.  We're considering adding some restraints in place to avoid forward compatibility / interoperability issues however.


- R. Niwa (Apple)

Reply all
Reply to author
Forward
0 new messages