fix corner case when parsing expression (#4435)

This commit is contained in:
Alex Lam S.L
2020-12-22 18:16:04 +00:00
committed by GitHub
parent bba7cd0a70
commit f85a206b9e
2 changed files with 16 additions and 6 deletions

View File

@@ -737,7 +737,7 @@ function parse($TEXT, options) {
function semicolon(optional) {
if (is("punc", ";")) next();
else if (!optional && !can_insert_semicolon()) expect_token("punc", ";");
else if (!optional && !can_insert_semicolon()) expect(";");
}
function parenthesised() {
@@ -1166,7 +1166,7 @@ function parse($TEXT, options) {
expect("{");
var a = [];
while (!is("punc", "}")) {
if (is("eof")) expect_token("punc", "}");
if (is("eof")) expect("}");
a.push(statement());
}
next();
@@ -1177,7 +1177,7 @@ function parse($TEXT, options) {
expect("{");
var a = [], branch, cur, default_branch, tmp;
while (!is("punc", "}")) {
if (is("eof")) expect_token("punc", "}");
if (is("eof")) expect("}");
if (is("keyword", "case")) {
if (branch) branch.end = prev();
cur = [];
@@ -1561,9 +1561,8 @@ function parse($TEXT, options) {
}
function as_name() {
if (!is("name")) expect_token("name");
var name = S.token.value;
next();
expect_token("name");
return name;
}
@@ -1861,7 +1860,9 @@ function parse($TEXT, options) {
if (options.expression) {
handle_regexp();
return expression();
var exp = expression();
expect_token("eof");
return exp;
}
return function() {