Closed
Bug 756247
Opened 12 years ago
Closed 12 years ago
IonMonkey: Assertion failure: [infer failure] Missing type pushed 0: float, at jsinfer.cpp:353
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
VERIFIED
FIXED
People
(Reporter: decoder, Assigned: jandem)
References
Details
(Keywords: assertion, testcase, Whiteboard: [jsbugmon:update])
Attachments
(1 file)
4.98 KB,
patch
|
dvander
:
review+
|
Details | Diff | Splinter Review |
The following testcase asserts on ionmonkey revision 14735b4dbccc (run with --ion -n -m --ion-eager): function foo(i) { var n = 0; for (var i = 0; i < (false ); i++) n = a++; assertEq(n, 29); } var a = foo(10);
Assignee | ||
Comment 1•12 years ago
|
||
Reduced it a bit more: function foo() { var n = 0; while (false) n = +a; print(n); // bailout } foo(); The problem is that when we bailout, n is a double (0.0) instead of an integer. The inferred type of "+a" is value -> value, which we compile to MToDouble. Using MToDouble is fine for "value -> double" but for "value -> value" we should probably just call a stub. Note that value -> int32 has the same problem (double value instead of int32). This testcase also triggers the assert: function bar(x) { var y = +(x ? x : "foo"); print(y); } bar(10);
Assignee: general → jdemooij
Status: NEW → ASSIGNED
Assignee | ||
Comment 2•12 years ago
|
||
This follows JSOP_NEG and compiles +x as x * 1. Seems like it's the simplest fix and does not regress SS/V8/Kraken.
Attachment #625079 -
Flags: review?(dvander)
Updated•12 years ago
|
Attachment #625079 -
Flags: review?(dvander) → review+
Assignee | ||
Comment 3•12 years ago
|
||
https://hg.mozilla.org/projects/ionmonkey/rev/ceb5ab053f82
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Reporter | ||
Comment 4•12 years ago
|
||
JSBugMon: This bug has been automatically verified fixed.
Reporter | ||
Updated•12 years ago
|
Status: RESOLVED → VERIFIED
Assignee | ||
Updated•12 years ago
|
Group: core-security
Reporter | ||
Comment 5•11 years ago
|
||
A testcase for this bug was automatically identified at js/src/jit-test/tests/ion/bug756247.js.
Flags: in-testsuite+
You need to log in
before you can comment on or make changes to this bug.
Description
•