Index: src/compiler/js-typed-lowering.cc |
diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc |
index 34deb8e03cdcbb9cc1d86fa4c3355bf605346d1e..481b5f0a73a469c71495d2f617dc3b4e9806f574 100644 |
--- a/src/compiler/js-typed-lowering.cc |
+++ b/src/compiler/js-typed-lowering.cc |
@@ -2139,92 +2139,6 @@ Reduction JSTypedLowering::ReduceJSCall(Node* node) { |
return NoChange(); |
} |
- |
-Reduction JSTypedLowering::ReduceJSForInNext(Node* node) { |
- DCHECK_EQ(IrOpcode::kJSForInNext, node->opcode()); |
- Node* receiver = NodeProperties::GetValueInput(node, 0); |
- Node* cache_array = NodeProperties::GetValueInput(node, 1); |
- Node* cache_type = NodeProperties::GetValueInput(node, 2); |
- Node* index = NodeProperties::GetValueInput(node, 3); |
- Node* context = NodeProperties::GetContextInput(node); |
- Node* frame_state = NodeProperties::GetFrameStateInput(node); |
- Node* effect = NodeProperties::GetEffectInput(node); |
- Node* control = NodeProperties::GetControlInput(node); |
- |
- // We know that the {index} is in Unsigned32 range here, otherwise executing |
- // the JSForInNext wouldn't be valid. Unfortunately due to OSR and generators |
- // this is not always reflected in the types, hence we might need to rename |
- // the {index} here. |
- if (!NodeProperties::GetType(index)->Is(Type::Unsigned32())) { |
- index = graph()->NewNode(common()->TypeGuard(Type::Unsigned32()), index, |
- control); |
- } |
- |
- // Load the next {key} from the {cache_array}. |
- Node* key = effect = graph()->NewNode( |
- simplified()->LoadElement(AccessBuilder::ForFixedArrayElement()), |
- cache_array, index, effect, control); |
- |
- // Load the map of the {receiver}. |
- Node* receiver_map = effect = |
- graph()->NewNode(simplified()->LoadField(AccessBuilder::ForMap()), |
- receiver, effect, control); |
- |
- // Check if the expected map still matches that of the {receiver}. |
- Node* check0 = graph()->NewNode(simplified()->ReferenceEqual(), receiver_map, |
- cache_type); |
- Node* branch0 = |
- graph()->NewNode(common()->Branch(BranchHint::kTrue), check0, control); |
- |
- Node* if_true0 = graph()->NewNode(common()->IfTrue(), branch0); |
- Node* etrue0; |
- Node* vtrue0; |
- { |
- // Don't need filtering since expected map still matches that of the |
- // {receiver}. |
- etrue0 = effect; |
- vtrue0 = key; |
- } |
- |
- Node* if_false0 = graph()->NewNode(common()->IfFalse(), branch0); |
- Node* efalse0; |
- Node* vfalse0; |
- { |
- // Filter the {key} to check if it's still a valid property of the |
- // {receiver} (does the ToName conversion implicitly). |
- Callable const callable = CodeFactory::ForInFilter(isolate()); |
- CallDescriptor const* const desc = Linkage::GetStubCallDescriptor( |
- isolate(), graph()->zone(), callable.descriptor(), 0, |
- CallDescriptor::kNeedsFrameState); |
- vfalse0 = efalse0 = if_false0 = graph()->NewNode( |
- common()->Call(desc), jsgraph()->HeapConstant(callable.code()), key, |
- receiver, context, frame_state, effect, if_false0); |
- |
- // Update potential {IfException} uses of {node} to point to the ahove |
- // ForInFilter stub call node instead. |
- Node* if_exception = nullptr; |
- if (NodeProperties::IsExceptionalCall(node, &if_exception)) { |
- if_false0 = graph()->NewNode(common()->IfSuccess(), vfalse0); |
- NodeProperties::ReplaceControlInput(if_exception, vfalse0); |
- NodeProperties::ReplaceEffectInput(if_exception, efalse0); |
- Revisit(if_exception); |
- } |
- } |
- |
- control = graph()->NewNode(common()->Merge(2), if_true0, if_false0); |
- effect = graph()->NewNode(common()->EffectPhi(2), etrue0, efalse0, control); |
- ReplaceWithValue(node, node, effect, control); |
- |
- // Morph the {node} into a Phi. |
- node->ReplaceInput(0, vtrue0); |
- node->ReplaceInput(1, vfalse0); |
- node->ReplaceInput(2, control); |
- node->TrimInputCount(3); |
- NodeProperties::ChangeOp(node, |
- common()->Phi(MachineRepresentation::kTagged, 2)); |
- return Changed(node); |
-} |
- |
Reduction JSTypedLowering::ReduceJSLoadMessage(Node* node) { |
DCHECK_EQ(IrOpcode::kJSLoadMessage, node->opcode()); |
ExternalReference const ref = |
@@ -2393,8 +2307,6 @@ Reduction JSTypedLowering::Reduce(Node* node) { |
return ReduceJSCallForwardVarargs(node); |
case IrOpcode::kJSCall: |
return ReduceJSCall(node); |
- case IrOpcode::kJSForInNext: |
- return ReduceJSForInNext(node); |
case IrOpcode::kJSLoadMessage: |
return ReduceJSLoadMessage(node); |
case IrOpcode::kJSStoreMessage: |