improve resilience against spurious time-outs (#4252)

This commit is contained in:
Alex Lam S.L
2020-10-30 03:06:48 +00:00
committed by GitHub
parent 2e0ad40fe6
commit d8563caba7
2 changed files with 7 additions and 2 deletions

View File

@@ -593,7 +593,7 @@ function is_error(result) {
}
function is_timed_out(result) {
return is_error(result) && /timed out/.test(result);
return is_error(result) && /timed out/.test(result.message);
}
function is_statement(node) {

View File

@@ -1369,7 +1369,12 @@ for (var round = 1; round <= num_iterations; round++) {
}
}
// ignore difference in error message caused by Temporal Dead Zone
if (!ok && errored) ok = uglify_result.name == "ReferenceError" && original_result.name == "ReferenceError";
if (!ok && errored && uglify_result.name == "ReferenceError" && original_result.name == "ReferenceError") ok = true;
// ignore spurious time-outs
if (!ok && errored && /timed out/.test(original_result.message) && !/timed out/.test(uglify_result.message)) {
if (!orig_result[toplevel ? 3 : 2]) orig_result[toplevel ? 3 : 2] = sandbox.run_code(original_code, toplevel, 10000);
ok = sandbox.same_stdout(orig_result[toplevel ? 3 : 2], uglify_result);
}
// ignore difference in error message caused by `in`
// ignore difference in depth of termination caused by infinite recursion
if (!ok) {