| Index: src/compiler/js-call-reducer.cc
|
| diff --git a/src/compiler/js-call-reducer.cc b/src/compiler/js-call-reducer.cc
|
| index fef55c5667385a4e5bd9112cbc5094e8a5392f1e..219368c758db9efd1060c8a3d1c90080c2f86545 100644
|
| --- a/src/compiler/js-call-reducer.cc
|
| +++ b/src/compiler/js-call-reducer.cc
|
| @@ -71,7 +71,6 @@ Reduction JSCallReducer::ReduceArrayConstructor(Node* node) {
|
| size_t const arity = p.arity() - 2;
|
| NodeProperties::ReplaceValueInput(node, target, 0);
|
| NodeProperties::ReplaceValueInput(node, target, 1);
|
| - NodeProperties::RemoveFrameStateInput(node, 1);
|
| // TODO(bmeurer): We might need to propagate the tail call mode to
|
| // the JSCreateArray operator, because an Array call in tail call
|
| // position must always properly consume the parent stack frame.
|
| @@ -89,7 +88,6 @@ Reduction JSCallReducer::ReduceNumberConstructor(Node* node) {
|
| DCHECK_LE(2u, p.arity());
|
| Node* value = (p.arity() == 2) ? jsgraph()->ZeroConstant()
|
| : NodeProperties::GetValueInput(node, 2);
|
| - NodeProperties::RemoveFrameStateInput(node, 1);
|
| NodeProperties::ReplaceValueInputs(node, value);
|
| NodeProperties::ChangeOp(node, javascript()->ToNumber());
|
| return Changed(node);
|
| @@ -220,9 +218,9 @@ Reduction JSCallReducer::ReduceJSCallFunction(Node* node) {
|
| CallFunctionParameters const& p = CallFunctionParametersOf(node->op());
|
| Node* target = NodeProperties::GetValueInput(node, 0);
|
| Node* context = NodeProperties::GetContextInput(node);
|
| - Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
|
| Node* control = NodeProperties::GetControlInput(node);
|
| Node* effect = NodeProperties::GetEffectInput(node);
|
| + Node* frame_state = NodeProperties::FindFrameStateBefore(node);
|
|
|
| // Try to specialize JSCallFunction {node}s with constant {target}s.
|
| HeapObjectMatcher m(target);
|
| @@ -233,7 +231,6 @@ Reduction JSCallReducer::ReduceJSCallFunction(Node* node) {
|
|
|
| // Raise a TypeError if the {target} is a "classConstructor".
|
| if (IsClassConstructor(shared->kind())) {
|
| - NodeProperties::RemoveFrameStateInput(node, 0);
|
| NodeProperties::ReplaceValueInputs(node, target);
|
| NodeProperties::ChangeOp(
|
| node, javascript()->CallRuntime(
|
| @@ -370,9 +367,9 @@ Reduction JSCallReducer::ReduceJSCallConstruct(Node* node) {
|
| Node* target = NodeProperties::GetValueInput(node, 0);
|
| Node* new_target = NodeProperties::GetValueInput(node, arity + 1);
|
| Node* context = NodeProperties::GetContextInput(node);
|
| - Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
|
| Node* effect = NodeProperties::GetEffectInput(node);
|
| Node* control = NodeProperties::GetControlInput(node);
|
| + Node* frame_state = NodeProperties::FindFrameStateBefore(node);
|
|
|
| // Try to specialize JSCallConstruct {node}s with constant {target}s.
|
| HeapObjectMatcher m(target);
|
| @@ -382,11 +379,6 @@ Reduction JSCallReducer::ReduceJSCallConstruct(Node* node) {
|
|
|
| // Raise a TypeError if the {target} is not a constructor.
|
| if (!function->IsConstructor()) {
|
| - // Drop the lazy bailout location and use the eager bailout point for
|
| - // the runtime function (actually as lazy bailout point). It doesn't
|
| - // really matter which bailout location we use since we never really
|
| - // go back after throwing the exception.
|
| - NodeProperties::RemoveFrameStateInput(node, 0);
|
| NodeProperties::ReplaceValueInputs(node, target);
|
| NodeProperties::ChangeOp(
|
| node, javascript()->CallRuntime(Runtime::kThrowCalledNonCallable));
|
| @@ -406,7 +398,6 @@ Reduction JSCallReducer::ReduceJSCallConstruct(Node* node) {
|
| }
|
|
|
| // Turn the {node} into a {JSCreateArray} call.
|
| - NodeProperties::RemoveFrameStateInput(node, 1);
|
| for (int i = arity; i > 0; --i) {
|
| NodeProperties::ReplaceValueInput(
|
| node, NodeProperties::GetValueInput(node, i), i + 1);
|
| @@ -460,7 +451,6 @@ Reduction JSCallReducer::ReduceJSCallConstruct(Node* node) {
|
| // Turn the {node} into a {JSCreateArray} call.
|
| NodeProperties::ReplaceEffectInput(node, effect);
|
| NodeProperties::ReplaceControlInput(node, control);
|
| - NodeProperties::RemoveFrameStateInput(node, 1);
|
| for (int i = arity; i > 0; --i) {
|
| NodeProperties::ReplaceValueInput(
|
| node, NodeProperties::GetValueInput(node, i), i + 1);
|
|
|