Index: src/compiler/js-typed-lowering.cc |
diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc |
index ad03b10e14a1894e567f1f6a46c4e13fbac342e1..eb752483fcc4f5512819efa396f059b4e63b6841 100644 |
--- a/src/compiler/js-typed-lowering.cc |
+++ b/src/compiler/js-typed-lowering.cc |
@@ -1348,8 +1348,14 @@ Reduction JSTypedLowering::ReduceJSForInPrepare(Node* node) { |
Revisit(use); |
} else { |
if (NodeProperties::IsControlEdge(edge)) { |
- DCHECK_EQ(IrOpcode::kIfSuccess, use->opcode()); |
- Replace(use, control); |
+ if (use->opcode() == IrOpcode::kIfSuccess) { |
+ Replace(use, control); |
+ } else if (use->opcode() == IrOpcode::kIfException) { |
+ edge.UpdateTo(cache_type_true0); |
+ continue; |
+ } else { |
+ UNREACHABLE(); |
+ } |
} else { |
DCHECK(NodeProperties::IsValueEdge(edge)); |
DCHECK_EQ(IrOpcode::kProjection, use->opcode()); |