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

Unified Diff: node_modules/vulcanize/node_modules/uglify-js/test/compress/switch.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/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();
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698