test262/harness/doneprintHandle.js
Philip Chimento 1bb7ecee5b Harness: Account for Symbols being thrown in async tests
It's possible for an async test to throw a Symbol (harness/async-gc.js
does this.) The Symbol ends up getting passed to $DONE in a
.then($DONE, $DONE) call. Previously, $DONE would then throw an exception
due to not being able to convert the Symbol to a string.
2022-10-12 09:58:45 +02:00

23 lines
625 B
JavaScript

// Copyright (C) 2017 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: |
defines: [$DONE]
---*/
function __consolePrintHandle__(msg) {
print(msg);
}
function $DONE(error) {
if (error) {
if(typeof error === 'object' && error !== null && 'name' in error) {
__consolePrintHandle__('Test262:AsyncTestFailure:' + error.name + ': ' + error.message);
} else {
__consolePrintHandle__('Test262:AsyncTestFailure:Test262Error: ' + String(error));
}
} else {
__consolePrintHandle__('Test262:AsyncTestComplete');
}
}