aboutsummaryrefslogtreecommitdiff
path: root/test/compress/reduce_vars.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/compress/reduce_vars.js')
-rw-r--r--test/compress/reduce_vars.js183
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);
+ }
+ }
+}