Closed
Bug 455413
Opened 17 years ago
Closed 17 years ago
TM: "Assertion failure: (m != JSVAL_INT) || isInt32(*vp)" with watch, pow
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: jruderman, Assigned: dmandelin)
Details
(Keywords: assertion, testcase)
Attachments
(1 file, 1 obsolete file)
|
461 bytes,
patch
|
brendan
:
review+
|
Details | Diff | Splinter Review |
~/tracemonkey/js/src/Darwin_DBG.OBJ/js -j
js> this.watch('x', Math.pow); (function() { for(var j=0;j<4;++j){x=1;} })();
Assertion failure: (m != JSVAL_INT) || isInt32(*vp), at jstracer.cpp:1548
Comment 1•17 years ago
|
||
Please make sure to put "TM:" in front of jit bugs.
Updated•17 years ago
|
Summary: "Assertion failure: (m != JSVAL_INT) || isInt32(*vp)" with watch, pow → TM: "Assertion failure: (m != JSVAL_INT) || isInt32(*vp)" with watch, pow
Comment 2•17 years ago
|
||
What exactly does watch do here?
Looks like a data watchpoint: http://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/watch
Comment 4•17 years ago
|
||
I will try to single-step through it.
Updated•17 years ago
|
Assignee: general → brendan
| Assignee | ||
Comment 5•17 years ago
|
||
I stole this bug as a start on helping with TM bugs. Feel free to steal it back.
Assignee: brendan → dmandelin
| Assignee | ||
Comment 6•17 years ago
|
||
This patch should make SM refuse to start recording if any watchpoints are active. The check should be cheap; SunSpider with 50 trials came out 1.006x as fast.
Attachment #341032 -
Flags: review?(gal)
| Assignee | ||
Comment 7•17 years ago
|
||
Here's an improved patch that mrbkap suggested. It should more selectively abort only when the specific property being accessed has a watchpoint while still being a cheap check.
Attachment #341032 -
Attachment is obsolete: true
Attachment #341043 -
Flags: review?(brendan)
Attachment #341032 -
Flags: review?(gal)
Comment 8•17 years ago
|
||
Comment on attachment 341043 [details] [diff] [review]
Patch 2
r=me, thanks.
/be
Attachment #341043 -
Flags: review?(brendan) → review-
Updated•17 years ago
|
Attachment #341043 -
Flags: review- → review+
Comment 9•17 years ago
|
||
Comment on attachment 341032 [details] [diff] [review]
Patch
Looks good but I am afraid we need the same in js_ExecuteTree, otherwise we can execute trace code that ignores watchpoints.
Attachment #341032 -
Flags: review+
Comment 10•17 years ago
|
||
I think the generic method is good for js_ExecuteTree.
Comment 11•17 years ago
|
||
Adding a watchpoint for a property set that was recorded will change the shape. See jsscope.cpp, js_ChangeScopePropertyAttrs.
/be
| Assignee | ||
Comment 12•17 years ago
|
||
Patch 2 pushed as 71b214a5ecca. Does comment 11 mean that js_ExecuteTree is already taken care of by the flush-on-shape-change policy?
Comment 13•17 years ago
|
||
(In reply to comment #12)
> Patch 2 pushed as 71b214a5ecca. Does comment 11 mean that js_ExecuteTree is
> already taken care of by the flush-on-shape-change policy?
Write a test, prove me wrong :-).
/be
Updated•17 years ago
|
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Comment 14•17 years ago
|
||
/cvsroot/mozilla/js/tests/js1_5/extensions/regress-455413.js,v <-- regress-455413.js
initial revision: 1.1
http://hg.mozilla.org/mozilla-central/rev/b04c04268a94
Flags: in-testsuite+
Flags: in-litmus-
You need to log in
before you can comment on or make changes to this bug.
Description
•