suppress false positives in ufuzz (#5473)
This commit is contained in:
@@ -2324,6 +2324,10 @@ function is_error_in(ex) {
|
|||||||
return ex.name == "TypeError" && /'in'/.test(ex.message);
|
return ex.name == "TypeError" && /'in'/.test(ex.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function is_error_tdz(ex) {
|
||||||
|
return ex.name == "ReferenceError";
|
||||||
|
}
|
||||||
|
|
||||||
function is_error_spread(ex) {
|
function is_error_spread(ex) {
|
||||||
return ex.name == "TypeError" && /Found non-callable @@iterator| is not iterable| not a function/.test(ex.message);
|
return ex.name == "TypeError" && /Found non-callable @@iterator| is not iterable| not a function/.test(ex.message);
|
||||||
}
|
}
|
||||||
@@ -2407,6 +2411,8 @@ function patch_try_catch(orig, toplevel) {
|
|||||||
code = new_code;
|
code = new_code;
|
||||||
} else if (is_error_in(result)) {
|
} else if (is_error_in(result)) {
|
||||||
patch(result.ufuzz_catch, result.ufuzz_var + ' = new Error("invalid `in`");');
|
patch(result.ufuzz_catch, result.ufuzz_var + ' = new Error("invalid `in`");');
|
||||||
|
} else if (is_error_tdz(result)) {
|
||||||
|
patch(result.ufuzz_catch, result.ufuzz_var + ' = new Error("TDZ");');
|
||||||
} else if (is_error_spread(result)) {
|
} else if (is_error_spread(result)) {
|
||||||
patch(result.ufuzz_catch, result.ufuzz_var + ' = new Error("spread not iterable");');
|
patch(result.ufuzz_catch, result.ufuzz_var + ' = new Error("spread not iterable");');
|
||||||
} else if (is_error_recursion(result)) {
|
} else if (is_error_recursion(result)) {
|
||||||
@@ -2545,10 +2551,10 @@ for (var round = 1; round <= num_iterations; round++) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!ok && original_erred && uglify_erred && (
|
if (!ok && original_erred && uglify_erred && (
|
||||||
// ignore difference in error message caused by Temporal Dead Zone
|
|
||||||
original_result.name == "ReferenceError" && uglify_result.name == "ReferenceError"
|
|
||||||
// ignore difference in error message caused by `in`
|
// ignore difference in error message caused by `in`
|
||||||
|| is_error_in(original_result) && is_error_in(uglify_result)
|
is_error_in(original_result) && is_error_in(uglify_result)
|
||||||
|
// ignore difference in error message caused by Temporal Dead Zone
|
||||||
|
|| is_error_tdz(original_result) && is_error_tdz(uglify_result)
|
||||||
// ignore difference in error message caused by spread syntax
|
// ignore difference in error message caused by spread syntax
|
||||||
|| is_error_spread(original_result) && is_error_spread(uglify_result)
|
|| is_error_spread(original_result) && is_error_spread(uglify_result)
|
||||||
// ignore difference in error message caused by destructuring assignment
|
// ignore difference in error message caused by destructuring assignment
|
||||||
|
|||||||
Reference in New Issue
Block a user