Closed
Bug 453049
Opened 16 years ago
Closed 16 years ago
TM: "Assertion failure: (*m != JSVAL_INT) || isInt32(*vp)" with negative zero as property
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: jruderman, Assigned: dvander)
References
Details
(Keywords: assertion, testcase)
Attachments
(1 file)
2.60 KB,
patch
|
gal
:
review+
|
Details | Diff | Splinter Review |
js -j js> var z = 0; for (let j = 0; j < 5; ++j) { ({p: (-z)}); } Assertion failure: (*m != JSVAL_INT) || isInt32(*vp), at jstracer.cpp:1398
Assignee | ||
Comment 1•16 years ago
|
||
Two problems here. First is that we're not checking if a 0 is turning into a double in JSOP_NEG. Second is that we're generating incorrect code in cases where we don't propagate constants. I think we might have to guard JSOP_NEG on not being 0 for int-specialized loops, as the NEG instruction does not set the overflow flag on 0. Will wait for a comment from another TM person before I patch this though.
Assignee | ||
Comment 2•16 years ago
|
||
I removed JSOP_NEG's call to unary() and FuncFilter's entry for LIR_neg so I could use the value on the stack to check the promotion logic. Not sure if that was the right idea.
Attachment #336776 -
Flags: review?(gal)
Assignee | ||
Comment 3•16 years ago
|
||
Pushed fix as changeset b0e54985bcda.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Updated•16 years ago
|
Attachment #336776 -
Flags: review?(gal) → review+
Updated•16 years ago
|
Summary: "Assertion failure: (*m != JSVAL_INT) || isInt32(*vp)" with negative zero as property → TM: "Assertion failure: (*m != JSVAL_INT) || isInt32(*vp)" with negative zero as property
Comment 4•16 years ago
|
||
/cvsroot/mozilla/js/tests/js1_7/regress/regress-453049.js,v <-- regress-453049.js initial revision: 1.1 m-c: changeset: 19333:7d8fb914781a
Flags: in-testsuite+
Flags: in-litmus-
Reporter | ||
Updated•16 years ago
|
Assignee: general → danderson
You need to log in
before you can comment on or make changes to this bug.
Description
•