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 {
|
||||
message,
|
||||
operator,
|
||||
stackStartFn
|
||||
stackStartFn,
|
||||
// Compatibility with older versions.
|
||||
stackStartFunction
|
||||
} = options;
|
||||
let {
|
||||
actual,
|
||||
@ -418,7 +420,7 @@ class AssertionError extends Error {
|
||||
this.expected = expected;
|
||||
this.operator = operator;
|
||||
// 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.
|
||||
this.stack;
|
||||
// Reset the name.
|
||||
|
@ -1203,3 +1203,21 @@ assert.throws(
|
||||
() => a.deepStrictEqual(),
|
||||
{ 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