Index: src/hydrogen-instructions.cc |
diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc |
index 8539da21e8e3e86e6042a8f65ece245b8496b8aa..a057217cc514f091ea9f71f2a0a17474cb56b0a5 100644 |
--- a/src/hydrogen-instructions.cc |
+++ b/src/hydrogen-instructions.cc |
@@ -2815,6 +2815,13 @@ void HConstant::Initialize(Representation r) { |
r = Representation::Tagged(); |
} |
} |
+ if (r.IsSmi()) { |
+ // If we have an existing handle, zap it, because it might be a heap |
+ // number which we must not re-use when copying this HConstant to |
+ // Tagged representation later, because having Smi representation now |
+ // could cause heap object checks not to get emitted. |
+ object_ = Unique<Object>(Handle<Object>::null()); |
+ } |
set_representation(r); |
SetFlag(kUseGVN); |
} |