Bug 893679 - Followup: Make sure rvalType is MIRType_Value when barrier is true to fix bustage on a CLOSED TREE. (r=bhackett)

This commit is contained in:
Shu-yu Guo 2013-07-16 01:49:54 +02:00
parent f5e41e585a
commit 80306a1af0

View File

@ -7916,13 +7916,8 @@ IonBuilder::getPropTryCache(bool *emitted, HandlePropertyName name, HandleId id,
return true;
}
MIRType rvalType = MIRTypeFromValueType(types->getKnownTypeTag());
if (barrier || IsNullOrUndefined(rvalType) || accessGetter)
rvalType = MIRType_Value;
current->pop();
MGetPropertyCache *load = MGetPropertyCache::New(obj, name);
load->setResultType(rvalType);
// Try to mark the cache as idempotent. We only do this if JM is enabled
// (its ICs are used to mark property reads as likely non-idempotent) or
@ -7967,6 +7962,11 @@ IonBuilder::getPropTryCache(bool *emitted, HandlePropertyName name, HandleId id,
barrier = true;
}
MIRType rvalType = MIRTypeFromValueType(types->getKnownTypeTag());
if (barrier || IsNullOrUndefined(rvalType))
rvalType = MIRType_Value;
load->setResultType(rvalType);
if (!pushTypeBarrier(load, types, barrier))
return false;