diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h index dd7781bca0..9bd0b90b4c 100644 --- a/src/hydrogen-instructions.h +++ b/src/hydrogen-instructions.h @@ -1579,6 +1579,9 @@ class HForceRepresentation V8_FINAL : public HTemplateInstruction<1> { DECLARE_CONCRETE_INSTRUCTION(ForceRepresentation) + protected: + virtual int RedefinedOperandIndex() { return 0; } + private: HForceRepresentation(HValue* value, Representation required_representation) { SetOperandAt(0, value); diff --git a/src/hydrogen.cc b/src/hydrogen.cc index 7c42a3bcd6..33586f347e 100644 --- a/src/hydrogen.cc +++ b/src/hydrogen.cc @@ -2100,10 +2100,10 @@ void HGraphBuilder::BuildFillElementsWithHole(HValue* elements, static const int kLoopUnfoldLimit = 4; bool unfold_loop = false; int initial_capacity = JSArray::kPreallocatedArrayElements; - if (from->IsConstant() && to->IsConstant() && + if (from->ActualValue()->IsConstant() && to->ActualValue()->IsConstant() && initial_capacity <= kLoopUnfoldLimit) { - HConstant* constant_from = HConstant::cast(from); - HConstant* constant_to = HConstant::cast(to); + HConstant* constant_from = HConstant::cast(from->ActualValue()); + HConstant* constant_to = HConstant::cast(to->ActualValue()); if (constant_from->HasInteger32Value() && constant_from->Integer32Value() == 0 &&