Bug 1130811 - Eliminate an else-after-return when parsing ES7 array comprehensions. r=shu

--HG--
extra : rebase_source : d801e039ada40e5b8be2e5beff1e0aa2d4ba2fbf
This commit is contained in:
Jeff Walden 2015-02-10 01:00:01 -08:00
Родитель 03696c4045
Коммит 18452dd552
1 изменённых файлов: 5 добавлений и 3 удалений

Просмотреть файл

@ -7719,15 +7719,17 @@ Parser<ParseHandler>::arrayInitializer()
TokenKind tt; TokenKind tt;
if (!tokenStream.getToken(&tt, TokenStream::Operand)) if (!tokenStream.getToken(&tt, TokenStream::Operand))
return null(); return null();
// Handle an ES7 array comprehension first.
if (tt == TOK_FOR)
return arrayComprehension(begin);
if (tt == TOK_RB) { if (tt == TOK_RB) {
/* /*
* Mark empty arrays as non-constant, since we cannot easily * Mark empty arrays as non-constant, since we cannot easily
* determine their type. * determine their type.
*/ */
handler.setListFlag(literal, PNX_NONCONST); handler.setListFlag(literal, PNX_NONCONST);
} else if (tt == TOK_FOR) {
// ES6 array comprehension.
return arrayComprehension(begin);
} else { } else {
tokenStream.ungetToken(); tokenStream.ungetToken();