From d810c684ae22c89b5fa7556462fe98b5a3dd32b6 Mon Sep 17 00:00:00 2001 From: Cam Tenny Date: Mon, 5 Dec 2022 15:21:05 -0800 Subject: [PATCH] harness/asyncHelpers.js: Refactor assert.throwsAsync to only accept a callable --- harness/asyncHelpers.js | 22 +++++-------------- .../asyncHelpers-throwsAsync-custom.js | 4 +++- ...asyncHelpers-throwsAsync-incorrect-ctor.js | 4 +++- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/harness/asyncHelpers.js b/harness/asyncHelpers.js index ebc9f09ca7..5bde3d2c2c 100644 --- a/harness/asyncHelpers.js +++ b/harness/asyncHelpers.js @@ -34,20 +34,16 @@ function asyncTest(testFunc) { } } -assert.throwsAsync = async function ( - expectedErrorConstructor, - funcOrThenable, - message -) { +assert.throwsAsync = async function (expectedErrorConstructor, func, message) { var innerThenable; if (message === undefined) { message = ""; } else { message += " "; } - if (typeof funcOrThenable === "function") { + if (typeof func === "function") { try { - innerThenable = funcOrThenable(); + innerThenable = func(); if ( innerThenable === null || typeof innerThenable !== "object" || @@ -66,16 +62,10 @@ assert.throwsAsync = async function ( " to be thrown asynchronously but an exception was thrown synchronously while obtaining the inner promise"; throw new Test262Error(message); } - } else if ( - funcOrThenable === null || - typeof funcOrThenable !== "object" || - typeof funcOrThenable.then !== "function" - ) { - message += - "assert.throwsAsync called with an argument that is neither a function nor a thenable"; - throw new Test262Error(message); } else { - innerThenable = funcOrThenable; + message += + "assert.throwsAsync called with an argument that is not a function"; + throw new Test262Error(message); } try { diff --git a/test/harness/asyncHelpers-throwsAsync-custom.js b/test/harness/asyncHelpers-throwsAsync-custom.js index db009d07a1..70a3f74a38 100644 --- a/test/harness/asyncHelpers-throwsAsync-custom.js +++ b/test/harness/asyncHelpers-throwsAsync-custom.js @@ -11,7 +11,9 @@ includes: [asyncHelpers.js] function MyError() {} (async function () { - const p = assert.throwsAsync(MyError, Promise.reject(new MyError())); + const p = assert.throwsAsync(MyError, function () { + return Promise.reject(new MyError()); + }); assert(p instanceof Promise); await p; })().then($DONE, $DONE); diff --git a/test/harness/asyncHelpers-throwsAsync-incorrect-ctor.js b/test/harness/asyncHelpers-throwsAsync-incorrect-ctor.js index 7ed83e3da6..62b30b138d 100644 --- a/test/harness/asyncHelpers-throwsAsync-incorrect-ctor.js +++ b/test/harness/asyncHelpers-throwsAsync-incorrect-ctor.js @@ -11,7 +11,9 @@ includes: [asyncHelpers.js] (async function () { var caught = false; - const p = assert.throwsAsync(Error, Promise.reject(new TypeError())); + const p = assert.throwsAsync(Error, function () { + return Promise.reject(new TypeError()); + }); assert(p instanceof Promise); try { await p;