On Thu, Nov 27, 2014 at 11:44 AM, Jochen Eisinger <joc...@chromium.org> wrote:
> > > On Thu Nov 27 2014 at 11:39:17 AM Dmitry Lomov <dslo...@chromium.org> > wrote: > >> On Thu, Nov 27, 2014 at 11:01 AM, Drew Wilson <atwil...@chromium.org> >> wrote: >> >>> >>> >>> On Thu, Nov 27, 2014 at 10:35 AM, Dmitry Lomov <dslo...@chromium.org> >>> wrote: >>> >>>> >>>> >>>> On Thu, Nov 27, 2014 at 10:13 AM, Drew Wilson <atwil...@chromium.org> >>>> wrote: >>>> >>>>> What impact do we expect on web compatibility from apps that may >>>>> already be adding attributes named "include", etc to their String objects? >>>>> >>>>> I think that adding attributes that Firefox is already shipping should >>>>> be relatively safe, but I'm very leery about being the first browser to >>>>> add >>>>> new attributes. What can we do to avoid a repeat of >>>>> http://crbug.com/409858? Do we have any stats for how often these >>>>> attributes are already in use in web pages (tricky, since some apps are >>>>> legitimately using them for polyfill purposes)? >>>>> >>>> Correct, this is tricky. We do not have stats (and it is unclear how to >>>> get those stats). >>>> 'contains' was renamed to 'includes' precisely to reduce possible web >>>> compat breakage. >>>> Unfortunately we will not know of any breakage until we ship this - it >>>> has been available under a flag for some time, but it looks like nobody >>>> tests with 'Experimental Javascript features' enabled. >>>> Therefore enabling it early on canary in Chrome 41 process is our best >>>> mitigation in this particular case. >>>> >>> >>> I'm not sure "let's just launch this and see who complains" is an >>> acceptable path forward given that this specific approach was tried last >>> release with Array.values and blew up in our face. Why do we think this >>> time will be any different? >>> >> >>> Can we perhaps restrict this to canary + dev channel (and maybe the >>> first beta cut), but hold off on shipping to Stable until we find a way to >>> generate stats? >>> >> >> Shipping this now is de facto canary + dev. >> I do not know of a way to generate stats for this (unfortunately). >> > > You can collect stats via i::Isolate::CountUsage() > This is not a problem. A problem is detecting the problematic condition. Basically we need to count the incompatible additions of 'includes' to String.prototype, and things like "'includes' in a" where a is something that is derived from String. What does "incompatible" mean here is unclear (e.g. es6 polyfill that adds 'includes' will be quite ok) > > >> >> >>> Just making this change with no stats around conflicts would be like the >>> blink team deprecating an API without first measuring how often it's used. >>> >> >> >> I disagree. This does not deprecate anything. >> >> >>> >>>> >>>> Going forward, we have recently changed the definition of 'Experimental >>>> Javascript fetaures' in Chrome to mean 'enable staged features' (per our >>>> process https://developers.google.com/v8/launchprocess). >>>> This means that this flag really enables only those features that we >>>> consider quite mature, in particular they are expected to be stable and >>>> implementation of them must be complete. >>>> With that, we plan to evangelize enabling this flag among the power >>>> users, so that we hear about any breakage early. >>>> >>> >>> Can we set "enable staged features" for the Dev channel by default to >>> increase usage? I don't actually think this will solve the problem since >>> experience has shown us that not enough users run on that channel to catch >>> all of the incompatibility issues, but at least it's a start. >>> >> >> That would be great - I am sympathetic to that; but we typically have no >> feature distinction between Canary/Dev and subsequent Beta. >> >> >>> >>> >>>> >>>> Dmitry >>>> >>>> >>>> >>>>> >>>>> On Thu, Nov 27, 2014 at 9:27 AM, Dmitry Lomov <dslo...@chromium.org> >>>>> wrote: >>>>> >>>>>> [FYI +blink-dev] >>>>>> >>>>>> ES6 extends String.prototype with several methods: repeat, >>>>>> startsWith, endsWith, includes, codePointAt) and adds >>>>>> String.fromCodePoint >>>>>> method. >>>>>> >>>>>> Firefox ships codePointAt and fromCodePoint since release 29 [1], >>>>>> startsWith and endsWith since release 17 [2], and repeat since release 24 >>>>>> [3]. >>>>>> >>>>>> 'include' was previously named 'contains' and has been renamed at the >>>>>> last TC39 meeting. Firefox shipped 'contains' since release 17. >>>>>> >>>>>> These methods has been available under a flag for a while, and were >>>>>> staged in Chrome 40. >>>>>> >>>>>> [1] https://developer.mozilla.org/en-US/Firefox/Releases/29 >>>>>> [2] https://developer.mozilla.org/en-US/Firefox/Releases/17 >>>>>> [3] https://developer.mozilla.org/en-US/Firefox/Releases/24 >>>>>> >>>>>> Owners: yang...@chromium.org, dslo...@chromium.org >>>>>> >>>>> >>>>> >>>> >>> -- -- 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.