From: Alex Lam S.L Date: Mon, 15 May 2017 21:40:49 +0000 (+0800) Subject: fix parsing of property access after new line (#1944) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=9464d3c20f60d7abe7fde5b48cc00a699566dbe7;p=UglifyJS.git fix parsing of property access after new line (#1944) Account for comments when detecting property access in `tokenizer`. fixes #1943 --- diff --git a/lib/parse.js b/lib/parse.js index eab9b64d..97dd6d4b 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -285,7 +285,11 @@ function tokenizer($TEXT, filename, html5_comments, shebang) { S.regex_allowed = ((type == "operator" && !UNARY_POSTFIX(value)) || (type == "keyword" && KEYWORDS_BEFORE_EXPRESSION(value)) || (type == "punc" && PUNC_BEFORE_EXPRESSION(value))); - prev_was_dot = (type == "punc" && value == "."); + if (type == "punc" && value == ".") { + prev_was_dot = true; + } else if (!is_comment) { + prev_was_dot = false; + } var ret = { type : type, value : value, diff --git a/test/compress/issue-1943.js b/test/compress/issue-1943.js new file mode 100644 index 00000000..69bb9e64 --- /dev/null +++ b/test/compress/issue-1943.js @@ -0,0 +1,31 @@ +operator: { + input: { + a. //comment + typeof + } + expect_exact: "a.typeof;" +} + +name: { + input: { + a. //comment + b + } + expect_exact: "a.b;" +} + +keyword: { + input: { + a. //comment + default + } + expect_exact: "a.default;" +} + +atom: { + input: { + a. //comment + true + } + expect_exact: "a.true;" +}