| Index: node_modules/vulcanize/node_modules/uglify-js/test/compress/switch.js
 | 
| diff --git a/node_modules/vulcanize/node_modules/uglify-js/test/compress/switch.js b/node_modules/vulcanize/node_modules/uglify-js/test/compress/switch.js
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..62e39cf7bcecb16f4cdbe213617df8dd6bdfedfa
 | 
| --- /dev/null
 | 
| +++ b/node_modules/vulcanize/node_modules/uglify-js/test/compress/switch.js
 | 
| @@ -0,0 +1,260 @@
 | 
| +constant_switch_1: {
 | 
| +    options = { dead_code: true, evaluate: true };
 | 
| +    input: {
 | 
| +        switch (1+1) {
 | 
| +          case 1: foo(); break;
 | 
| +          case 1+1: bar(); break;
 | 
| +          case 1+1+1: baz(); break;
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        bar();
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +constant_switch_2: {
 | 
| +    options = { dead_code: true, evaluate: true };
 | 
| +    input: {
 | 
| +        switch (1) {
 | 
| +          case 1: foo();
 | 
| +          case 1+1: bar(); break;
 | 
| +          case 1+1+1: baz();
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        foo();
 | 
| +        bar();
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +constant_switch_3: {
 | 
| +    options = { dead_code: true, evaluate: true };
 | 
| +    input: {
 | 
| +        switch (10) {
 | 
| +          case 1: foo();
 | 
| +          case 1+1: bar(); break;
 | 
| +          case 1+1+1: baz();
 | 
| +          default:
 | 
| +            def();
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        def();
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +constant_switch_4: {
 | 
| +    options = { dead_code: true, evaluate: true };
 | 
| +    input: {
 | 
| +        switch (2) {
 | 
| +          case 1:
 | 
| +            x();
 | 
| +            if (foo) break;
 | 
| +            y();
 | 
| +            break;
 | 
| +          case 1+1:
 | 
| +            bar();
 | 
| +          default:
 | 
| +            def();
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        bar();
 | 
| +        def();
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +constant_switch_5: {
 | 
| +    options = { dead_code: true, evaluate: true };
 | 
| +    input: {
 | 
| +        switch (1) {
 | 
| +          case 1:
 | 
| +            x();
 | 
| +            if (foo) break;
 | 
| +            y();
 | 
| +            break;
 | 
| +          case 1+1:
 | 
| +            bar();
 | 
| +          default:
 | 
| +            def();
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        // the break inside the if ruins our job
 | 
| +        // we can still get rid of irrelevant cases.
 | 
| +        switch (1) {
 | 
| +          case 1:
 | 
| +            x();
 | 
| +            if (foo) break;
 | 
| +            y();
 | 
| +        }
 | 
| +        // XXX: we could optimize this better by inventing an outer
 | 
| +        // labeled block, but that's kinda tricky.
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +constant_switch_6: {
 | 
| +    options = { dead_code: true, evaluate: true };
 | 
| +    input: {
 | 
| +        OUT: {
 | 
| +            foo();
 | 
| +            switch (1) {
 | 
| +              case 1:
 | 
| +                x();
 | 
| +                if (foo) break OUT;
 | 
| +                y();
 | 
| +              case 1+1:
 | 
| +                bar();
 | 
| +                break;
 | 
| +              default:
 | 
| +                def();
 | 
| +            }
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        OUT: {
 | 
| +            foo();
 | 
| +            x();
 | 
| +            if (foo) break OUT;
 | 
| +            y();
 | 
| +            bar();
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +constant_switch_7: {
 | 
| +    options = { dead_code: true, evaluate: true };
 | 
| +    input: {
 | 
| +        OUT: {
 | 
| +            foo();
 | 
| +            switch (1) {
 | 
| +              case 1:
 | 
| +                x();
 | 
| +                if (foo) break OUT;
 | 
| +                for (var x = 0; x < 10; x++) {
 | 
| +                    if (x > 5) break; // this break refers to the for, not to the switch; thus it
 | 
| +                                      // shouldn't ruin our optimization
 | 
| +                    console.log(x);
 | 
| +                }
 | 
| +                y();
 | 
| +              case 1+1:
 | 
| +                bar();
 | 
| +                break;
 | 
| +              default:
 | 
| +                def();
 | 
| +            }
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        OUT: {
 | 
| +            foo();
 | 
| +            x();
 | 
| +            if (foo) break OUT;
 | 
| +            for (var x = 0; x < 10; x++) {
 | 
| +                if (x > 5) break;
 | 
| +                console.log(x);
 | 
| +            }
 | 
| +            y();
 | 
| +            bar();
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +constant_switch_8: {
 | 
| +    options = { dead_code: true, evaluate: true };
 | 
| +    input: {
 | 
| +        OUT: switch (1) {
 | 
| +          case 1:
 | 
| +            x();
 | 
| +            for (;;) break OUT;
 | 
| +            y();
 | 
| +            break;
 | 
| +          case 1+1:
 | 
| +            bar();
 | 
| +          default:
 | 
| +            def();
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        OUT: {
 | 
| +            x();
 | 
| +            for (;;) break OUT;
 | 
| +            y();
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +constant_switch_9: {
 | 
| +    options = { dead_code: true, evaluate: true };
 | 
| +    input: {
 | 
| +        OUT: switch (1) {
 | 
| +          case 1:
 | 
| +            x();
 | 
| +            for (;;) if (foo) break OUT;
 | 
| +            y();
 | 
| +          case 1+1:
 | 
| +            bar();
 | 
| +          default:
 | 
| +            def();
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        OUT: {
 | 
| +            x();
 | 
| +            for (;;) if (foo) break OUT;
 | 
| +            y();
 | 
| +            bar();
 | 
| +            def();
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +drop_default_1: {
 | 
| +    options = { dead_code: true };
 | 
| +    input: {
 | 
| +        switch (foo) {
 | 
| +          case 'bar': baz();
 | 
| +          default:
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        switch (foo) {
 | 
| +          case 'bar': baz();
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +drop_default_2: {
 | 
| +    options = { dead_code: true };
 | 
| +    input: {
 | 
| +        switch (foo) {
 | 
| +          case 'bar': baz(); break;
 | 
| +          default:
 | 
| +            break;
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        switch (foo) {
 | 
| +          case 'bar': baz();
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +keep_default: {
 | 
| +    options = { dead_code: true };
 | 
| +    input: {
 | 
| +        switch (foo) {
 | 
| +          case 'bar': baz();
 | 
| +          default:
 | 
| +            something();
 | 
| +            break;
 | 
| +        }
 | 
| +    }
 | 
| +    expect: {
 | 
| +        switch (foo) {
 | 
| +          case 'bar': baz();
 | 
| +          default:
 | 
| +            something();
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| 
 |