| Index: src/interpreter/bytecode-generator.cc
|
| diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc
|
| index c35d77c907681f7e760233073b50a4e6df3d5b74..a999b9b157be2ce0c947eecf5036cffda36cb9c9 100644
|
| --- a/src/interpreter/bytecode-generator.cc
|
| +++ b/src/interpreter/bytecode-generator.cc
|
| @@ -1624,6 +1624,7 @@ void BytecodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
| RegisterAllocationScope inner_register_scope(this);
|
| Literal* key = property->key()->AsLiteral();
|
| switch (property->kind()) {
|
| + case ObjectLiteral::Property::SPREAD:
|
| case ObjectLiteral::Property::CONSTANT:
|
| UNREACHABLE();
|
| case ObjectLiteral::Property::MATERIALIZED_LITERAL:
|
| @@ -1767,6 +1768,13 @@ void BytecodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
| builder()->CallRuntime(function_id, args);
|
| break;
|
| }
|
| + case ObjectLiteral::Property::SPREAD: {
|
| + RegisterList args = register_allocator()->NewRegisterList(2);
|
| + builder()->MoveRegister(literal, args[0]);
|
| + VisitForRegisterValue(property->value(), args[1]);
|
| + builder()->CallRuntime(Runtime::kCopyDataProperties, args);
|
| + break;
|
| + }
|
| case ObjectLiteral::Property::PROTOTYPE:
|
| UNREACHABLE(); // Handled specially above.
|
| break;
|
|
|