diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2017-11-05 06:18:45 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-05 06:18:45 +0800 |
commit | 5b4b07e9a7d67e593c6ae8d54dc77d174afd25ac (patch) | |
tree | 160e150e66c8f05da4d8d35097777ac5c4595b4f /test/compress | |
parent | a8aa28a7a6c0cb415965d055119956d4333de8fa (diff) | |
download | tracifyjs-5b4b07e9a7d67e593c6ae8d54dc77d174afd25ac.tar.gz tracifyjs-5b4b07e9a7d67e593c6ae8d54dc77d174afd25ac.zip |
extend function inlining safety checks (#2430)
Diffstat (limited to 'test/compress')
-rw-r--r-- | test/compress/drop-unused.js | 55 | ||||
-rw-r--r-- | test/compress/reduce_vars.js | 93 |
2 files changed, 136 insertions, 12 deletions
diff --git a/test/compress/drop-unused.js b/test/compress/drop-unused.js index 4ce8d2eb..af6a7a47 100644 --- a/test/compress/drop-unused.js +++ b/test/compress/drop-unused.js @@ -1109,11 +1109,11 @@ var_catch_toplevel: { } } -issue_2105: { +issue_2105_1: { options = { collapse_vars: true, inline: true, - passes: 3, + passes: 2, reduce_vars: true, side_effects: true, unused: true, @@ -1139,17 +1139,50 @@ issue_2105: { }); } expect: { - (function() { - var quux = function() { + ({ + prop: function() { + console.log; console.log("PASS"); - }; - return { - prop: function() { - console.log; - quux(); + } + }).prop(); + } + expect_stdout: "PASS" +} + +issue_2105_2: { + options = { + collapse_vars: true, + inline: true, + passes: 2, + properties: true, + pure_getters: "strict", + reduce_vars: true, + side_effects: true, + unsafe: true, + unused: true, + } + input: { + !function(factory) { + factory(); + }( function() { + return function(fn) { + fn()().prop(); + }( function() { + function bar() { + var quux = function() { + console.log("PASS"); + }, foo = function() { + console.log; + quux(); + }; + return { prop: foo }; } - }; - })().prop(); + return bar; + } ); + }); + } + expect: { + console.log("PASS"); } expect_stdout: "PASS" } diff --git a/test/compress/reduce_vars.js b/test/compress/reduce_vars.js index a18d4256..7714ad5d 100644 --- a/test/compress/reduce_vars.js +++ b/test/compress/reduce_vars.js @@ -3397,6 +3397,10 @@ issue_2423_1: { p(); p(); } + expect_stdout: [ + "1", + "1", + ] } issue_2423_2: { @@ -3417,6 +3421,10 @@ issue_2423_2: { p(); p(); } + expect_stdout: [ + "1", + "1", + ] } issue_2423_3: { @@ -3433,12 +3441,14 @@ issue_2423_3: { expect: { (function() { console.log(function() { return 1; }()); })(); } + expect_stdout: "1" } issue_2423_4: { options = { inline: true, reduce_vars: true, + side_effects: true, toplevel: true, unused: true, } @@ -3448,6 +3458,87 @@ issue_2423_4: { p(); } expect: { - void console.log(1); + console.log(1); + } + expect_stdout: "1" +} + +issue_2423_5: { + options = { + inline: true, + passes: 2, + reduce_vars: true, + side_effects: true, + toplevel: true, + unused: true, + } + input: { + function x() { + y(); + } + function y() { + console.log(1); + } + function z() { + function y() { + console.log(2); + } + x(); + } + z(); + z(); + } + expect: { + function z() { + console.log(1); + } + z(); + z(); } + expect_stdout: [ + "1", + "1", + ] +} + +issue_2423_6: { + options = { + inline: true, + passes: 2, + reduce_vars: true, + side_effects: true, + toplevel: true, + unused: true, + } + input: { + function x() { + y(); + } + function y() { + console.log(1); + } + function z() { + function y() { + console.log(2); + } + x(); + y(); + } + z(); + z(); + } + expect: { + function z(){ + console.log(1); + console.log(2); + } + z(); + z(); + } + expect_stdout: [ + "1", + "2", + "1", + "2", + ] } |