Index: src/hydrogen-environment-liveness.cc |
diff --git a/src/hydrogen-environment-liveness.cc b/src/hydrogen-environment-liveness.cc |
index d7501ac49e6fd2b519a1471a1f6d88543410d16d..726198d98b5359cfd26c66cbb89ecf5d03c1497a 100644 |
--- a/src/hydrogen-environment-liveness.cc |
+++ b/src/hydrogen-environment-liveness.cc |
@@ -84,8 +84,8 @@ void HEnvironmentLivenessAnalysisPhase::ZapEnvironmentSlotsInSuccessors( |
} |
HSimulate* simulate = first_simulate_.at(successor_id); |
if (simulate == NULL) continue; |
- ASSERT(simulate->closure().is_identical_to( |
- block->last_environment()->closure())); |
+ ASSERT(VerifyClosures(simulate->closure(), |
+ block->last_environment()->closure())); |
ZapEnvironmentSlot(i, simulate); |
} |
} |
@@ -97,7 +97,7 @@ void HEnvironmentLivenessAnalysisPhase::ZapEnvironmentSlotsForInstruction( |
if (!marker->CheckFlag(HValue::kEndsLiveRange)) return; |
HSimulate* simulate = marker->next_simulate(); |
if (simulate != NULL) { |
- ASSERT(simulate->closure().is_identical_to(marker->closure())); |
+ ASSERT(VerifyClosures(simulate->closure(), marker->closure())); |
ZapEnvironmentSlot(marker->index(), simulate); |
} |
} |
@@ -241,4 +241,14 @@ void HEnvironmentLivenessAnalysisPhase::Run() { |
} |
} |
+ |
+#ifdef DEBUG |
+bool HEnvironmentLivenessAnalysisPhase::VerifyClosures( |
+ Handle<JSFunction> a, Handle<JSFunction> b) { |
+ Heap::RelocationLock for_heap_access(isolate()->heap()); |
+ AllowHandleDereference for_verification; |
+ return a.is_identical_to(b); |
+} |
+#endif |
+ |
} } // namespace v8::internal |