assert: add compatibility for older Node.js versions
This makes sure the `AssertionError` still accepts the `stackStartFunction` option as alternative to the `stackStartFn`. PR-URL: https://github.com/nodejs/node/pull/27672 Fixes: https://github.com/nodejs/node/issues/27671 Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com> Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
This commit is contained in:
parent
a9f518c901
commit
e632b1b7ee
@ -298,7 +298,9 @@ class AssertionError extends Error {
|
|||||||
const {
|
const {
|
||||||
message,
|
message,
|
||||||
operator,
|
operator,
|
||||||
stackStartFn
|
stackStartFn,
|
||||||
|
// Compatibility with older versions.
|
||||||
|
stackStartFunction
|
||||||
} = options;
|
} = options;
|
||||||
let {
|
let {
|
||||||
actual,
|
actual,
|
||||||
@ -418,7 +420,7 @@ class AssertionError extends Error {
|
|||||||
this.expected = expected;
|
this.expected = expected;
|
||||||
this.operator = operator;
|
this.operator = operator;
|
||||||
// eslint-disable-next-line no-restricted-syntax
|
// eslint-disable-next-line no-restricted-syntax
|
||||||
Error.captureStackTrace(this, stackStartFn);
|
Error.captureStackTrace(this, stackStartFn || stackStartFunction);
|
||||||
// Create error message including the error code in the name.
|
// Create error message including the error code in the name.
|
||||||
this.stack;
|
this.stack;
|
||||||
// Reset the name.
|
// Reset the name.
|
||||||
|
@ -1203,3 +1203,21 @@ assert.throws(
|
|||||||
() => a.deepStrictEqual(),
|
() => a.deepStrictEqual(),
|
||||||
{ code: 'ERR_MISSING_ARGS' }
|
{ code: 'ERR_MISSING_ARGS' }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Verify that `stackStartFunction` works as alternative to `stackStartFn`.
|
||||||
|
{
|
||||||
|
(function hidden() {
|
||||||
|
const err = new assert.AssertionError({
|
||||||
|
actual: 'foo',
|
||||||
|
operator: 'strictEqual',
|
||||||
|
stackStartFunction: hidden
|
||||||
|
});
|
||||||
|
const err2 = new assert.AssertionError({
|
||||||
|
actual: 'foo',
|
||||||
|
operator: 'strictEqual',
|
||||||
|
stackStartFn: hidden
|
||||||
|
});
|
||||||
|
assert(!err.stack.includes('hidden'));
|
||||||
|
assert(!err2.stack.includes('hidden'));
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user