Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index bf05619fbf228bb95f6aaa321bf268b57fe63673..5a261ed77296ccda974c6ae44e7d8158228daed2 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -5723,6 +5723,9 @@ class HStoreKeyed |
} else if (IsFastDoubleElementsKind(elements_kind)) { |
SetGVNFlag(kChangesDoubleArrayElements); |
SetFlag(kDeoptimizeOnUndefined); |
+ } else if (IsFastSmiElementsKind(elements_kind)) { |
+ SetGVNFlag(kChangesArrayElements); |
+ SetFlag(kDeoptimizeOnUndefined); |
} else { |
SetGVNFlag(kChangesArrayElements); |
} |
@@ -5751,6 +5754,10 @@ class HStoreKeyed |
return Representation::Double(); |
} |
+ if (IsFastSmiElementsKind(elements_kind())) { |
+ return Representation::Smi(); |
+ } |
+ |
return is_external() ? Representation::Integer32() |
: Representation::Tagged(); |
} |