From f85a206b9ed5b39726a2da39680056c09d3f9687 Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Tue, 22 Dec 2020 18:16:04 +0000 Subject: fix corner case when parsing expression (#4435) --- lib/parse.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/parse.js b/lib/parse.js index 111be3b5..87293cab 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -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() { -- cgit v1.2.3