Closed
Bug 670637
Opened 13 years ago
Closed 13 years ago
TI+JM: different output with testcase with -m -n
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: jandem, Unassigned)
References
Details
-- function f(x) { if (x.length === undefined) return; return x.map(f); } f([1, 2]); -- $ ./js -m -n test.js test.js:4: TypeError: x.map is not a function Also interesting that we're compiling |f| if it's called by map.
Comment 1•13 years ago
|
||
WFM on tip, fixed by rev b769a2b79e6b. The problem is in JSOP_LENGTH on an object-or-something-else we would mark the result as an int32 even if the op has pushed non-integers in the past (in this case, undefined). Now we only run the JSOP_LENGTH ops when the op is known to produce an int32. Now that inference runs on the script's SSA form there is no reason the compiler should have better information than the inferred types. Should add consistency assertions to catch this easier.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•