diff options
Diffstat (limited to 'test/compress/reduce_vars.js')
-rw-r--r-- | test/compress/reduce_vars.js | 183 |
1 files changed, 182 insertions, 1 deletions
diff --git a/test/compress/reduce_vars.js b/test/compress/reduce_vars.js index a1d05012..c401ac66 100644 --- a/test/compress/reduce_vars.js +++ b/test/compress/reduce_vars.js @@ -168,4 +168,185 @@ modified: { console.log(B ? 'yes' : 'no'); } } -}
\ No newline at end of file +} + +unsafe_evaluate: { + options = { + evaluate : true, + reduce_vars : true, + unsafe : true, + unused : true + } + input: { + function f0(){ + var a = { + b:1 + }; + console.log(a.b + 3); + } + + function f1(){ + var a = { + b:{ + c:1 + }, + d:2 + }; + console.log(a.b + 3, a.d + 4, a.b.c + 5, a.d.c + 6); + } + } + expect: { + function f0(){ + console.log(4); + } + + function f1(){ + var a = { + b:{ + c:1 + }, + d:2 + }; + console.log(a.b + 3, 6, 6, 2..c + 6); + } + } +} + +unsafe_evaluate_object: { + options = { + evaluate : true, + reduce_vars : true, + unsafe : true + } + input: { + function f0(){ + var a = 1; + var b = {}; + b[a] = 2; + console.log(a + 3); + } + + function f1(){ + var a = { + b:1 + }; + a.b = 2; + console.log(a.b + 3); + } + } + expect: { + function f0(){ + var a = 1; + var b = {}; + b[a] = 2; + console.log(4); + } + + function f1(){ + var a = { + b:1 + }; + a.b = 2; + console.log(a.b + 3); + } + } +} + +unsafe_evaluate_array: { + options = { + evaluate : true, + reduce_vars : true, + unsafe : true + } + input: { + function f0(){ + var a = 1; + var b = []; + b[a] = 2; + console.log(a + 3); + } + + function f1(){ + var a = [1]; + a[2] = 3; + console.log(a.length); + } + + function f2(){ + var a = [1]; + a.push(2); + console.log(a.length); + } + } + expect: { + function f0(){ + var a = 1; + var b = []; + b[a] = 2; + console.log(4); + } + + function f1(){ + var a = [1]; + a[2] = 3; + console.log(a.length); + } + + function f2(){ + var a = [1]; + a.push(2); + console.log(a.length); + } + } +} + +unsafe_evaluate_equality: { + options = { + evaluate : true, + reduce_vars : true, + unsafe : true, + unused : true + } + input: { + function f0(){ + var a = {}; + console.log(a === a); + } + + function f1(){ + var a = []; + console.log(a === a); + } + + function f2(){ + var a = {a:1, b:2}; + var b = a; + var c = a; + console.log(b === c); + } + + function f3(){ + var a = [1, 2, 3]; + var b = a; + var c = a; + console.log(b === c); + } + } + expect: { + function f0(){ + console.log(true); + } + + function f1(){ + console.log(true); + } + + function f2(){ + console.log(true); + } + + function f3(){ + console.log(true); + } + } +} |