Issue metadata
Sign in to add a comment
|
Canary behavior change from LTG Chrome
Reported by
cwe...@microsoft.com,
Nov 3 2017
|
||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063 Steps to reproduce the problem: 1. Load the website in the wwwroot.zip file in both Chrome and ChromeCanary 2. Debug the multiply recursive method (around line 128 in the attached site.js file, which can also be found inside the wwwroot.zip), setting a breakpoint so you can see the locals 3. Examine the locals in Chrome Debug Tools on both versions of Chrome 4. See that the same exact site/scripts result in different local variable behavior between the two versions of Chrome What is the expected behavior? Inside the multiply-recursive method, Chrome LKG defines 'this', but ChromeCanary leaves it undefined. See the attached image in which ChromeCanary is on the right, and ChromeLKG is on the left. What went wrong? This behavior difference between Chrome and ChromeCanary caused some of our test automation to fail when run on ChromeCanary. Primarily, we'd like to know if this behavioral change is intentional, and whether it will eventually propagate to the main Chrome LKG releases. Is it a bug, or is this change intentional? Did this work before? Yes Worked on 62.0.3202.75, but it could also work on versions newer than that Chrome version: 64.0.3257.1 Channel: canary OS Version: 10.0 Flash Version:
,
Nov 6 2017
cwells@ - Thanks for filing the issue...!! After unzipping the wwwroot.zip, was unable to find any website to launch. Hence, requesting you to please provide the website details in which the issue is observed. This will help us in triaging the issue further. Thanks...!!
,
Nov 6 2017
krajshree@ - My apologies for confusing you...!! To simplify the issue I have deleted the "wwwroot.zip" file, as the only file of significance to my bug report is the "site.js" file mentioned and attached above. The HTML/website context in which the script is run is unimportant. I was hoping someone could investigate the difference in behavior between the different versions of Chrome (as shown in the attached screenshot), specifically regarding the population of the local variable "this" inside the multiply-recursive call around line 128 in site.js. Thanks so much for your help triaging...!!
,
Nov 6 2017
Thank you for providing more feedback. Adding requester "krajshree@chromium.org" to the cc list and removing "Needs-Feedback" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Nov 6 2017
,
Nov 7 2017
Able to reproduce the issue on Windows 10, Ubuntu 14.04 and Mac 10.12.6 with chrome Dev #64.0.3253.3, Canary #64.0.3260.0 Issue broken in M-64 Bisect Info: =========== Good build : 64.0.3248.0, Revision Range -510988 Bad build : 64.0.3249.0, Revision Range -511318 After executing the per-revision bisect script , i got the following CL's between good and bad build versions =========================================== https://chromium.googlesource.com/chromium/src/+log/f34c0ec7e1bae02695666d69135b1c6cce65ed46..8db1dff254d91155d679bfdded4360519c1a8932 The suspecting Change Log is : ----------- https://chromium.googlesource.com/v8/v8/+/eff39bbb70e92dd8115f1ac8e3b48b5c53ad0a35 cbruni@- Could you please look into this issue, if it's related to your change? if not could you please help us to reassign this issue to the right owner.
,
Nov 7 2017
,
Nov 8 2017
,
Nov 8 2017
Probably the following CL caused the change in DevTools: a11b0d9 [inspector] improve this value for arrow function in scopes by Alexey Kozyatinskiy ยท 2 weeks ago Can you have a look at it, Alexey?
,
Nov 8 2017
This issue is marked as a release blocker with no milestone associated. Please add an appropriate milestone. All release blocking issues should have milestones associated to it, so that the issue can tracked and the fixes can be pushed promptly. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Nov 8 2017
This value in your arrow function should be undefined. You can check it by adding console.log(this) in your finalMethod. Arrow function gets this value when it is defined, so it gets this value from top level function which have no this value. Before we show incorrect information. I am not sure why this in you IIFE is undefined, I think it should be window.
,
Nov 13 2017
This issue is marked as a release blocker with no milestone associated. Please add an appropriate milestone. All release blocking issues should have milestones associated to it, so that the issue can tracked and the fixes can be pushed promptly. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Nov 28 2017
,
Nov 28 2017
Well, that's a bummer, and a very unsatisfying resolution. This issue was marked as a "release blocker", and today get's resolved "Won't Fix" with no explanation? Should I take this as meaning that the behavior change was intentional, and that you will be rolling this change into future version of stable Chrome? Or just that you don't have the time or bandwidth to fix the problem now? I would appreciate some additional explanation. Thanks for your time, Chris
,
Nov 29 2017
I am not sure but by #11: it looks to me like previous behavior was incorrect. Arrow function should capture this when it is defined. If you put console.log(this) into your arrow function you can see that real this value is not OtherClass.
,
Nov 30 2017
,
Nov 30 2017
,
Nov 30 2017
Okay, thanks Kozy! We'll take the new behavior as correct, update our test automation accordingly, and expect to see the same behavior in all versions of Chrome in the future. |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by ligim...@chromium.org
, Nov 3 2017