Closed Bug 477158 Opened 11 years ago Closed 11 years ago

TM: "Assertion failure: v == JSVAL_TRUE || v == JSVAL_FALSE, at ../jsapi.h"

Categories

(Core :: JavaScript Engine, defect, critical)

x86
macOS
defect
Not set
critical

Tracking

()

VERIFIED FIXED

People

(Reporter: gkw, Assigned: Waldo)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase, verified1.9.1, Whiteboard: fixed-in-tracemonkey)

Attachments

(2 files)

x = 0;
x = x.prop;
for each (let [] in ['', '']) { switch(x) { default: function(){}; } };

asserts debug TM at Assertion failure: v == JSVAL_TRUE || v == JSVAL_FALSE, at ../jsapi.h and seems to work as expected in opt TM. Nominating because it seems to keep appearing around the same time as bug 477049.
Flags: blocking1.9.1?
We can get pseudo-booleans here, deal.
Status: NEW → ASSIGNED
Attached patch Like soSplinter Review
Pseudo-booleans are obviously fair game here.
Assignee: general → jwalden+bmo
Attachment #360836 - Flags: review?(gal)
Attached patch AlternativeSplinter Review
We could also distinguish places where we expect to see undefined in boolean context this way, without allowing JSVAL_ERROR_COOKIE or any of the other pseudos.  Take your pick which you prefer..
Attachment #360839 - Flags: review?(gal)
Attachment #360839 - Flags: review?(gal) → review+
Comment on attachment 360839 [details] [diff] [review]
Alternative

Sounds good. The more asserts the merrier.
Attachment #360836 - Flags: review?(gal) → review-
Flags: blocking1.9.1? → blocking1.9.1+
Fixt a few days ago in TM (with the latter patch), forgot to comment here:

http://hg.mozilla.org/tracemonkey/rev/ecb76b098202
Whiteboard: fixed-in-tracemonkey
http://hg.mozilla.org/mozilla-central/rev/ecb76b098202
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
http://hg.mozilla.org/mozilla-central/rev/119d5d432037
Flags: in-testsuite+
Flags: in-litmus-
js1_8_1/trace/trace-test.js
v 1.9.1, 1.9.2
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.