aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2020-05-09 22:25:44 +0100
committerGitHub <noreply@github.com>2020-05-10 05:25:44 +0800
commit97728c4f0bb3a9fe3f135371deaa94afaad7921c (patch)
tree5bdf3a861db2696002cc09b4b4cffd14c8515e18 /test
parentf74b7f74019e796c95c228dc6b0348f9db6e709f (diff)
downloadtracifyjs-97728c4f0bb3a9fe3f135371deaa94afaad7921c.tar.gz
tracifyjs-97728c4f0bb3a9fe3f135371deaa94afaad7921c.zip
improve AST validation (#3864)
Diffstat (limited to 'test')
-rw-r--r--test/mozilla-ast.js17
-rw-r--r--test/ufuzz/index.js5
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) {