lib: set abort-controller toStringTag

PR-URL: https://github.com/nodejs/node/pull/36115
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Benjamin Gruenbaum 2020-11-14 13:46:29 +02:00 committed by Node.js GitHub Bot
parent 2097ffd7cb
commit d7bfa58942
3 changed files with 24 additions and 1 deletions

View File

@ -7,7 +7,9 @@ const {
ObjectAssign,
ObjectDefineProperties,
ObjectSetPrototypeOf,
ObjectDefineProperty,
Symbol,
SymbolToStringTag,
TypeError,
} = primordials;
@ -55,6 +57,13 @@ ObjectDefineProperties(AbortSignal.prototype, {
aborted: { enumerable: true }
});
ObjectDefineProperty(AbortSignal.prototype, SymbolToStringTag, {
writable: false,
enumerable: false,
configurable: true,
value: 'AbortSignal',
});
defineEventHandler(AbortSignal.prototype, 'abort');
function createAbortSignal() {
@ -98,6 +107,13 @@ ObjectDefineProperties(AbortController.prototype, {
abort: { enumerable: true }
});
ObjectDefineProperty(AbortController.prototype, SymbolToStringTag, {
writable: false,
enumerable: false,
configurable: true,
value: 'AbortController',
});
module.exports = {
AbortController,
AbortSignal,

View File

@ -60,3 +60,10 @@ const { ok, strictEqual, throws } = require('assert');
/^TypeError: Illegal constructor$/
);
}
{
// Symbol.toStringTag
const toString = (o) => Object.prototype.toString.call(o);
const ac = new AbortController();
strictEqual(toString(ac), '[object AbortController]');
strictEqual(toString(ac.signal), '[object AbortSignal]');
}

View File

@ -21,7 +21,7 @@ common.expectWarning({
'Use events.setMaxListeners() to increase ' +
'limit'],
['Possible EventTarget memory leak detected. 3 foo listeners added to ' +
'[AbortSignal [EventTarget]]. ' +
'[AbortSignal]. ' +
'Use events.setMaxListeners() to increase ' +
'limit'],
],