Closed
Bug 787848
Opened 14 years ago
Closed 13 years ago
IonMonkey: Crash [@ ExpressionDecompiler::decompilePC] or "Assertion failure: script->analysis()->getCode(pc).stackDepth == ((hpcdepth == unsigned(-1)) ? pcdepth : hpcdepth),"
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
VERIFIED
FIXED
mozilla18
| Tracking | Status | |
|---|---|---|
| firefox17 | --- | unaffected |
| firefox18 | --- | fixed |
| firefox-esr10 | --- | unaffected |
| firefox-esr17 | --- | unaffected |
People
(Reporter: gkw, Assigned: nbp)
References
Details
(4 keywords, Whiteboard: [ion:p1:fx18] [jsbugmon:update,ignore][adv-main18-])
Crash Data
Attachments
(1 file)
|
1.68 KB,
patch
|
luke
:
review+
|
Details | Diff | Splinter Review |
+++ This bug was initially created as a clone of Bug #787309 +++
+++ This bug was initially created as a clone of Bug #781660 +++
try {
i
}
catch (x if (function() {})()) {}
catch (d) {
this.z.z
}
=====
try {
t
} catch (d if true.b) {}
catch (x if new(print)) {}
=====
options('strict')
try {
w
} catch (e if 2[1]) {}
catch (N) {
eval.m
}
=====
try {
e
} catch (e if "") {}
catch (x if (function() {})) {
new print
}
=====
try {
x
} catch (b if print()) {}
catch (z) {
let(a = print()()) {}
}
=====
These testcases assert js debug shell on IonMonkey changeset f9ff9c554d4b without any CLI arguments, even with the patch in bug 781660 comment 10 (which fixes the testcases spun off in bug 787309) applied, at Assertion failure: script->analysis()->getCode(pc).stackDepth == ((hpcdepth == unsigned(-1)) ? pcdepth : hpcdepth),
options('strict');
try {
w
} catch (a if (function() {})()) {}
catch (a if ({})) {
NaN.m
}
crashes js opt shell on IonMonkey changeset f9ff9c554d4b without any CLI arguments at ExpressionDecompiler::decompilePC
These testcases are not fixed by the patches in bug 781660. Also assigning to Nicolas.
| Assignee | ||
Comment 1•14 years ago
|
||
If we are not following the JSOP_GOTO, we might evaluate a hidden JSOP_THROWING which expect 2 extra stack slots, as documented in the bytecode emitter code. Fake the 2 extra stack slots when we do not follow gotos.
Attachment #660435 -
Flags: review?(luke)
Comment 2•13 years ago
|
||
Comment on attachment 660435 [details] [diff] [review]
Handle JSOP_THROWING opcode in the decompiler.
Review of attachment 660435 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/jsopcode.cpp
@@ +6466,3 @@
> }
> +
> + // see BytecodeEmitter.cpp
BytecodeEmitter.cpp is a large file; it would be much nicer to write a nice little paragraph to the effect of your comment 1. Also, let's not mix // and /* comments in the same function.
Attachment #660435 -
Flags: review?(luke) → review+
| Assignee | ||
Comment 3•13 years ago
|
||
| Assignee | ||
Comment 4•13 years ago
|
||
I did not put all the test cases reported in this bug because they were all having the same problem.
Flags: in-testsuite+
| Reporter | ||
Comment 5•13 years ago
|
||
This went to Try previously:
https://tbpl.mozilla.org/?tree=Try&rev=b1ba09d0a184
Comment 6•13 years ago
|
||
Push backed out for make check failures:
https://tbpl.mozilla.org/php/getParsedLog.php?id=15645062&tree=Mozilla-Inbound
Backout:
https://hg.mozilla.org/integration/mozilla-inbound/rev/b903d1d1b861
| Reporter | ||
Updated•13 years ago
|
Flags: in-testsuite+
| Assignee | ||
Comment 7•13 years ago
|
||
Try server:
https://tbpl.mozilla.org/?tree=Try&rev=2e9b651cf28a
Minor fix to original patch:
https://hg.mozilla.org/integration/mozilla-inbound/rev/57e4febd2775
Comment 8•13 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
status-firefox18:
--- → fixed
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla18
Updated•13 years ago
|
Whiteboard: [ion:p1:fx18] [jsbugmon:update] → [ion:p1:fx18] [jsbugmon:update,reconfirm]
| Assignee | ||
Comment 9•13 years ago
|
||
decoder, how can it be reconfirmed, knowing that the test case is landed and that tbpl is green?
Comment 10•13 years ago
|
||
(In reply to Nicolas B. Pierron [:pierron] [:nbp] from comment #9)
> decoder, how can it be reconfirmed, knowing that the test case is landed and
> that tbpl is green?
I think I marked the wrong bug here, thanks :)
Whiteboard: [ion:p1:fx18] [jsbugmon:update,reconfirm] → [ion:p1:fx18] [jsbugmon:update,ignore]
Updated•13 years ago
|
Status: RESOLVED → VERIFIED
Comment 11•13 years ago
|
||
JSBugMon: This bug has been automatically verified fixed.
Updated•13 years ago
|
status-firefox17:
--- → unaffected
status-firefox-esr17:
--- → unaffected
Whiteboard: [ion:p1:fx18] [jsbugmon:update,ignore] → [ion:p1:fx18] [jsbugmon:update,ignore][adv-main18-]
Updated•13 years ago
|
Group: core-security
You need to log in
before you can comment on or make changes to this bug.
Description
•