Bug 1122723 - Fold MConcat when used with the empty string. r=h4writer

This commit is contained in:
Sean Stangl 2015-01-16 12:57:40 -08:00
Родитель ea8b6889bf
Коммит 1c263c6f62
2 изменённых файлов: 13 добавлений и 0 удалений

Просмотреть файл

@ -1142,6 +1142,18 @@ MStringLength::foldsTo(TempAllocator &alloc)
return this;
}
MDefinition *
MConcat::foldsTo(TempAllocator &alloc)
{
if (lhs()->isConstantValue() && lhs()->constantValue().toString()->empty())
return rhs();
if (rhs()->isConstantValue() && rhs()->constantValue().toString()->empty())
return lhs();
return this;
}
static bool
EnsureFloatInputOrConvert(MUnaryInstruction *owner, TempAllocator &alloc)
{

Просмотреть файл

@ -6123,6 +6123,7 @@ class MConcat
return new(alloc) MConcat(left, right);
}
MDefinition *foldsTo(TempAllocator &alloc) MOZ_OVERRIDE;
bool congruentTo(const MDefinition *ins) const MOZ_OVERRIDE {
return congruentIfOperandsEqual(ins);
}