[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Drew Wilson
Resending to v8-users since apparently I didn't have permission to post
previously.

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)?

 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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Dmitry Lomov
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.

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.

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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Drew Wilson
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? 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.



 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.



 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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread PhistucK
Can we add a console log (not a warning) for the canary/dev/beta run
(perhaps stable, too?) for a little while to aid developers with possible
breakages?
If String.prototype.includes is overridden, deleted or accessed (called or
gotten), the log would be printed.


☆*PhistucK*

On Thu, Nov 27, 2014 at 12:01 PM, 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? 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.



 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.



 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




  To unsubscribe from this group and stop receiving emails from it, send an
 email to blink-dev+unsubscr...@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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Dmitry Lomov
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).


 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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Jochen Eisinger
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()




 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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Dmitry Lomov
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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Dmitry Lomov
One suggestion that came out of discussions with folks is:
- add an on-by-default flag 'Enable new Javascript features' that could
be turned off at run-time.
Javascript features we ship will be under that flag for 1 stable release.
I'll investigate feasibility of that.

On Thu, Nov 27, 2014 at 11:39 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).


 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.


Re: [v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread 'Andreas Rossberg' via v8-users
On 27 November 2014 at 12:09, Dmitry Lomov dslo...@chromium.org wrote:
 One suggestion that came out of discussions with folks is:
 - add an on-by-default flag 'Enable new Javascript features' that could be
 turned off at run-time.
 Javascript features we ship will be under that flag for 1 stable release.
 I'll investigate feasibility of that.

AFAICS, this would be equivalent to turning on --harmony/Experimental
JavaScript by default, and hence redefining staging to mean ship with
opt-out. That might make sense, but requires reconsidering our
staging criteria. We'll have to discuss this some more.

/Andreas

-- 
-- 
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.


Re: [v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread PhistucK
This is to ease debugging, not to solve every single case. As much as
possible, log it. On a 'best available' case.


☆*PhistucK*

On Thu, Nov 27, 2014 at 1:14 PM, 'Andreas Rossberg' via blink-dev 
blink-...@chromium.org wrote:

 On 27 November 2014 at 11:39, 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).

 What Dmitry said. Of course, if problems are discovered there, then we
 will roll back before the next beta. But if they aren't then we have
 no realistic way of knowing other than shipping it in beta. That's
 what beta is for, after all.

 The good news is that after the previous incident we changed our
 roll-out procedure such that unshipping a feature now consists of only
 swapping a macro invocation.

 It's also worth noting that we have shipped many other new features
 without any problems. Array.p.values was the only exception so far.


 On 27 November 2014 at 11:06, PhistucK phist...@gmail.com wrote:
  Can we add a console log (not a warning) for the canary/dev/beta run
  (perhaps stable, too?) for a little while to aid developers with possible
  breakages?
  If String.prototype.includes is overridden, deleted or accessed (called
 or
  gotten), the log would be printed.

 Unfortunately, I believe that is infeasible. As Dmitry already noted,
 it is not at all easy to diagnose the situation, even if you were
 willing to accept lots of false positives. JavaScript is far too
 dynamic (and generally broken beyond repair when it comes to
 robustness). Moreover, ES6 adds plenty of new methods across the
 board, and we wouldn't want to install a complicated mechanism like
 that for each and every one of them, even though a priori, there is no
 reason to believe that any one of them has less or more potential for
 breakage than A.p.includes has.

 /Andreas

 To unsubscribe from this group and stop receiving emails from it, send an
 email to blink-dev+unsubscr...@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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Mathias Bynens
On Thu, Nov 27, 2014 at 12:52 PM, Philip Jägenstedt phil...@opera.com wrote:
 It sure sounds like 'contains' would be less likely to cause trouble,
 and is also a slightly better name IMHO.

 Is Mozilla on board with renaming it? If they're not keen, I think
 following their lead with 'contains' makes more sense.

The renaming of `contains` to `includes` was decided at the recent
TC39 meeting: 
https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-18.md#51--44-arrayprototypecontains-and-stringprototypecontains
`contains` was breaking the web (for both `String` and `Array`).

-- 
-- 
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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread PhistucK
This is very debateable, really. To me, it makes sense (and in my
experience, also exists) that contains makes more sense (as a shortcuts
for return this.indexOf(str) !== -1) than 'includes'.


☆*PhistucK*

On Thu, Nov 27, 2014 at 1:52 PM, Philip Jägenstedt phil...@opera.com
wrote:

 On Thu, Nov 27, 2014 at 9:27 AM, Dmitry Lomov dslo...@chromium.org
 wrote:

  'include' was previously named 'contains' and has been renamed at the
 last TC39 meeting. Firefox shipped 'contains' since release 17.

 It sure sounds like 'contains' would be less likely to cause trouble,
 and is also a slightly better name IMHO.

 Is Mozilla on board with renaming it? If they're not keen, I think
 following their lead with 'contains' makes more sense.

 Philip

 To unsubscribe from this group and stop receiving emails from it, send an
 email to blink-dev+unsubscr...@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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Dmitry Lomov
On Thu, Nov 27, 2014 at 12:54 PM, Mathias Bynens mathi...@opera.com wrote:

 On Thu, Nov 27, 2014 at 12:52 PM, Philip Jägenstedt phil...@opera.com
 wrote:
  It sure sounds like 'contains' would be less likely to cause trouble,
  and is also a slightly better name IMHO.
 
  Is Mozilla on board with renaming it? If they're not keen, I think
  following their lead with 'contains' makes more sense.

 The renaming of `contains` to `includes` was decided at the recent
 TC39 meeting:
 https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-18.md#51--44-arrayprototypecontains-and-stringprototypecontains
 `contains` was breaking the web (for both `String` and `Array`).


Yes, 'contains' was breaking (IE reports that as well).

-- 
-- 
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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread PhistucK
*shortcut

My last message was probably confusing, so continuing it -
By that, I mean that it makes more sense for 'contains' to exists already
on the web, than for 'includes'.


☆*PhistucK*

On Thu, Nov 27, 2014 at 1:55 PM, PhistucK phist...@gmail.com wrote:

 This is very debateable, really. To me, it makes sense (and in my
 experience, also exists) that contains makes more sense (as a shortcuts
 for return this.indexOf(str) !== -1) than 'includes'.


 ☆*PhistucK*

 On Thu, Nov 27, 2014 at 1:52 PM, Philip Jägenstedt phil...@opera.com
 wrote:

 On Thu, Nov 27, 2014 at 9:27 AM, Dmitry Lomov dslo...@chromium.org
 wrote:

  'include' was previously named 'contains' and has been renamed at the
 last TC39 meeting. Firefox shipped 'contains' since release 17.

 It sure sounds like 'contains' would be less likely to cause trouble,
 and is also a slightly better name IMHO.

 Is Mozilla on board with renaming it? If they're not keen, I think
 following their lead with 'contains' makes more sense.

 Philip

 To unsubscribe from this group and stop receiving emails from it, send an
 email to blink-dev+unsubscr...@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.


[v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread PhistucK
*exist

'contains' is the obvious choice, 'includes' is not. This is what I mean.
While 'contains' is better named, 'includes' is less risky and therefore
should be chosen.

I am finally done, I think. Sorry for the triple post.


☆*PhistucK*

On Thu, Nov 27, 2014 at 1:57 PM, PhistucK phist...@gmail.com wrote:

 *shortcut

 My last message was probably confusing, so continuing it -
 By that, I mean that it makes more sense for 'contains' to exists already
 on the web, than for 'includes'.


 ☆*PhistucK*

 On Thu, Nov 27, 2014 at 1:55 PM, PhistucK phist...@gmail.com wrote:

 This is very debateable, really. To me, it makes sense (and in my
 experience, also exists) that contains makes more sense (as a shortcuts
 for return this.indexOf(str) !== -1) than 'includes'.


 ☆*PhistucK*

 On Thu, Nov 27, 2014 at 1:52 PM, Philip Jägenstedt phil...@opera.com
 wrote:

 On Thu, Nov 27, 2014 at 9:27 AM, Dmitry Lomov dslo...@chromium.org
 wrote:

  'include' was previously named 'contains' and has been renamed at the
 last TC39 meeting. Firefox shipped 'contains' since release 17.

 It sure sounds like 'contains' would be less likely to cause trouble,
 and is also a slightly better name IMHO.

 Is Mozilla on board with renaming it? If they're not keen, I think
 following their lead with 'contains' makes more sense.

 Philip

 To unsubscribe from this group and stop receiving emails from it, send
 an email to blink-dev+unsubscr...@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.


Re: [v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread Dmitry Lomov
On Thu, Nov 27, 2014 at 12:37 PM, PhistucK phist...@gmail.com wrote:

 This is to ease debugging, not to solve every single case. As much as
 possible, log it. On a 'best available' case.


Logging would be prohibitively expensive as well, and lead to too many
false positives.
We will have to log, for example, every time somebody does an 'includes'
in obj.



 ☆*PhistucK*

 On Thu, Nov 27, 2014 at 1:14 PM, 'Andreas Rossberg' via blink-dev 
 blink-...@chromium.org wrote:

 On 27 November 2014 at 11:39, 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).

 What Dmitry said. Of course, if problems are discovered there, then we
 will roll back before the next beta. But if they aren't then we have
 no realistic way of knowing other than shipping it in beta. That's
 what beta is for, after all.

 The good news is that after the previous incident we changed our
 roll-out procedure such that unshipping a feature now consists of only
 swapping a macro invocation.

 It's also worth noting that we have shipped many other new features
 without any problems. Array.p.values was the only exception so far.


 On 27 November 2014 at 11:06, PhistucK phist...@gmail.com wrote:
  Can we add a console log (not a warning) for the canary/dev/beta run
  (perhaps stable, too?) for a little while to aid developers with
 possible
  breakages?
  If String.prototype.includes is overridden, deleted or accessed (called
 or
  gotten), the log would be printed.

 Unfortunately, I believe that is infeasible. As Dmitry already noted,
 it is not at all easy to diagnose the situation, even if you were
 willing to accept lots of false positives. JavaScript is far too
 dynamic (and generally broken beyond repair when it comes to
 robustness). Moreover, ES6 adds plenty of new methods across the
 board, and we wouldn't want to install a complicated mechanism like
 that for each and every one of them, even though a priori, there is no
 reason to believe that any one of them has less or more potential for
 breakage than A.p.includes has.

 /Andreas

 To unsubscribe from this group and stop receiving emails from it, send an
 email to blink-dev+unsubscr...@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.


-- 
-- 
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.


Re: [v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread 'Andreas Rossberg' via v8-users
Firefox simply got lucky in the case of the referenced bug, because
some web pages serve different code depending on what browser they
encounter.


On 27 November 2014 at 13:14, Mathias Bynens mathi...@opera.com wrote:
 On Thu, Nov 27, 2014 at 1:06 PM, Philip Jägenstedt phil...@opera.com wrote:
 On Thu, Nov 27, 2014 at 12:54 PM, Mathias Bynens mathi...@opera.com wrote:
 On Thu, Nov 27, 2014 at 12:52 PM, Philip Jägenstedt phil...@opera.com 
 wrote:
 It sure sounds like 'contains' would be less likely to cause trouble,
 and is also a slightly better name IMHO.

 Is Mozilla on board with renaming it? If they're not keen, I think
 following their lead with 'contains' makes more sense.

 The renaming of `contains` to `includes` was decided at the recent
 TC39 meeting: 
 https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-18.md#51--44-arrayprototypecontains-and-stringprototypecontains
 `contains` was breaking the web (for both `String` and `Array`).

 That's really unfortunate, it's going to be silly to have e.g.
 DOMStringList.contains but Array.includes...

 Yep. But it is what it is. :(

 What kind of content is breaking, and how has Firefox been able to
 ship with .contains since November 2012?

 https://code.google.com/p/chromium/issues/detail?id=409858 is an example.

 --
 --
 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.

-- 
-- 
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.


Re: [v8-users] Re: [blink-dev] Intent to ship: ES6 String functions

2014-11-27 Thread PhistucK
Then I guess I am also looking to help educate about new platform features.

I understand this use case is much less needed, though.


☆*PhistucK*

On Thu, Nov 27, 2014 at 9:52 PM, Dmitry Lomov dslo...@chromium.org wrote:



 On Thu, Nov 27, 2014 at 8:48 PM, PhistucK phist...@gmail.com wrote:

 Well, you got the wrong idea.
 I am looking to help developers, not to tell them something is
 necessarily wrong​.
 The expensive ones (like includes in obj) are not part of best
 available in my opinion.


 These are the ones that cause problems though (both in 'values' case and
 in Array.prototype.contains case).


 foo = obj.includes, obj.includes() and String.prototype.includes = foo
 are enough.


 These typically wouldn't cause problems (as in: won't break web sites)
 since all this likely overrides the ones we ship.

 The point is to note that this new, potentially controversial (its name
 only, of course) feature was introduced and that if you suddenly see
 issues, take a note that it was added, in case it applies to your case. If
 not, carry on.

 Logs such as these -
 String.prototype.includes was recently added to the platform and was
 overridden by this website. If you expect the standard variation of this
 method, perhaps polyfill it only when it does not exist.
 String.prototype.includes was recently added to the platform and used by
 this website. If you see issues, consider this as a possible culprit.


 ☆*PhistucK*

 On Thu, Nov 27, 2014 at 2:01 PM, Dmitry Lomov dslo...@chromium.org
 wrote:



 On Thu, Nov 27, 2014 at 12:37 PM, PhistucK phist...@gmail.com wrote:

 This is to ease debugging, not to solve every single case. As much as
 possible, log it. On a 'best available' case.


 Logging would be prohibitively expensive as well, and lead to too many
 false positives.
 We will have to log, for example, every time somebody does an
 'includes' in obj.



 ☆*PhistucK*

 On Thu, Nov 27, 2014 at 1:14 PM, 'Andreas Rossberg' via blink-dev 
 blink-...@chromium.org wrote:

 On 27 November 2014 at 11:39, 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).

 What Dmitry said. Of course, if problems are discovered there, then we
 will roll back before the next beta. But if they aren't then we have
 no realistic way of knowing other than shipping it in beta. That's
 what beta is for, after all.

 The good news is that after the previous incident we changed our
 roll-out procedure such that unshipping a feature now consists of only
 swapping a macro invocation.

 It's also worth noting that we have shipped many other new features
 without any problems. Array.p.values was the only exception so far.


 On 27 November 2014 at 11:06, PhistucK phist...@gmail.com wrote:
  Can we add a console log (not a warning) for the canary/dev/beta run
  (perhaps stable, too?) for a little while to aid developers with
 possible
  breakages?
  If String.prototype.includes is overridden, deleted or accessed
 (called or
  gotten), the log would be printed.

 Unfortunately, I believe that is infeasible. As Dmitry already noted,
 it is not at all easy to diagnose the situation, even if you were
 willing to accept lots of false positives. JavaScript