Index: src/hydrogen-removable-simulates.cc |
diff --git a/src/hydrogen-removable-simulates.cc b/src/hydrogen-removable-simulates.cc |
index a28021deb882b1e9896d706187fc1bb797e6bdd4..73d7a8e0583eb9c53946c33b80f54dc98948126f 100644 |
--- a/src/hydrogen-removable-simulates.cc |
+++ b/src/hydrogen-removable-simulates.cc |
@@ -53,6 +53,13 @@ class State : public ZoneObject { |
FlushSimulates(); |
return this; |
} |
+ if (instr->IsCapturedObject()) { |
+ // Do not merge simulates across captured objects - captured objects |
+ // change environments during environment replay, and such changes |
+ // would not be reflected in the simulate. |
+ FlushSimulates(); |
+ return this; |
+ } |
// Skip the non-simulates and the first simulate. |
if (!instr->IsSimulate()) return this; |
if (first_) { |