Chromium Code Reviews| Index: src/compiler/bytecode-graph-builder.cc |
| diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc |
| index 8d58c288b20c0603381b70ac34e4c4b1b1248fde..4f53a3d60b50bb66d023903f747b9f1df9396251 100644 |
| --- a/src/compiler/bytecode-graph-builder.cc |
| +++ b/src/compiler/bytecode-graph-builder.cc |
| @@ -1063,9 +1063,15 @@ void BytecodeGraphBuilder::VisitNew() { |
| Node* new_target = environment()->LookupAccumulator(); |
| Node* callee = environment()->LookupRegister(callee_reg); |
| - // TODO(turbofan): Pass the feedback here. |
| - const Operator* call = javascript()->CallConstruct( |
| - static_cast<int>(arg_count) + 2, VectorSlotPair()); |
| + |
| + // Slot index of 0 is used indicate no feedback slot is available. Assert |
| + // the assumption that slot index 0 is never a valid feedback slot. |
| + STATIC_ASSERT(TypeFeedbackVector::kReservedIndexCount > 0); |
| + VectorSlotPair feedback = |
| + CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(3)); |
|
rmcilroy
2016/07/18 10:13:01
nit - could you move this to the top where other o
mythria
2016/07/19 09:50:59
Done.
|
| + |
| + const Operator* call = |
| + javascript()->CallConstruct(static_cast<int>(arg_count) + 2, feedback); |
| Node* value = ProcessCallNewArguments(call, callee, new_target, first_arg, |
| arg_count + 2); |
| environment()->BindAccumulator(value, &states); |