Index: src/hydrogen-instructions.cc |
diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc |
index 3bb4ebc99407c337f0651eddfe2c4ea68f13c121..f02fd10a55a22d113ff466a87b25151fb7085a6a 100644 |
--- a/src/hydrogen-instructions.cc |
+++ b/src/hydrogen-instructions.cc |
@@ -2090,6 +2090,17 @@ HValue* HAdd::EnsureAndPropagateNotMinusZero(BitVector* visited) { |
} |
+bool HStoreKeyedFastDoubleElement::NeedsCanonicalization() { |
+ // If value was loaded from unboxed double backing store or |
+ // converted from an integer then we don't have to canonicalize it. |
+ if (value()->IsLoadKeyedFastDoubleElement() || |
+ (value()->IsChange() && HChange::cast(value())->from().IsInteger32())) { |
+ return false; |
+ } |
+ return true; |
+} |
+ |
+ |
#define H_CONSTANT_INT32(val) \ |
new(zone) HConstant(FACTORY->NewNumberFromInt(val, TENURED), \ |
Representation::Integer32()) |