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.

Reply via email to