Index: node_modules/vulcanize/node_modules/uglify-js/test/compress/dead-code.js |
diff --git a/node_modules/vulcanize/node_modules/uglify-js/test/compress/dead-code.js b/node_modules/vulcanize/node_modules/uglify-js/test/compress/dead-code.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0fd066eb297a334b10b340a5e309007f20320a67 |
--- /dev/null |
+++ b/node_modules/vulcanize/node_modules/uglify-js/test/compress/dead-code.js |
@@ -0,0 +1,89 @@ |
+dead_code_1: { |
+ options = { |
+ dead_code: true |
+ }; |
+ input: { |
+ function f() { |
+ a(); |
+ b(); |
+ x = 10; |
+ return; |
+ if (x) { |
+ y(); |
+ } |
+ } |
+ } |
+ expect: { |
+ function f() { |
+ a(); |
+ b(); |
+ x = 10; |
+ return; |
+ } |
+ } |
+} |
+ |
+dead_code_2_should_warn: { |
+ options = { |
+ dead_code: true |
+ }; |
+ input: { |
+ function f() { |
+ g(); |
+ x = 10; |
+ throw "foo"; |
+ // completely discarding the `if` would introduce some |
+ // bugs. UglifyJS v1 doesn't deal with this issue; in v2 |
+ // we copy any declarations to the upper scope. |
+ if (x) { |
+ y(); |
+ var x; |
+ function g(){}; |
+ // but nested declarations should not be kept. |
+ (function(){ |
+ var q; |
+ function y(){}; |
+ })(); |
+ } |
+ } |
+ } |
+ expect: { |
+ function f() { |
+ g(); |
+ x = 10; |
+ throw "foo"; |
+ var x; |
+ function g(){}; |
+ } |
+ } |
+} |
+ |
+dead_code_constant_boolean_should_warn_more: { |
+ options = { |
+ dead_code : true, |
+ loops : true, |
+ booleans : true, |
+ conditionals : true, |
+ evaluate : true |
+ }; |
+ input: { |
+ while (!((foo && bar) || (x + "0"))) { |
+ console.log("unreachable"); |
+ var foo; |
+ function bar() {} |
+ } |
+ for (var x = 10; x && (y || x) && (!typeof x); ++x) { |
+ asdf(); |
+ foo(); |
+ var moo; |
+ } |
+ } |
+ expect: { |
+ var foo; |
+ function bar() {} |
+ // nothing for the while |
+ // as for the for, it should keep: |
+ var x = 10; |
+ var moo; |
+ } |
+} |