Index: src/parser.cc |
diff --git a/src/parser.cc b/src/parser.cc |
index 816849748869720029796504e4d282dc6ca1bb2e..3774203d571bee4ba4bfb206048bbd040e873eda 100644 |
--- a/src/parser.cc |
+++ b/src/parser.cc |
@@ -2603,6 +2603,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 && |
@@ -3435,6 +3436,17 @@ Statement* Parser::DesugarLexicalBindingsInForStatement( |
} |
+Expression* Parser::DesugarDestructuringAssignment(Expression* expr, bool* ok) { |
+ // 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 :: |