| Index: src/interpreter/bytecode-generator.cc | 
| diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc | 
| index 052f29367dadd6a4fa1b5fca9948f9ffe4c66a41..f67e7b927c28e4a9502c50b1ae98b1c652d48cf9 100644 | 
| --- a/src/interpreter/bytecode-generator.cc | 
| +++ b/src/interpreter/bytecode-generator.cc | 
| @@ -2211,18 +2211,34 @@ void BytecodeGenerator::VisitAssignment(Assignment* expr) { | 
| LhsKind assign_type = Property::GetAssignType(property); | 
|  | 
| // Evaluate LHS expression. | 
| +  Register lhs_name; | 
| +  if (expr->HasTypeProfileSlot()) { | 
| +    lhs_name = register_allocator()->NewRegister(); | 
| +  } | 
| + | 
| switch (assign_type) { | 
| case VARIABLE: | 
| +      if (expr->HasTypeProfileSlot()) { | 
| +        builder() | 
| +            ->LoadLiteral(expr->target()->AsVariableProxy()->var()->raw_name()) | 
| +            .StoreAccumulatorInRegister(lhs_name); | 
| +      } | 
| // Nothing to do to evaluate variable assignment LHS. | 
| break; | 
| case NAMED_PROPERTY: { | 
| object = VisitForRegisterValue(property->obj()); | 
| name = property->key()->AsLiteral()->AsRawPropertyName(); | 
| +      if (expr->HasTypeProfileSlot()) { | 
| +        builder()->LoadLiteral(name).StoreAccumulatorInRegister(lhs_name); | 
| +      } | 
| break; | 
| } | 
| case KEYED_PROPERTY: { | 
| object = VisitForRegisterValue(property->obj()); | 
| key = VisitForRegisterValue(property->key()); | 
| +      if (expr->HasTypeProfileSlot()) { | 
| +        builder()->StoreAccumulatorInRegister(lhs_name); | 
| +      } | 
| break; | 
| } | 
| case NAMED_SUPER_PROPERTY: { | 
| @@ -2235,6 +2251,9 @@ void BytecodeGenerator::VisitAssignment(Assignment* expr) { | 
| builder() | 
| ->LoadLiteral(property->key()->AsLiteral()->AsRawPropertyName()) | 
| .StoreAccumulatorInRegister(super_property_args[2]); | 
| +      if (expr->HasTypeProfileSlot()) { | 
| +        builder()->StoreAccumulatorInRegister(lhs_name); | 
| +      } | 
| break; | 
| } | 
| case KEYED_SUPER_PROPERTY: { | 
| @@ -2245,6 +2264,10 @@ void BytecodeGenerator::VisitAssignment(Assignment* expr) { | 
| VisitForRegisterValue(super_property->home_object(), | 
| super_property_args[1]); | 
| VisitForRegisterValue(property->key(), super_property_args[2]); | 
| +      if (expr->HasTypeProfileSlot()) { | 
| +        builder()->StoreAccumulatorInRegister(lhs_name); | 
| +      } | 
| + | 
| break; | 
| } | 
| } | 
| @@ -2333,6 +2356,14 @@ void BytecodeGenerator::VisitAssignment(Assignment* expr) { | 
| break; | 
| } | 
| } | 
| + | 
| +  // Value is in accumulator. | 
| +  if (expr->HasTypeProfileSlot()) { | 
| +    FeedbackSlot collect_type_feedback_slot = expr->TypeProfileSlot(); | 
| + | 
| +    builder()->CollectTypeProfile(lhs_name, | 
| +                                  feedback_index(collect_type_feedback_slot)); | 
| +  } | 
| } | 
|  | 
| void BytecodeGenerator::VisitYield(Yield* expr) { | 
|  |