Closed
Bug 618574
Opened 14 years ago
Closed 14 years ago
TM: "Assertion failure: !IsFunctionObject(v),"
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
VERIFIED
FIXED
mozilla2.0b8
Tracking | Status | |
---|---|---|
blocking2.0 | --- | betaN+ |
People
(Reporter: gkw, Assigned: jorendorff)
References
Details
(Keywords: assertion, regression, testcase, Whiteboard: hardblocker, [sg:critical?], fixed-in-tracemonkey)
Attachments
(1 file)
4.60 KB,
patch
|
dvander
:
review+
|
Details | Diff | Splinter Review |
eval("\
(function(){\
x=Proxy.createFunction((\
function(){\
return{\
iterate:function(){\
return(function(){})\
}\
}\
}()\
),Object.getOwnPropertyDescriptor);\
function a(z){\
for(v in z)n\
}\
for each(let e in[\
String,String,String,Number,Number,String,new String,new Number,x\
]){\
a(e)\
}\
})\
")()
asserts js debug shell on TM changeset 1002cba2f2d6 with -j at Assertion failure: !IsFunctionObject(v),
![]() |
Reporter | |
Updated•14 years ago
|
blocking2.0: --- → ?
![]() |
Reporter | |
Comment 1•14 years ago
|
||
autoBisect shows this is probably related to the following changeset:
The first bad revision is:
changeset: 47546:9c869e64ee26
user: Luke Wagner
date: Wed Jul 14 23:19:36 2010 -0700
summary: Bug 549143 - fatvals
Blocks: fatvals
![]() |
||
Comment 2•14 years ago
|
||
fatvals added a slew of assertions, including this one. If you put
diff --git a/js/src/jstracer.cpp b/js/src/jstracer.cpp
--- a/js/src/jstracer.cpp
+++ b/js/src/jstracer.cpp
@@ -2745,16 +2745,17 @@ TraceMonitor::mark(JSTracer* trc)
switch (type) {
case TT_OBJECT:
+ JS_ASSERT(!(*(JSObject**)slot)->isFunction());
v = OBJECT_TO_JSVAL(*(JSObject**)slot);
To the cset before fatvals, the given testcase still asserts.
Gary, do you suppose you could bisect back a bit further using this added assertion?
No longer blocks: fatvals
Updated•14 years ago
|
blocking2.0: ? → betaN+
![]() |
||
Updated•14 years ago
|
Group: core-security
Assignee | ||
Comment 3•14 years ago
|
||
Simpler:
var x = Proxy.create({
iterate: function () {
return function () {};
}
});
for each (var e in [{}, {}, {}, {}, {}, {}, {}, {}, x])
for (var v in e)
;
Stack is just js::LeaveTree -> js::NativeToValue -> assertion. It happens when leaving trace after a deep bail.
Assignee | ||
Updated•14 years ago
|
Assignee: general → jorendorff
Assignee | ||
Comment 4•14 years ago
|
||
Attachment #497444 -
Flags: review?(dvander)
![]() |
||
Updated•14 years ago
|
Attachment #497444 -
Flags: review?(dvander) → review+
Assignee | ||
Comment 5•14 years ago
|
||
Whiteboard: [fixed-in-tracemonkey]
Target Milestone: --- → mozilla2.0b8
Comment 6•14 years ago
|
||
bhackett says this caused serious regressions including bug 619880.
Comment 7•14 years ago
|
||
The comparison on the webkit sunspider page doesn't work any more with this patch.
Comment 8•14 years ago
|
||
Updated•14 years ago
|
Whiteboard: [fixed-in-tracemonkey]
![]() |
||
Comment 9•14 years ago
|
||
When a new patch for this bug is written, can the author please check that this program from bug 619880 runs without asserting? Thanks.
for(let a in[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
for(d in[]);
Comment 10•14 years ago
|
||
How far back does this bug go -- affects 1.9.x versions?
Is this a critical security bug or bogus assertion?
Keywords: regressionwindow-wanted
Updated•14 years ago
|
Whiteboard: hardblocker
Updated•14 years ago
|
Comment 11•14 years ago
|
||
sg:critical? until proven otherwise.
Whiteboard: hardblocker → hardblocker, [sg:critical?]
![]() |
||
Comment 12•14 years ago
|
||
Comment 14•14 years ago
|
||
is this fixed-on-tm?
Jason Orendorff – Unbox iterator after deep bail. Bug 618574, r=dvander. Second landing, including a fix thanks to luke.
Comment 15•14 years ago
|
||
(In reply to comment #14)
> is this fixed-on-tm?
>
> Jason Orendorff – Unbox iterator after deep bail. Bug 618574, r=dvander. Second
> landing, including a fix thanks to luke.
Yes.
http://hg.mozilla.org/tracemonkey/rev/1f9f35be9840
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Whiteboard: hardblocker, [sg:critical?] → hardblocker, [sg:critical?], fixed-in-tracemonkey
Comment 16•13 years ago
|
||
JSBugMon: This bug has been automatically verified fixed.
Updated•13 years ago
|
Status: RESOLVED → VERIFIED
Updated•10 years ago
|
Group: core-security
Updated•9 years ago
|
Keywords: regressionwindow-wanted
You need to log in
before you can comment on or make changes to this bug.
Description
•