aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMihai Bazon <mihai@bazon.net>2012-10-13 15:04:44 +0300
committerMihai Bazon <mihai@bazon.net>2012-10-13 15:04:44 +0300
commitfcc0229087c4efd212a1050f38d3049d52344b3a (patch)
tree02032c14fdb06c118ae18ab41b81f69fd6d6206b /test
parentb071c9d079e3acbfb521a6634364c5816d3be280 (diff)
downloadtracifyjs-fcc0229087c4efd212a1050f38d3049d52344b3a.tar.gz
tracifyjs-fcc0229087c4efd212a1050f38d3049d52344b3a.zip
drop unused function arguments
also add test for "drop_unused" (the last one fails for now)
Diffstat (limited to 'test')
-rw-r--r--test/compress/drop-unused.js97
-rwxr-xr-xtest/run-tests.js6
2 files changed, 103 insertions, 0 deletions
diff --git a/test/compress/drop-unused.js b/test/compress/drop-unused.js
new file mode 100644
index 00000000..bf5cd296
--- /dev/null
+++ b/test/compress/drop-unused.js
@@ -0,0 +1,97 @@
+unused_funarg_1: {
+ options = { unused: true };
+ input: {
+ function f(a, b, c, d, e) {
+ return a + b;
+ }
+ }
+ expect: {
+ function f(a, b) {
+ return a + b;
+ }
+ }
+}
+
+unused_funarg_2: {
+ options = { unused: true };
+ input: {
+ function f(a, b, c, d, e) {
+ return a + c;
+ }
+ }
+ expect: {
+ function f(a, b, c) {
+ return a + c;
+ }
+ }
+}
+
+unused_nested_function: {
+ options = { unused: true };
+ input: {
+ function f(x, y) {
+ function g() {
+ something();
+ }
+ return x + y;
+ }
+ };
+ expect: {
+ function f(x, y) {
+ return x + y;
+ }
+ }
+}
+
+unused_circular_references_1: {
+ options = { unused: true };
+ input: {
+ function f(x, y) {
+ // circular reference
+ function g() {
+ return h();
+ }
+ function h() {
+ return g();
+ }
+ return x + y;
+ }
+ };
+ expect: {
+ function f(x, y) {
+ return x + y;
+ }
+ }
+}
+
+unused_circular_references_2: {
+ options = { unused: true };
+ input: {
+ function f(x, y) {
+ var foo = 1, bar = baz, baz = foo + bar, qwe = moo();
+ return x + y;
+ }
+ };
+ expect: {
+ function f(x, y) {
+ moo(); // keeps side effect
+ return x + y;
+ }
+ }
+}
+
+unused_circular_references_3: {
+ options = { unused: true };
+ input: {
+ function f(x, y) {
+ var g = function() { return h() };
+ var h = function() { return g() };
+ return x + y;
+ }
+ };
+ expect: {
+ function f(x, y) {
+ return x + y;
+ }
+ }
+}
diff --git a/test/run-tests.js b/test/run-tests.js
index abace39c..87301412 100755
--- a/test/run-tests.js
+++ b/test/run-tests.js
@@ -37,6 +37,12 @@ function find_test_files(dir) {
var files = fs.readdirSync(dir).filter(function(name){
return /\.js$/i.test(name);
});
+ if (process.argv.length > 2) {
+ var x = process.argv.slice(2);
+ files = files.filter(function(f){
+ return x.indexOf(f) >= 0;
+ });
+ }
return files;
}