| 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);
|
| }
|
|
|