diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2020-05-09 22:25:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-10 05:25:44 +0800 |
commit | 97728c4f0bb3a9fe3f135371deaa94afaad7921c (patch) | |
tree | 5bdf3a861db2696002cc09b4b4cffd14c8515e18 /test | |
parent | f74b7f74019e796c95c228dc6b0348f9db6e709f (diff) | |
download | tracifyjs-97728c4f0bb3a9fe3f135371deaa94afaad7921c.tar.gz tracifyjs-97728c4f0bb3a9fe3f135371deaa94afaad7921c.zip |
improve AST validation (#3864)
Diffstat (limited to 'test')
-rw-r--r-- | test/mozilla-ast.js | 17 | ||||
-rw-r--r-- | test/ufuzz/index.js | 5 |
2 files changed, 16 insertions, 6 deletions
diff --git a/test/mozilla-ast.js b/test/mozilla-ast.js index c94ae438..5f5ad541 100644 --- a/test/mozilla-ast.js +++ b/test/mozilla-ast.js @@ -24,11 +24,22 @@ function try_beautify(code) { } } -function test(original, estree, description) { - var transformed = UglifyJS.minify(UglifyJS.AST_Node.from_mozilla_ast(estree), { +function validate(ast) { + try { + ast.walk(new UglifyJS.TreeWalker(function(node) { + node.validate(); + })); + } catch (e) { + return { error: e }; + } + return UglifyJS.minify(ast, { compress: false, - mangle: false + mangle: false, }); +} + +function test(original, estree, description) { + var transformed = validate(UglifyJS.AST_Node.from_mozilla_ast(estree)); if (transformed.error || original !== transformed.code) { console.log("//============================================================="); console.log("// !!!!!! Failed... round", round); diff --git a/test/ufuzz/index.js b/test/ufuzz/index.js index 6e02d83c..1a2163ed 100644 --- a/test/ufuzz/index.js +++ b/test/ufuzz/index.js @@ -1161,6 +1161,7 @@ for (var round = 1; round <= num_iterations; round++) { (errored ? fallback_options : minify_options).forEach(function(options) { var o = JSON.parse(options); var toplevel = sandbox.has_toplevel(o); + o.validate = true; uglify_code = UglifyJS.minify(original_code, o); original_result = orig_result[toplevel ? 1 : 0]; if (!uglify_code.error) { @@ -1181,9 +1182,7 @@ for (var round = 1; round <= num_iterations; round++) { } } else { uglify_code = uglify_code.error; - if (errored) { - ok = uglify_code.name == original_result.name; - } + ok = sandbox.same_stdout(original_result, uglify_result); } if (verbose || (verbose_interval && !(round % INTERVAL_COUNT)) || !ok) log(options); else if (errored) { |