diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/compress/collapse_vars.js | 4 | ||||
-rw-r--r-- | test/compress/default-values.js | 38 | ||||
-rw-r--r-- | test/compress/destructured.js | 18 | ||||
-rw-r--r-- | test/reduce.js | 14 | ||||
-rw-r--r-- | test/ufuzz/index.js | 26 | ||||
-rw-r--r-- | test/ufuzz/job.js | 2 |
6 files changed, 87 insertions, 15 deletions
diff --git a/test/compress/collapse_vars.js b/test/compress/collapse_vars.js index 17ee8d10..f630883a 100644 --- a/test/compress/collapse_vars.js +++ b/test/compress/collapse_vars.js @@ -4273,8 +4273,8 @@ issue_2436_14: { var b = {}; (function() { a && function(c, d) { - console.log(c, d); - }(b, a); + console.log(b, d); + }(0, a); })(); } expect_stdout: true diff --git a/test/compress/default-values.js b/test/compress/default-values.js index 64dad3cf..8b9b3a95 100644 --- a/test/compress/default-values.js +++ b/test/compress/default-values.js @@ -974,3 +974,41 @@ issue_4444: { expect_stdout: "PASS" node_version: ">=6" } + +issue_4446_1: { + options = { + collapse_vars: true, + } + input: { + a = 42; + [ b = 42 ] = [ "PASS" ]; + c = 42; + console.log(b, a); + } + expect: { + [ b = 42 ] = [ "PASS" ]; + c = a = 42; + console.log(b, a); + } + expect_stdout: "PASS 42" + node_version: ">=6" +} + +issue_4446_2: { + options = { + collapse_vars: true, + } + input: { + a = 42; + var [ b = 42 ] = [ "PASS" ]; + c = 42; + console.log(b, a); + } + expect: { + var [ b = 42 ] = [ "PASS" ]; + c = a = 42; + console.log(b, a); + } + expect_stdout: "PASS 42" + node_version: ">=6" +} diff --git a/test/compress/destructured.js b/test/compress/destructured.js index 5594658d..7fe2f0c8 100644 --- a/test/compress/destructured.js +++ b/test/compress/destructured.js @@ -2146,3 +2146,21 @@ issue_4436_undefined: { expect_stdout: true node_version: ">=6" } + +issue_4446: { + options = { + collapse_vars: true, + } + input: { + a = "PASS"; + var a = [ a[0] ] = [ a ]; + console.log(a[0]); + } + expect: { + a = "PASS"; + var a = [ a[0] ] = [ a ]; + console.log(a[0]); + } + expect_stdout: "PASS" + node_version: ">=6" +} diff --git a/test/reduce.js b/test/reduce.js index d0797f8a..f6b54141 100644 --- a/test/reduce.js +++ b/test/reduce.js @@ -153,6 +153,20 @@ module.exports = function reduce_test(testcase, minify_options, reduce_options) node.left, node.right, ][ permute & 1 ]; + if (expr instanceof U.AST_Destructured) expr = expr.transform(new U.TreeTransformer(function(node, descend) { + if (node instanceof U.AST_DefaultValue) return new U.AST_Assign({ + operator: "=", + left: node.name.transform(this), + right: node.value, + start: {}, + }); + if (node instanceof U.AST_DestructuredKeyVal) return new U.AST_ObjectKeyVal(node); + if (node instanceof U.AST_Destructured) { + node = new (node instanceof U.AST_DestructuredArray ? U.AST_Array : U.AST_Object)(node); + descend(node, this); + } + return node; + })); CHANGED = true; return permute < 2 ? expr : wrap_with_console_log(expr); } diff --git a/test/ufuzz/index.js b/test/ufuzz/index.js index 1d247984..d4c83d88 100644 --- a/test/ufuzz/index.js +++ b/test/ufuzz/index.js @@ -1680,18 +1680,20 @@ function log(options) { } } errorln("//-------------------------------------------------------------"); - var reduce_options = JSON.parse(options); - reduce_options.validate = true; - var reduced = reduce_test(original_code, reduce_options, { - verbose: false, - }).code; - if (reduced) { - errorln(); - errorln("// reduced test case (output will differ)"); - errorln(); - errorln(reduced); - errorln(); - errorln("//-------------------------------------------------------------"); + if (!ok) { + var reduce_options = JSON.parse(options); + reduce_options.validate = true; + var reduced = reduce_test(original_code, reduce_options, { + verbose: false, + }).code; + if (reduced) { + errorln(); + errorln("// reduced test case (output will differ)"); + errorln(); + errorln(reduced); + errorln(); + errorln("//-------------------------------------------------------------"); + } } errorln("minify(options):"); errorln(JSON.stringify(JSON.parse(options), null, 2)); diff --git a/test/ufuzz/job.js b/test/ufuzz/job.js index 52c057e8..5cef23e9 100644 --- a/test/ufuzz/job.js +++ b/test/ufuzz/job.js @@ -70,7 +70,7 @@ function run() { function trap(data) { stderr += data; - if (~stderr.indexOf("\nminify(options):\n")) { + if (~stderr.indexOf("!!!!!! Failed... round ")) { process.exitCode = 1; child.stderr.removeListener("data", trap); } |