Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Unified Diff: node_modules/vulcanize/node_modules/uglify-js/test/compress/conditionals.js

Issue 800513006: Added vulcanize under third_party/npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698