| Index: src/compiler/effect-control-linearizer.cc
|
| diff --git a/src/compiler/effect-control-linearizer.cc b/src/compiler/effect-control-linearizer.cc
|
| index f5c5d2d1e80ba08968caef18ba2a59ec870164eb..94808745fdc31e6e846b0fba108c9d2f5d0f2314 100644
|
| --- a/src/compiler/effect-control-linearizer.cc
|
| +++ b/src/compiler/effect-control-linearizer.cc
|
| @@ -452,10 +452,13 @@ bool EffectControlLinearizer::TryWireInStateEffect(Node* node,
|
| case IrOpcode::kStringFromCharCode:
|
| state = LowerStringFromCharCode(node, *effect, *control);
|
| break;
|
| + case IrOpcode::kCheckIf:
|
| + state = LowerCheckIf(node, frame_state, *effect, *control);
|
| + break;
|
| default:
|
| return false;
|
| }
|
| - NodeProperties::ReplaceUses(node, state.value);
|
| + NodeProperties::ReplaceUses(node, state.value, state.effect, state.control);
|
| *effect = state.effect;
|
| *control = state.control;
|
| return true;
|
| @@ -1274,6 +1277,16 @@ EffectControlLinearizer::LowerStringFromCharCode(Node* node, Node* effect,
|
| }
|
|
|
| EffectControlLinearizer::ValueEffectControl
|
| +EffectControlLinearizer::LowerCheckIf(Node* node, Node* frame_state,
|
| + Node* effect, Node* control) {
|
| + NodeProperties::ReplaceEffectInput(node, effect);
|
| + NodeProperties::ReplaceControlInput(node, control);
|
| + node->InsertInput(graph()->zone(), 1, frame_state);
|
| + NodeProperties::ChangeOp(node, common()->DeoptimizeIf());
|
| + return ValueEffectControl(node, node, node);
|
| +}
|
| +
|
| +EffectControlLinearizer::ValueEffectControl
|
| EffectControlLinearizer::AllocateHeapNumberWithValue(Node* value, Node* effect,
|
| Node* control) {
|
| Node* result = effect = graph()->NewNode(
|
|
|