diff --git a/benchmark.js b/benchmark.js index 86a6c477..ac29d9d8 100644 --- a/benchmark.js +++ b/benchmark.js @@ -877,6 +877,26 @@ } } + /** + * Trigger error for deferred benchmark. + * + * @memberOf Benchmark.Deferred + * @param {Error} [err] + */ + function reject(err) { + // make sure error not a void like value + var error = err || new Error(err); + error.originError = err; + + var deferred = this, + clone = deferred.benchmark; + + var event = Event('error'); + clone.error = error; + clone.message = error && error.message; + clone.emit(event); + } + /*------------------------------------------------------------------------*/ /** @@ -2809,7 +2829,8 @@ }); Object.assign(Deferred.prototype, { - 'resolve': resolve + 'resolve': resolve, + 'reject': reject }); /*------------------------------------------------------------------------*/ diff --git a/types/index.d.ts b/types/index.d.ts index 5816218d..e9dd2dcd 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -130,6 +130,7 @@ declare namespace Benchmark { timeStamp: number; resolve(): void; + reject(err: Error): void; } export interface Target {