| Index: src/interpreter/bytecode-generator.cc | 
| diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc | 
| index af7b9158e2e3d77e013c47f1db75366229e37acb..324d7b99b8ee807bcee65666c1ee288b6a2a9f6a 100644 | 
| --- a/src/interpreter/bytecode-generator.cc | 
| +++ b/src/interpreter/bytecode-generator.cc | 
| @@ -5,6 +5,7 @@ | 
| #include "src/interpreter/bytecode-generator.h" | 
|  | 
| #include "src/ast/scopes.h" | 
| +#include "src/code-stubs.h" | 
| #include "src/compiler.h" | 
| #include "src/interpreter/bytecode-register-allocator.h" | 
| #include "src/interpreter/control-flow-builders.h" | 
| @@ -1596,10 +1597,21 @@ void BytecodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) { | 
|  | 
|  | 
| void BytecodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) { | 
| -  // Deep-copy the literal boilerplate. | 
| +  // Copy the literal boilerplate. | 
| +  int fast_clone_properties_count = 0; | 
| +  if (FastCloneShallowObjectStub::IsSupported(expr)) { | 
| +    STATIC_ASSERT( | 
| +        FastCloneShallowObjectStub::kMaximumClonedProperties <= | 
| +        1 << CreateObjectLiteralFlags::FastClonePropertiesCountBits::kShift); | 
| +    fast_clone_properties_count = | 
| +        FastCloneShallowObjectStub::PropertiesCount(expr->properties_count()); | 
| +  } | 
| +  uint8_t flags = | 
| +      CreateObjectLiteralFlags::FlagsBits::encode(expr->ComputeFlags()) | | 
| +      CreateObjectLiteralFlags::FastClonePropertiesCountBits::encode( | 
| +          fast_clone_properties_count); | 
| builder()->CreateObjectLiteral(expr->constant_properties(), | 
| -                                 expr->literal_index(), | 
| -                                 expr->ComputeFlags(true)); | 
| +                                 expr->literal_index(), flags); | 
|  | 
| // Allocate in the outer scope since this register is used to return the | 
| // expression's results to the caller. | 
|  |