BaselineCompiler: Fix debugger test failures

RESOLVED FIXED

Status

()

defect
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: jandem, Assigned: jandem)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments, 1 obsolete attachment)

Comment hidden (empty)
(Assignee)

Comment 1

6 years ago
Turns out many debugger tests use the debugger-statement, and these scripts use SETALISEDVAR in the prologue to store the arguments object.

So compiling *ALIASEDVAR uncovered some debugger problems, going to attach some patches to address these first.
Attachment #709051 - Flags: review?(kvijayan) → review+
(Assignee)

Comment 3

6 years ago
In ion::HandleException, we loop over all frames to close live iterators, and the baseline compiler also looks for catch-handlers. If it finds a catch block, it jumps to it.

In debug mode this is wrong though: we call OnPop and OnExceptionUnwind debugger hooks, and these can query the top most frame. So if ion::HandleException moves past a BaselineJS frame, it has to pop the frame immediately by updating ionTop.

The easiest way to do this is by reusing EnsureExitFrame. This is the m-c part, let me know if you can think of another way to do this.
Attachment #709060 - Flags: review?(nicolas.b.pierron)
Comment on attachment 709060 [details] [diff] [review]
Part 2: IonFrame_Bailed_* changes

Review of attachment 709060 [details] [diff] [review]:
-----------------------------------------------------------------

Exporting EnsureExitFrame(IonCommonFrameLayout *frame), r=me
Renaming Bailed_* to Exit_* is boggus as there is no ExitFrame tag on the stack.  As discussed on IRC, Unwind_* / Unwound_* would be better for sharing them with Baseline frame exception handling (which might stop on frmae pop).
Attachment #709060 - Flags: review?(nicolas.b.pierron)
(Assignee)

Comment 6

6 years ago
Now uses IonFrame_Unwound_* instead of IonFrame_Exit_*
Attachment #709060 - Attachment is obsolete: true
Attachment #711763 - Flags: review?(nicolas.b.pierron)
Attachment #711763 - Flags: review?(nicolas.b.pierron) → review+
(Assignee)

Updated

6 years ago
Summary: BaselineCompiler: Compile ALIASEDVAR ops → BaselineCompiler: Fix debugger test failures
Whiteboard: [leave open]
(Assignee)

Comment 9

6 years ago
Fixes the debug/Frame-live-02.js failure + adds an extra test that also failed without the patch.
Attachment #712375 - Flags: review?(kvijayan)
Attachment #712375 - Flags: review?(kvijayan) → review+
(Assignee)

Comment 10

6 years ago
https://hg.mozilla.org/projects/ionmonkey/rev/44981f029a24
Status: ASSIGNED → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
(Assignee)

Updated

6 years ago
Whiteboard: [leave open]
You need to log in before you can comment on or make changes to this bug.