| Index: src/compiler/js-typed-lowering.cc
|
| diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc
|
| index 24e563aeac9c085246aa2c5eaad231d869978782..de471c9e9e1a9c6ea75ef5cff2832d7c8ab369be 100644
|
| --- a/src/compiler/js-typed-lowering.cc
|
| +++ b/src/compiler/js-typed-lowering.cc
|
| @@ -1715,7 +1715,6 @@ Reduction JSTypedLowering::ReduceJSConvertReceiver(Node* node) {
|
| Type* receiver_type = NodeProperties::GetType(receiver);
|
| Node* context = NodeProperties::GetContextInput(node);
|
| Type* context_type = NodeProperties::GetType(context);
|
| - Node* frame_state = NodeProperties::GetFrameStateInput(node);
|
| Node* effect = NodeProperties::GetEffectInput(node);
|
| Node* control = NodeProperties::GetControlInput(node);
|
|
|
| @@ -1762,14 +1761,15 @@ Reduction JSTypedLowering::ReduceJSConvertReceiver(Node* node) {
|
| Node* efalse = effect;
|
| Node* rfalse;
|
| {
|
| - // Convert {receiver} using the ToObjectStub.
|
| + // Convert {receiver} using the ToObjectStub. The call does not require a
|
| + // frame-state in this case, because neither null nor undefined is passed.
|
| Callable callable = CodeFactory::ToObject(isolate());
|
| CallDescriptor const* const desc = Linkage::GetStubCallDescriptor(
|
| isolate(), graph()->zone(), callable.descriptor(), 0,
|
| - CallDescriptor::kNeedsFrameState, node->op()->properties());
|
| + CallDescriptor::kNoFlags, node->op()->properties());
|
| rfalse = efalse = graph()->NewNode(
|
| common()->Call(desc), jsgraph()->HeapConstant(callable.code()),
|
| - receiver, context, frame_state, efalse);
|
| + receiver, context, efalse);
|
| }
|
|
|
| control = graph()->NewNode(common()->Merge(2), if_true, if_false);
|
| @@ -1819,14 +1819,15 @@ Reduction JSTypedLowering::ReduceJSConvertReceiver(Node* node) {
|
| Node* econvert = effect;
|
| Node* rconvert;
|
| {
|
| - // Convert {receiver} using the ToObjectStub.
|
| + // Convert {receiver} using the ToObjectStub. The call does not require a
|
| + // frame-state in this case, because neither null nor undefined is passed.
|
| Callable callable = CodeFactory::ToObject(isolate());
|
| CallDescriptor const* const desc = Linkage::GetStubCallDescriptor(
|
| isolate(), graph()->zone(), callable.descriptor(), 0,
|
| - CallDescriptor::kNeedsFrameState, node->op()->properties());
|
| + CallDescriptor::kNoFlags, node->op()->properties());
|
| rconvert = econvert = graph()->NewNode(
|
| common()->Call(desc), jsgraph()->HeapConstant(callable.code()),
|
| - receiver, context, frame_state, econvert);
|
| + receiver, context, econvert);
|
| }
|
|
|
| // Replace {receiver} with global proxy of {context}.
|
| @@ -2063,7 +2064,6 @@ Reduction JSTypedLowering::ReduceJSCall(Node* node) {
|
| Type* receiver_type = NodeProperties::GetType(receiver);
|
| Node* effect = NodeProperties::GetEffectInput(node);
|
| Node* control = NodeProperties::GetControlInput(node);
|
| - Node* frame_state = NodeProperties::FindFrameStateBefore(node);
|
|
|
| // Try to infer receiver {convert_mode} from {receiver} type.
|
| if (receiver_type->Is(Type::NullOrUndefined())) {
|
| @@ -2096,7 +2096,7 @@ Reduction JSTypedLowering::ReduceJSCall(Node* node) {
|
| !receiver_type->Is(Type::Receiver())) {
|
| receiver = effect =
|
| graph()->NewNode(javascript()->ConvertReceiver(convert_mode),
|
| - receiver, context, frame_state, effect, control);
|
| + receiver, context, effect, control);
|
| NodeProperties::ReplaceValueInput(node, receiver, 1);
|
| }
|
|
|
|
|