| Index: src/compiler/js-generic-lowering.cc
|
| diff --git a/src/compiler/js-generic-lowering.cc b/src/compiler/js-generic-lowering.cc
|
| index 2ff370b1c1972cb0cc1b57f6de5b4016d0ea1806..c80dc4d7ea36166edfaa4d5aa3e0cb67ed84a48e 100644
|
| --- a/src/compiler/js-generic-lowering.cc
|
| +++ b/src/compiler/js-generic-lowering.cc
|
| @@ -589,6 +589,22 @@ void JSGenericLowering::LowerJSConstruct(Node* node) {
|
| NodeProperties::ChangeOp(node, common()->Call(desc));
|
| }
|
|
|
| +void JSGenericLowering::LowerJSConstructWithArrayLike(Node* node) {
|
| + Callable callable = CodeFactory::ConstructWithArrayLike(isolate());
|
| + CallDescriptor::Flags flags = FrameStateFlagForCall(node);
|
| + CallDescriptor* desc = Linkage::GetStubCallDescriptor(
|
| + isolate(), zone(), callable.descriptor(), 1, flags);
|
| + Node* stub_code = jsgraph()->HeapConstant(callable.code());
|
| + Node* receiver = jsgraph()->UndefinedConstant();
|
| + Node* arguments_list = node->InputAt(1);
|
| + Node* new_target = node->InputAt(2);
|
| + node->InsertInput(zone(), 0, stub_code);
|
| + node->ReplaceInput(2, new_target);
|
| + node->ReplaceInput(3, arguments_list);
|
| + node->InsertInput(zone(), 4, receiver);
|
| + NodeProperties::ChangeOp(node, common()->Call(desc));
|
| +}
|
| +
|
| void JSGenericLowering::LowerJSConstructWithSpread(Node* node) {
|
| SpreadWithArityParameter const& p = SpreadWithArityParameterOf(node->op());
|
| int const arg_count = static_cast<int>(p.arity() - 2);
|
|
|