Index: src/preparser.h |
diff --git a/src/preparser.h b/src/preparser.h |
index d240db1b912955a87b75052b7cf6571b005f494f..938fd3f1620466e90d420d2b34b8a525909b6833 100644 |
--- a/src/preparser.h |
+++ b/src/preparser.h |
@@ -33,6 +33,7 @@ struct FormalParametersBase { |
bool has_rest = false; |
bool is_simple = true; |
int materialized_literals_count = 0; |
+ int rest_array_literal_index = 0; |
}; |
@@ -3654,10 +3655,14 @@ void ParserBase<Traits>::ParseFormalParameter( |
parameters->is_simple = !is_rest && Traits::IsIdentifier(pattern); |
} |
parameters->has_rest = is_rest; |
- if (is_rest && !Traits::IsIdentifier(pattern)) { |
- ReportUnexpectedToken(next); |
- *ok = false; |
- return; |
+ if (is_rest) { |
+ if (!Traits::IsIdentifier(pattern)) { |
+ ReportUnexpectedToken(next); |
+ *ok = false; |
+ return; |
+ } |
+ parameters->rest_array_literal_index = |
+ function_state_->NextMaterializedLiteralIndex(); |
} |
Traits::AddFormalParameter(parameters, pattern, is_rest); |
} |