Bug 1368576 - Fix addOsrValueTypeBarrier to use type from the TypeSet if it's more precise. r=nbp

This commit is contained in:
Jan de Mooij 2017-06-06 15:05:08 +02:00
Родитель 975bc903fa
Коммит c42d719d38
1 изменённых файлов: 5 добавлений и 0 удалений

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

@ -1216,6 +1216,11 @@ IonBuilder::addOsrValueTypeBarrier(uint32_t slot, MInstruction** def_,
osrBlock->insertBefore(osrBlock->lastIns(), barrier);
osrBlock->rewriteSlot(slot, barrier);
def = barrier;
// If the TypeSet is more precise than |type|, adjust |type| for the
// code below.
if (type == MIRType::Value)
type = barrier->type();
} else if (type == MIRType::Null ||
type == MIRType::Undefined ||
type == MIRType::MagicOptimizedArguments)