| Index: node_modules/vulcanize/node_modules/uglify-js/test/compress/conditionals.js
|
| diff --git a/node_modules/vulcanize/node_modules/uglify-js/test/compress/conditionals.js b/node_modules/vulcanize/node_modules/uglify-js/test/compress/conditionals.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2212f85fdc508015bdf69f538a952aebdfe97682
|
| --- /dev/null
|
| +++ b/node_modules/vulcanize/node_modules/uglify-js/test/compress/conditionals.js
|
| @@ -0,0 +1,314 @@
|
| +ifs_1: {
|
| + options = {
|
| + conditionals: true
|
| + };
|
| + input: {
|
| + if (foo) bar();
|
| + if (!foo); else bar();
|
| + if (foo); else bar();
|
| + if (foo); else;
|
| + }
|
| + expect: {
|
| + foo&&bar();
|
| + foo&&bar();
|
| + foo||bar();
|
| + foo;
|
| + }
|
| +}
|
| +
|
| +ifs_2: {
|
| + options = {
|
| + conditionals: true
|
| + };
|
| + input: {
|
| + if (foo) {
|
| + x();
|
| + } else if (bar) {
|
| + y();
|
| + } else if (baz) {
|
| + z();
|
| + }
|
| +
|
| + if (foo) {
|
| + x();
|
| + } else if (bar) {
|
| + y();
|
| + } else if (baz) {
|
| + z();
|
| + } else {
|
| + t();
|
| + }
|
| + }
|
| + expect: {
|
| + foo ? x() : bar ? y() : baz && z();
|
| + foo ? x() : bar ? y() : baz ? z() : t();
|
| + }
|
| +}
|
| +
|
| +ifs_3_should_warn: {
|
| + options = {
|
| + conditionals : true,
|
| + dead_code : true,
|
| + evaluate : true,
|
| + booleans : true
|
| + };
|
| + input: {
|
| + if (x && !(x + "1") && y) { // 1
|
| + var qq;
|
| + foo();
|
| + } else {
|
| + bar();
|
| + }
|
| +
|
| + if (x || !!(x + "1") || y) { // 2
|
| + foo();
|
| + } else {
|
| + var jj;
|
| + bar();
|
| + }
|
| + }
|
| + expect: {
|
| + var qq; bar(); // 1
|
| + var jj; foo(); // 2
|
| + }
|
| +}
|
| +
|
| +ifs_4: {
|
| + options = {
|
| + conditionals: true
|
| + };
|
| + input: {
|
| + if (foo && bar) {
|
| + x(foo)[10].bar.baz = something();
|
| + } else
|
| + x(foo)[10].bar.baz = something_else();
|
| + }
|
| + expect: {
|
| + x(foo)[10].bar.baz = (foo && bar) ? something() : something_else();
|
| + }
|
| +}
|
| +
|
| +ifs_5: {
|
| + options = {
|
| + if_return: true,
|
| + conditionals: true,
|
| + comparisons: true,
|
| + };
|
| + input: {
|
| + function f() {
|
| + if (foo) return;
|
| + bar();
|
| + baz();
|
| + }
|
| + function g() {
|
| + if (foo) return;
|
| + if (bar) return;
|
| + if (baz) return;
|
| + if (baa) return;
|
| + a();
|
| + b();
|
| + }
|
| + }
|
| + expect: {
|
| + function f() {
|
| + if (!foo) {
|
| + bar();
|
| + baz();
|
| + }
|
| + }
|
| + function g() {
|
| + if (!(foo || bar || baz || baa)) {
|
| + a();
|
| + b();
|
| + }
|
| + }
|
| + }
|
| +}
|
| +
|
| +ifs_6: {
|
| + options = {
|
| + conditionals: true,
|
| + comparisons: true
|
| + };
|
| + input: {
|
| + if (!foo && !bar && !baz && !boo) {
|
| + x = 10;
|
| + } else {
|
| + x = 20;
|
| + }
|
| + }
|
| + expect: {
|
| + x = foo || bar || baz || boo ? 20 : 10;
|
| + }
|
| +}
|
| +
|
| +cond_1: {
|
| + options = {
|
| + conditionals: true
|
| + };
|
| + input: {
|
| + if (some_condition()) {
|
| + do_something(x);
|
| + } else {
|
| + do_something(y);
|
| + }
|
| + }
|
| + expect: {
|
| + do_something(some_condition() ? x : y);
|
| + }
|
| +}
|
| +
|
| +cond_2: {
|
| + options = {
|
| + conditionals: true
|
| + };
|
| + input: {
|
| + if (some_condition()) {
|
| + x = new FooBar(1);
|
| + } else {
|
| + x = new FooBar(2);
|
| + }
|
| + }
|
| + expect: {
|
| + x = new FooBar(some_condition() ? 1 : 2);
|
| + }
|
| +}
|
| +
|
| +cond_3: {
|
| + options = {
|
| + conditionals: true
|
| + };
|
| + input: {
|
| + if (some_condition()) {
|
| + new FooBar(1);
|
| + } else {
|
| + FooBar(2);
|
| + }
|
| + }
|
| + expect: {
|
| + some_condition() ? new FooBar(1) : FooBar(2);
|
| + }
|
| +}
|
| +
|
| +cond_4: {
|
| + options = {
|
| + conditionals: true
|
| + };
|
| + input: {
|
| + if (some_condition()) {
|
| + do_something();
|
| + } else {
|
| + do_something();
|
| + }
|
| + }
|
| + expect: {
|
| + some_condition(), do_something();
|
| + }
|
| +}
|
| +
|
| +cond_5: {
|
| + options = {
|
| + conditionals: true
|
| + };
|
| + input: {
|
| + if (some_condition()) {
|
| + if (some_other_condition()) {
|
| + do_something();
|
| + } else {
|
| + alternate();
|
| + }
|
| + } else {
|
| + alternate();
|
| + }
|
| +
|
| + if (some_condition()) {
|
| + if (some_other_condition()) {
|
| + do_something();
|
| + }
|
| + }
|
| + }
|
| + expect: {
|
| + some_condition() && some_other_condition() ? do_something() : alternate();
|
| + some_condition() && some_other_condition() && do_something();
|
| + }
|
| +}
|
| +
|
| +cond_7: {
|
| + options = {
|
| + conditionals: true,
|
| + evaluate : true
|
| + };
|
| + input: {
|
| + var x, y, z, a, b;
|
| + // compress these
|
| + if (y) {
|
| + x = 1+1;
|
| + } else {
|
| + x = 2;
|
| + }
|
| +
|
| + if (y) {
|
| + x = 1+1;
|
| + } else if (z) {
|
| + x = 2;
|
| + } else {
|
| + x = 3-1;
|
| + }
|
| +
|
| + x = y ? 'foo' : 'fo'+'o';
|
| +
|
| + x = y ? 'foo' : y ? 'foo' : 'fo'+'o';
|
| +
|
| + // Compress conditions that have side effects
|
| + if (condition()) {
|
| + x = 10+10;
|
| + } else {
|
| + x = 20;
|
| + }
|
| +
|
| + if (z) {
|
| + x = 'fuji';
|
| + } else if (condition()) {
|
| + x = 'fu'+'ji';
|
| + } else {
|
| + x = 'fuji';
|
| + }
|
| +
|
| + x = condition() ? 'foobar' : 'foo'+'bar';
|
| +
|
| + // don't compress these
|
| + x = y ? a : b;
|
| +
|
| + x = y ? 'foo' : 'fo';
|
| + }
|
| + expect: {
|
| + var x, y, z, a, b;
|
| + x = 2;
|
| + x = 2;
|
| + x = 'foo';
|
| + x = 'foo';
|
| + x = (condition(), 20);
|
| + x = z ? 'fuji' : (condition(), 'fuji');
|
| + x = (condition(), 'foobar');
|
| + x = y ? a : b;
|
| + x = y ? 'foo' : 'fo';
|
| + }
|
| +}
|
| +
|
| +cond_7_1: {
|
| + options = {
|
| + conditionals: true,
|
| + evaluate : true
|
| + };
|
| + input: {
|
| + // access to global should be assumed to have side effects
|
| + if (y) {
|
| + x = 1+1;
|
| + } else {
|
| + x = 2;
|
| + }
|
| + }
|
| + expect: {
|
| + x = (y, 2);
|
| + }
|
| +}
|
|
|