Closed Bug 700070 Opened 8 years ago Closed 8 years ago
Exception Unwind resumption values can cause assertions
The debugger tests don't try returning all four kinds of resumption values from an onExceptionUnwind handler, and under JaegerMonkey, forcing a constructor to return a primitive can cause an assertion: Assertion failure: !args.rval().isPrimitive(), at /home/jimb/moz/dbg/js/src/jsinterp.cpp:651 This patch changes AnyFrameEpilogue to match what the interpreter and mjit::Compiler::emitReturn does, and adds test cases for all the resumption values.
Attachment #572241 - Flags: review?(jorendorff)
Comment on attachment 572241 [details] [diff] [review] Have stubs::AnyFrameEpilogue call the full ScriptEpilogue before StackFrame::functionEpilogue, not just ScriptDebugEpilogue after functionEpilogue. Does rearranging the order of ScriptEpilogue and functionEpilogue matter? It could if there's a JSD1 debugging hook that gets called from ScriptEpilogue, but I don't think it really matters. Either order is fine. r=me.
Attachment #572241 - Flags: review?(jorendorff) → review+
(In reply to Jason Orendorff [:jorendorff] from comment #1) > Does rearranging the order of ScriptEpilogue and functionEpilogue matter? It > could if there's a JSD1 debugging hook that gets called from ScriptEpilogue, > but I don't think it really matters. Either order is fine. I think it doesn't matter, because all functionEpilogue does is 'put' the call object or arguments object. Those objects have to work properly both before and after that call. If anyone can access the actual stack slots they used to alias, then I guess one could see that they're not aliased any more. But can they?
Status: NEW → ASSIGNED
When pushing to inbound, please can you set the assignee & target milestone (https://wiki.mozilla.org/Tree_Rules/Inbound#Please_do_the_following_after_pushing_to_inbound), thanks :-) https://hg.mozilla.org/mozilla-central/rev/4ecf595875a5
Assignee: general → jimb
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla11
(In reply to Ed Morley [:edmorley] from comment #4) > When pushing to inbound, please can you set the assignee & target milestone > (https://wiki.mozilla.org/Tree_Rules/ > Inbound#Please_do_the_following_after_pushing_to_inbound), thanks :-) > > https://hg.mozilla.org/mozilla-central/rev/4ecf595875a5 Thanks; I'll do this in the future.
You need to log in before you can comment on or make changes to this bug.