Bug 1114981 - IonMonkey: Don't increase the return typeset during inlining, r=jandem

This commit is contained in:
Hannes Verschore 2014-12-24 15:01:06 +01:00
parent 44e3c949b4
commit 86e9fdf741

View File

@ -4446,7 +4446,18 @@ IonBuilder::inlineScriptedCall(CallInfo &callInfo, JSFunction *target)
if (!returnBlock->initEntrySlots(alloc()))
return false;
return setCurrentAndSpecializePhis(returnBlock);
if (!setCurrentAndSpecializePhis(returnBlock))
return false;
// Improve return types with observed typeset, except for Setters.
// Setters return their argument, not whatever value is returned.
if (!callInfo.isSetter()) {
types::TemporaryTypeSet *types = bytecodeTypes(pc);
if (!pushTypeBarrier(retvalDefn, types, BarrierKind::TypeSet))
return false;
}
return true;
}
MDefinition *