| Index: src/compiler/ast-graph-builder.cc
|
| diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc
|
| index 2a4bdd900eee2e95c8595b50c1b1175d74b05b75..41ae47ccb4c4efd7a82553c5e48e993a313942b8 100644
|
| --- a/src/compiler/ast-graph-builder.cc
|
| +++ b/src/compiler/ast-graph-builder.cc
|
| @@ -3377,7 +3377,7 @@ Node* AstGraphBuilder::BuildThrowError(Node* exception, BailoutId bailout_id) {
|
| PrepareFrameState(call, bailout_id);
|
| Node* control = NewNode(common()->Throw(), call);
|
| UpdateControlDependencyToLeaveFunction(control);
|
| - return control;
|
| + return call;
|
| }
|
|
|
|
|
| @@ -3390,7 +3390,7 @@ Node* AstGraphBuilder::BuildThrowReferenceError(Variable* variable,
|
| PrepareFrameState(call, bailout_id);
|
| Node* control = NewNode(common()->Throw(), call);
|
| UpdateControlDependencyToLeaveFunction(control);
|
| - return control;
|
| + return call;
|
| }
|
|
|
|
|
| @@ -3401,7 +3401,7 @@ Node* AstGraphBuilder::BuildThrowConstAssignError(BailoutId bailout_id) {
|
| PrepareFrameState(call, bailout_id);
|
| Node* control = NewNode(common()->Throw(), call);
|
| UpdateControlDependencyToLeaveFunction(control);
|
| - return control;
|
| + return call;
|
| }
|
|
|
|
|
| @@ -3412,7 +3412,7 @@ Node* AstGraphBuilder::BuildThrowStaticPrototypeError(BailoutId bailout_id) {
|
| PrepareFrameState(call, bailout_id);
|
| Node* control = NewNode(common()->Throw(), call);
|
| UpdateControlDependencyToLeaveFunction(control);
|
| - return control;
|
| + return call;
|
| }
|
|
|
|
|
| @@ -3556,14 +3556,15 @@ Node* AstGraphBuilder::MakeNode(const Operator* op, int value_input_count,
|
| *current_input++ = environment_->GetControlDependency();
|
| }
|
| result = graph()->NewNode(op, input_count_with_deps, buffer, incomplete);
|
| - if (has_effect) {
|
| - environment_->UpdateEffectDependency(result);
|
| - }
|
| if (!environment()->IsMarkedAsUnreachable()) {
|
| // Update the current control dependency for control-producing nodes.
|
| if (NodeProperties::IsControl(result)) {
|
| environment_->UpdateControlDependency(result);
|
| }
|
| + // Update the current effect dependency for effect-producing nodes.
|
| + if (result->op()->EffectOutputCount() > 0) {
|
| + environment_->UpdateEffectDependency(result);
|
| + }
|
| // Add implicit exception continuation for throwing nodes.
|
| if (!result->op()->HasProperty(Operator::kNoThrow) && inside_try_scope) {
|
| // Conservative prediction whether caught locally.
|
|
|