LGTM On Wed, Feb 20, 2019 at 8:58 PM Sathya Gunasekaran <gsat...@chromium.org> wrote:
> Contact Emails > > gsat...@chromium.org > > > Spec > > https://github.com/tc39/proposal-class-fields > > > Summary (taken from our WebFu article > <https://developers.google.com/web/updates/2018/12/class-fields>) > > > > This private fields proposal provides encapsulation: If you're using an > instance of a class, you cannot reference that class's private fields from > outside the class body. You can only reference private fields from within > the class that defines them. > > > The new private fields syntax is similar to public fields, except you > mark the field as being private by using # > <https://github.com/tc39/proposal-class-fields/blob/master/PRIVATE_SYNTAX_FAQ.md>. > You can think of the # as being part of the field name: > > > class IncreasingCounter { > > #count = 0; > > get value() { > > console.log('Getting the current value!'); > > return this.#count; > > } > > increment() { > > this.#count++; > > } > > } > > > Private fields are not accessible outside of the class body: > > > const counter = new IncreasingCounter(); > > counter.#count; > > // → SyntaxError > > counter.#count = 42; > > // → SyntaxError > > > This intent to ship includes private static fields as well: > > > class ClassCounter { > > static #count = 0; > > static increment() { > > this.#count++; > > } > > } > > ClassCounter.#count; > > // → SyntaxError > > ClassCounter.increment(); > > > > Interoperability and compatibility risk > > This stage 3 proposal introduces new syntax that was previously a > SyntaxError. There’s very low web compat risk. > > > Firefox: In development > <https://bugzilla.mozilla.org/show_bug.cgi?id=1499448> > > Safari: In development <https://bugs.webkit.org/show_bug.cgi?id=174212> > > Edge: No signals > > > Is this feature fully tested? > > > > Yes, this feature passes V8’s own mjsunit/cctest tests as well as all the > Test262 tests. > > > Tracking bug > > v8:5368 <http://bugs.chromium.org/p/v8/issues/detail?id=5368> > > > > Link to entry on the Chrome Platform Status dashboard > > https://www.chromestatus.com/feature/6035156464828416 > > > > Requesting approval to ship? > > Yes. Note that since this is a V8/JS feature, this post is just an FYI to > blink-dev — no sign off from Blink API owners is required. > > > > -- > -- > v8-dev mailing list > v8-...@googlegroups.com > http://groups.google.com/group/v8-dev > --- > You received this message because you are subscribed to the Google Groups > "v8-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to v8-dev+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-users mailing list v8-users@googlegroups.com 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 v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.