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)); |
+ |
+ 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); |