diff options
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) { |