| Index: src/pattern-rewriter.cc | 
| diff --git a/src/pattern-rewriter.cc b/src/pattern-rewriter.cc | 
| index 2319d1aaf73dd6f6a91746e490f45f7020f6fb30..4df6db87525facec0387825aa401a0328b56e47e 100644 | 
| --- a/src/pattern-rewriter.cc | 
| +++ b/src/pattern-rewriter.cc | 
| @@ -208,14 +208,21 @@ void Parser::PatternRewriter::VisitVariableProxy(VariableProxy* pattern) { | 
|  | 
|  | 
| void Parser::PatternRewriter::VisitObjectLiteral(ObjectLiteral* pattern) { | 
| -  auto temp = descriptor_->declaration_scope->NewTemporary( | 
| +  auto temp = TemporaryDeclarationScope()->NewTemporary( | 
| ast_value_factory()->empty_string()); | 
| auto assignment = | 
| factory()->NewAssignment(Token::ASSIGN, factory()->NewVariableProxy(temp), | 
| current_value_, RelocInfo::kNoPosition); | 
| + | 
| block_->AddStatement( | 
| factory()->NewExpressionStatement(assignment, RelocInfo::kNoPosition), | 
| zone()); | 
| + | 
| +  if (pattern->properties()->length() == 0) { | 
| +    block_->AddStatement(descriptor_->parser->BuildAssertIsCoercible(temp), | 
| +                         zone()); | 
| +  } | 
| + | 
| for (ObjectLiteralProperty* property : *pattern->properties()) { | 
| // TODO(dslomov): computed property names. | 
| RecurseIntoSubpattern( | 
|  |