Closed
Bug 915171
Opened 11 years ago
Closed 11 years ago
Assertion failure: barrier->type() == MIRType_Object || barrier->type() == MIRType_Value, at jit/IonBuilder.cpp:3762
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla26
People
(Reporter: decoder, Assigned: h4writer)
References
Details
(Keywords: assertion, testcase, Whiteboard: [jsbugmon:update])
Attachments
(2 files, 2 obsolete files)
(deleted),
text/plain
|
Details | |
(deleted),
patch
|
jandem
:
review+
|
Details | Diff | Splinter Review |
The following testcase asserts on mozilla-central revision 9e9f74116749 (threadsafe build, run with --fuzzing-safe --thread-count=2 --ion-parallel-compile=on --ion-eager --ion-regalloc=backtracking --ion-compile-try-catch):
function exitFunc() {}
exitFunc();
function C() {
new exitFunc();
}
new C;
Reporter | ||
Comment 1•11 years ago
|
||
Forgot to strip the options variable. This also reproduces just with --ion-eager and it probably also doesn't require a threadsafe build. Marked this s-s because that kind of assertion has been s-s previously.
Whiteboard: [jsbugmon:update,bisect]
Reporter | ||
Comment 2•11 years ago
|
||
Comment 3•11 years ago
|
||
IonBuilder type asserts generally seem bad, so I'm going to mark it sec-high. Adjust as appropriate.
Keywords: sec-high
Reporter | ||
Updated•11 years ago
|
Whiteboard: [jsbugmon:update,bisect] → [jsbugmon:update]
Reporter | ||
Comment 4•11 years ago
|
||
JSBugMon: Bisection requested, result:
autoBisect shows this is probably related to the following changeset:
The first bad revision is:
changeset: http://hg.mozilla.org/mozilla-central/rev/94d54fe84c77
user: Hannes Verschore
date: Fri Sep 06 15:10:54 2013 +0200
summary: Bug 909717: IonBuilder: Introduce typed typebarriers, r=jandem
This iteration took 364.332 seconds to run.
Comment 5•11 years ago
|
||
Hannes, is bug 909717 likely related?
Reporter | ||
Comment 6•11 years ago
|
||
Attachment #803021 -
Attachment is obsolete: true
Assignee | ||
Comment 7•11 years ago
|
||
Yes, it is a assertion I added. I guessed it before I saw the bisect ;).
Assignee: general → hv1989
Assignee | ||
Comment 8•11 years ago
|
||
Thistype can also return Undefined. So that's why we are failing here. I even think the assert can get removed, since it doesn't check something actually.
Pick a random type and there shouldn't be a problem if it flows there. It's just asserting that ThisType only gives these types.
Actually looking back, there was a fault in the original code :0
Attachment #803705 -
Flags: review?(jdemooij)
Assignee | ||
Comment 9•11 years ago
|
||
Bug may get opened. Not security related. Just bogus assert.
Keywords: sec-high
Comment 11•11 years ago
|
||
Yeah we should probably just remove the assert. It's also possible for ThisTypes to be int32 for instance:
---
function f() {}
for (var i=0; i<100; i++)
f.call(3);
---
Function #2 test.js:2 "f"
return: missing
this: int
#2:00000: 2 stop
Assignee | ||
Comment 12•11 years ago
|
||
Oh right. Didn't think about that case.
Attachment #803705 -
Attachment is obsolete: true
Attachment #803705 -
Flags: review?(jdemooij)
Attachment #803886 -
Flags: review?(jdemooij)
Updated•11 years ago
|
Attachment #803886 -
Flags: review?(jdemooij) → review+
Assignee | ||
Comment 13•11 years ago
|
||
Comment 14•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
You need to log in
before you can comment on or make changes to this bug.
Description
•