diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2017-12-24 12:38:45 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-24 12:38:45 +0800 |
commit | efffb817357898f3a05d24fdddbf3280e33bf880 (patch) | |
tree | dda34208d6ed4a27646562c22ed7d4c3c3c921e6 /test | |
parent | 202f90ef8f2b282fbd5c063a7e5a34f79551099e (diff) | |
download | tracifyjs-efffb817357898f3a05d24fdddbf3280e33bf880.tar.gz tracifyjs-efffb817357898f3a05d24fdddbf3280e33bf880.zip |
fix comments output & improve `/*@__PURE__*/`
- fix whitespace around comments
- fix comment parsing around parentheses
- consider parentheses when parsing `/*@__PURE__*/`
- remove all `/*@__PURE__*/` on output
fixes #2638
Diffstat (limited to 'test')
-rw-r--r-- | test/compress/pure_funcs.js | 73 | ||||
-rw-r--r-- | test/mocha/minify.js | 4 |
2 files changed, 58 insertions, 19 deletions
diff --git a/test/compress/pure_funcs.js b/test/compress/pure_funcs.js index 6f3bbb21..d15bcca3 100644 --- a/test/compress/pure_funcs.js +++ b/test/compress/pure_funcs.js @@ -298,19 +298,27 @@ issue_2629_1: { options = { side_effects: true, } + beautify = { + comments: "all", + } input: { /*@__PURE__*/ a(); /*@__PURE__*/ (b()); (/*@__PURE__*/ c)(); (/*@__PURE__*/ d()); } - expect: {} + expect_exact: [ + "/* */c();", + ] } issue_2629_2: { options = { side_effects: true, } + beautify = { + comments: "all", + } input: { /*@__PURE__*/ a(1)(2)(3); /*@__PURE__*/ (b(1))(2)(3); @@ -321,30 +329,44 @@ issue_2629_2: { (/*@__PURE__*/ g(1)(2))(3); (/*@__PURE__*/ h(1)(2)(3)); } - expect: {} + expect_exact: [ + "/* */e(1)(2)(3);", + "/* */f(1)(2)(3);", + "/* */g(1)(2)(3);", + ] } issue_2629_3: { options = { side_effects: true, } + beautify = { + comments: "all", + } input: { /*@__PURE__*/ a.x(1).y(2).z(3); - /*@__PURE__*/ (a.x)(1).y(2).z(3); - /*@__PURE__*/ (a.x(1)).y(2).z(3); - /*@__PURE__*/ (a.x(1).y)(2).z(3); - /*@__PURE__*/ (a.x(1).y(2)).z(3); - /*@__PURE__*/ (a.x(1).y(2).z)(3); - /*@__PURE__*/ (a.x(1).y(2).z(3)); - (/*@__PURE__*/ a).x(1).y(2).z(3); - (/*@__PURE__*/ a.x)(1).y(2).z(3); - (/*@__PURE__*/ a.x(1)).y(2).z(3); - (/*@__PURE__*/ a.x(1).y)(2).z(3); - (/*@__PURE__*/ a.x(1).y(2)).z(3); - (/*@__PURE__*/ a.x(1).y(2).z)(3); - (/*@__PURE__*/ a.x(1).y(2).z(3)); - } - expect: {} + /*@__PURE__*/ (b.x)(1).y(2).z(3); + /*@__PURE__*/ (c.x(1)).y(2).z(3); + /*@__PURE__*/ (d.x(1).y)(2).z(3); + /*@__PURE__*/ (e.x(1).y(2)).z(3); + /*@__PURE__*/ (f.x(1).y(2).z)(3); + /*@__PURE__*/ (g.x(1).y(2).z(3)); + (/*@__PURE__*/ h).x(1).y(2).z(3); + (/*@__PURE__*/ i.x)(1).y(2).z(3); + (/*@__PURE__*/ j.x(1)).y(2).z(3); + (/*@__PURE__*/ k.x(1).y)(2).z(3); + (/*@__PURE__*/ l.x(1).y(2)).z(3); + (/*@__PURE__*/ m.x(1).y(2).z)(3); + (/*@__PURE__*/ n.x(1).y(2).z(3)); + } + expect_exact: [ + "/* */h.x(1).y(2).z(3);", + "/* */i.x(1).y(2).z(3);", + "/* */j.x(1).y(2).z(3);", + "/* */k.x(1).y(2).z(3);", + "/* */l.x(1).y(2).z(3);", + "/* */m.x(1).y(2).z(3);", + ] } issue_2629_4: { @@ -375,3 +397,20 @@ issue_2629_5: { w(), y(); } } + +issue_2638: { + options = { + side_effects: true, + } + beautify = { + comments: "all", + } + input: { + /*@__PURE__*/(g() || h())(x(), y()); + (/*@__PURE__*/ (a() || b()))(c(), d()); + } + expect_exact: [ + "/* */x(),y();", + "/* */(a()||b())(c(),d());", + ] +} diff --git a/test/mocha/minify.js b/test/mocha/minify.js index 5d9512f3..5fa9254b 100644 --- a/test/mocha/minify.js +++ b/test/mocha/minify.js @@ -247,7 +247,7 @@ describe("minify", function() { var code = result.code; assert.strictEqual(code, "// comment1 comment2\nbar();"); }); - it("should not drop #__PURE__ hint if function is retained", function() { + it("should drop #__PURE__ hint if function is retained", function() { var result = Uglify.minify("var a = /*#__PURE__*/(function(){ foo(); })();", { output: { comments: "all", @@ -255,7 +255,7 @@ describe("minify", function() { } }); var code = result.code; - assert.strictEqual(code, "var a=/*#__PURE__*/function(){foo()}();"); + assert.strictEqual(code, "var a=/* */function(){foo()}();"); }) }); |