Bug 158288 - Teach bytecode liveness about the debugger
Summary: Teach bytecode liveness about the debugger
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Saam Barati
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2016-06-01 17:24 PDT by Saam Barati
Modified: 2016-06-02 15:17 PDT (History)
18 users (show)

See Also:


Attachments
patch (5.52 KB, patch)
2016-06-01 19:26 PDT, Saam Barati
fpizlo: review+
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews103 for mac-yosemite (813.38 KB, application/zip)
2016-06-01 20:14 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews105 for mac-yosemite-wk2 (1005.28 KB, application/zip)
2016-06-01 20:18 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews113 for mac-yosemite (1.49 MB, application/zip)
2016-06-01 20:25 PDT, Build Bot
no flags Details
patch (4.06 KB, patch)
2016-06-02 12:49 PDT, Saam Barati
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Saam Barati 2016-06-01 17:24:32 PDT
Specifically, we should treat the scope as always live.
There is currently a bug where we tier up to the FTL, then throw an exception using 'throw'.
This causes us to OSR exit to baseline. The OSR exit believes the scope is dead. But it's not.
When debugging is enabled, it's always fair game to read from the scope register.
Comment 1 Saam Barati 2016-06-01 17:50:49 PDT
This program crashes when run w/ debugging opcodes and shadow chicken:
```
"use strict";
function foo(b) {
    if (b)
        throw "foo";
    return b;
}
noInline(foo);


for (let i = 0; i < 10000; i++)
    foo(false);

foo(true);
```
Comment 2 Saam Barati 2016-06-01 19:26:27 PDT
Created attachment 280295 [details]
patch
Comment 3 Build Bot 2016-06-01 20:13:56 PDT
Comment on attachment 280295 [details]
patch

Attachment 280295 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/1420927

New failing tests:
inspector/debugger/call-frame-this-nonstrict.html
Comment 4 Build Bot 2016-06-01 20:14:01 PDT
Created attachment 280298 [details]
Archive of layout-test-results from ews103 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-yosemite  Platform: Mac OS X 10.10.5
Comment 5 Build Bot 2016-06-01 20:17:58 PDT
Comment on attachment 280295 [details]
patch

Attachment 280295 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1420941

New failing tests:
inspector/debugger/call-frame-this-nonstrict.html
Comment 6 Build Bot 2016-06-01 20:18:05 PDT
Created attachment 280300 [details]
Archive of layout-test-results from ews105 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews105  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5
Comment 7 Build Bot 2016-06-01 20:24:57 PDT
Comment on attachment 280295 [details]
patch

Attachment 280295 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1420943

New failing tests:
inspector/debugger/call-frame-this-nonstrict.html
Comment 8 Build Bot 2016-06-01 20:25:01 PDT
Created attachment 280301 [details]
Archive of layout-test-results from ews113 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-yosemite  Platform: Mac OS X 10.10.5
Comment 9 BJ Burg 2016-06-01 20:30:02 PDT
<rdar://problem/26571493>
Comment 10 Saam Barati 2016-06-02 12:49:09 PDT
Created attachment 280351 [details]
patch
Comment 11 WebKit Commit Bot 2016-06-02 15:17:06 PDT
Comment on attachment 280351 [details]
patch

Clearing flags on attachment: 280351

Committed r201622: <http://trac.webkit.org/changeset/201622>
Comment 12 WebKit Commit Bot 2016-06-02 15:17:12 PDT
All reviewed patches have been landed.  Closing bug.