diff options
Diffstat (limited to 'test/compress')
-rw-r--r-- | test/compress/typeof.js | 80 |
1 files changed, 79 insertions, 1 deletions
diff --git a/test/compress/typeof.js b/test/compress/typeof.js index 34949fbe..180e5451 100644 --- a/test/compress/typeof.js +++ b/test/compress/typeof.js @@ -1,6 +1,7 @@ typeof_evaluation: { options = { - evaluate: true + evaluate: true, + typeofs: true, }; input: { a = typeof 1; @@ -60,3 +61,80 @@ issue_1668: { if (1); } } + +typeof_defun_1: { + options = { + evaluate: true, + inline: true, + passes: 2, + reduce_vars: true, + side_effects: true, + toplevel: true, + typeofs: true, + unused: true, + } + input: { + function f() { + console.log("YES"); + } + function g() { + h = 42; + console.log("NOPE"); + } + function h() { + console.log("YUP"); + } + g = 42; + "function" == typeof f && f(); + "function" == typeof g && g(); + "function" == typeof h && h(); + } + expect: { + function g() { + h = 42; + console.log("NOPE"); + } + function h() { + console.log("YUP"); + } + g = 42; + console.log("YES"); + "function" == typeof g && g(); + h(); + } + expect_stdout: [ + "YES", + "YUP", + ] +} + +typeof_defun_2: { + options = { + evaluate: true, + reduce_vars: true, + toplevel: true, + typeofs: true, + } + input: { + var f = function() { + console.log(x); + }; + var x = 0; + x++ < 2 && typeof f == "function" && f(); + x++ < 2 && typeof f == "function" && f(); + x++ < 2 && typeof f == "function" && f(); + } + expect: { + var f = function() { + console.log(x); + }; + var x = 0; + x++ < 2 && f(); + x++ < 2 && f(); + x++ < 2 && f(); + } + expect_stdout: [ + "1", + "2", + ] +} |