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