| Index: src/compiler/js-inlining.cc
|
| diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc
|
| index 3ac5c25036139a1be7e1d1eb928afa699235693e..ebd52f6d5f945272f9ae30f55df8e896cb88f607 100644
|
| --- a/src/compiler/js-inlining.cc
|
| +++ b/src/compiler/js-inlining.cc
|
| @@ -481,6 +481,18 @@ Reduction JSInliner::ReduceJSCall(Node* node) {
|
| return NoChange();
|
| }
|
|
|
| + // TODO(706642): Don't inline derived class constructors for now, as the
|
| + // inlining logic doesn't deal properly with derived class constructors
|
| + // that return a primitive, i.e. it's not in sync with what the Parser
|
| + // and the JSConstructSub does.
|
| + if (node->opcode() == IrOpcode::kJSConstruct &&
|
| + IsDerivedConstructor(shared_info->kind())) {
|
| + TRACE("Not inlining %s into %s because constructor is derived.\n",
|
| + shared_info->DebugName()->ToCString().get(),
|
| + info_->shared_info()->DebugName()->ToCString().get());
|
| + return NoChange();
|
| + }
|
| +
|
| // Class constructors are callable, but [[Call]] will raise an exception.
|
| // See ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList ).
|
| if (node->opcode() == IrOpcode::kJSCall &&
|
|
|