| Index: runtime/vm/parser.cc
|
| ===================================================================
|
| --- runtime/vm/parser.cc (revision 26062)
|
| +++ runtime/vm/parser.cc (working copy)
|
| @@ -9237,7 +9237,6 @@
|
| AstNode* value) {
|
| if (is_const) {
|
| ASSERT(key->IsLiteralNode());
|
| - ASSERT(key->AsLiteralNode()->literal().IsString());
|
| const Instance& new_key = key->AsLiteralNode()->literal();
|
| for (int i = 0; i < pairs->length(); i += 2) {
|
| const Instance& key_i =
|
| @@ -10046,6 +10045,8 @@
|
| SkipNestedExpr();
|
| if (CurrentToken() == Token::kCOMMA) {
|
| ConsumeToken();
|
| + } else {
|
| + break;
|
| }
|
| }
|
| ExpectToken(Token::kRBRACK);
|
| @@ -10054,12 +10055,14 @@
|
|
|
| void Parser::SkipMapLiteral() {
|
| ExpectToken(Token::kLBRACE);
|
| - while (CurrentToken() == Token::kSTRING) {
|
| - SkipStringLiteral();
|
| + while (CurrentToken() != Token::kRBRACE) {
|
| + SkipNestedExpr();
|
| ExpectToken(Token::kCOLON);
|
| SkipNestedExpr();
|
| if (CurrentToken() == Token::kCOMMA) {
|
| ConsumeToken();
|
| + } else {
|
| + break;
|
| }
|
| }
|
| ExpectToken(Token::kRBRACE);
|
|
|