New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 614019 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug



Sign in to add a comment

Breakpoints before 'super' crash the page

Reported by i...@scirra.com, May 23 2016

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36

Steps to reproduce the problem:
1. Open new tab
2. Open devtools
3. Load test file

What is the expected behavior?
Code execution should stop allowing you to inspect arguments of constructor call etc

What went wrong?
Page will crash and devtools will disconnect (100% replicable)

Did this work before? N/A 

Chrome version: 50.0.2661.102  Channel: stable
OS Version: 10.0
Flash Version: Shockwave Flash 21.0 r0

Issue is also replicable by placing a breakpoint on normal logic before the super call, or by placing the break point on the super call.

Imagine this is to do with devtools trying to access 'this' before it's construction.

Page loads correctly if devtools is closed.
 
crash.html
122 bytes View Download
Owner: kozyatinskiy@chromium.org
Status: Assigned (was: Unconfirmed)
Thanks for your report.
I'm not able to reproduce it. Try to run crash.html in ToT and 50.0.2661.102 on Linux and Windows.
Could you provide more details? Do you use some experimental DevTools features?
Labels: Needs-Feedback

Comment 4 by i...@scirra.com, May 25 2016

Okay I've had a search around my settings. I did have "Experimental Web Platform features" enabled, but did a quick test and that seems unrelated. While repeating I noticed I had a variable watch set trying to access 'this.genericProperty', removing/adding this it seemed make the difference
Labels: -OS-Windows -Pri-2 -Needs-Feedback OS-All Pri-1
Thanks!

Console code to reproduce:
(function () {
class A { constructor () { this.a = 239; } }
class B extends A {
  constructor () {
    // console.log(this.a); // throw Reference Error
    debugger; // evaluate this.a here for crash
    super();
    console.log(this.a);
  }
}
return new B();
})();
Cc: yangguo@chromium.org
Components: -Platform>DevTools Blink>JavaScript
This also needs to be merged to M51 and M52, right?
Project Member

Comment 8 by bugdroid1@chromium.org, May 31 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/54245bd6b28dc0f1b50bf196e9453bbe948612df

commit 54245bd6b28dc0f1b50bf196e9453bbe948612df
Author: kozyatinskiy <kozyatinskiy@chromium.org>
Date: Tue May 31 22:04:53 2016

Debugger: fix crash in DebugEvaluate

If scripts is paused in class constructor before super() call then any attempt to evaluate something like this.* on top frame will produce crash.

BUG= chromium:614019 
R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2013223003
Cr-Commit-Position: refs/heads/master@{#36625}

[modify] https://crrev.com/54245bd6b28dc0f1b50bf196e9453bbe948612df/src/debug/debug-evaluate.cc
[add] https://crrev.com/54245bd6b28dc0f1b50bf196e9453bbe948612df/test/mjsunit/es6/debug-evaluate-receiver-before-super.js

Labels: merge-requested-5.1 merge-requested-5.2
Yes, we'd like to merge it since it produces a crash while debugging classes.
Cc: hablich@chromium.org
Components: Blink>JavaScript>Runtime
@hablich, please take a look. I need merge approval for M51 and M52.
Labels: -merge-requested-5.1 -merge-requested-5.2 Merge-Approved-52 Merge-Approved-51
Please merge your CL in to M52 branch asap so that it gets picked up for Beta promotion scheduled for next week. 
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 10 2016

Labels: merge-merged-5.1
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4bf0f334fdca37c55e28cff7281d6b548e7f98cf

commit 4bf0f334fdca37c55e28cff7281d6b548e7f98cf
Author: kozyatinskiy <kozyatinskiy@chromium.org>
Date: Fri Jun 10 01:48:53 2016

Version 5.1.281.64 (cherry-pick)

Merged 54245bd6b28dc0f1b50bf196e9453bbe948612df

Debugger: fix crash in DebugEvaluate

BUG= chromium:614019 
LOG=N
R=yangguo@chromium.org
NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2049973003
Cr-Commit-Position: refs/branch-heads/5.1@{#75}
Cr-Branched-From: 167dc63b4c9a1d0f0fe1b19af93644ac9a561e83-refs/heads/5.1.281@{#1}
Cr-Branched-From: 03953f52bd4a184983a551927c406be6489ef89b-refs/heads/master@{#35282}

[modify] https://crrev.com/4bf0f334fdca37c55e28cff7281d6b548e7f98cf/include/v8-version.h
[modify] https://crrev.com/4bf0f334fdca37c55e28cff7281d6b548e7f98cf/src/debug/debug-evaluate.cc
[add] https://crrev.com/4bf0f334fdca37c55e28cff7281d6b548e7f98cf/test/mjsunit/es6/debug-evaluate-receiver-before-super.js

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 10 2016

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 10 2016

Status: Fixed (was: Assigned)
Labels: -Merge-Approved-51 -Merge-Approved-52
Labels: backport-review
May also need to be floated on Node.js 6.x (for V8 5.0), but let us wait for closure on https://github.com/nodejs/node/pull/8054.
Labels: -backport-review backport-done
Node 6 has upgraded to V8 5.1, so a backport/float for 5.0 is no longer needed.
Labels: -Backport-Done NodeJS-Backport-Done

Sign in to add a comment