Index: src/parser.cc |
diff --git a/src/parser.cc b/src/parser.cc |
index 75bfbe25ab84611b2a14a95be4f098cd17073728..278bac1eb87a2032c12db580050216c9826c703c 100644 |
--- a/src/parser.cc |
+++ b/src/parser.cc |
@@ -2594,6 +2594,7 @@ Statement* Parser::ParseExpressionOrLabelledStatement( |
} |
bool starts_with_idenfifier = peek_any_identifier(); |
+ |
Expression* expr = ParseExpression(true, CHECK_OK); |
if (peek() == Token::COLON && starts_with_idenfifier && expr != NULL && |
expr->AsVariableProxy() != NULL && |
@@ -3430,6 +3431,17 @@ Statement* Parser::DesugarLexicalBindingsInForStatement( |
} |
+Expression* Parser::DesugarDestructuringAssignment(Expression* expr) { |
+ // TODO(caitp): implement the desugaring |
+ DCHECK(expr->IsAssignment()); |
+ Assignment* assign = expr->AsAssignment(); |
+ while (assign->value()->IsAssignment()) { |
+ assign = assign->value()->AsAssignment(); |
+ } |
+ return assign->value(); |
+} |
+ |
+ |
Statement* Parser::ParseForStatement(ZoneList<const AstRawString*>* labels, |
bool* ok) { |
// ForStatement :: |