events: use property, primordials

PR-URL: https://github.com/nodejs/node/pull/33775
Fixes: https://github.com/nodejs/node/issues/33773
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Zeyu Yang <himself65@outlook.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Benjamin Gruenbaum authored and James M Snell committed 2020-06-18 15:12:23 -07:00
1 parent d7d79f2163
commit ea866dc81b
1 file changed
+14 -4
+14 -4
View File
@@ -8,6 +8,7 @@ const {
Set,
Symbol,
NumberIsNaN,
SymbolToStringTag,
} = primordials;
const {
@@ -67,7 +68,6 @@ class Event {
// isTrusted is special (LegacyUnforgeable)
Object.defineProperty(this, 'isTrusted', {
get() { return false; },
set(ignoredValue) { return false; },
enumerable: true,
configurable: false
});
@@ -132,10 +132,15 @@ class Event {
stopPropagation() {
this.#propagationStopped = true;
}
get [Symbol.toStringTag]() { return 'Event'; }
}
Object.defineProperty(Event.prototype, SymbolToStringTag, {
writable: false,
enumerable: false,
configurable: true,
value: 'Event',
});
// The listeners for an EventTarget are maintained as a linked list.
// Unfortunately, the way EventTarget is defined, listeners are accounted
// using the tuple [handler,capture], and even if we don't actually make
@@ -305,7 +310,6 @@ class EventTarget {
return `${name} ${inspect({}, opts)}`;
}
get [Symbol.toStringTag]() { return 'EventTarget'; }
}
Object.defineProperties(EventTarget.prototype, {
@@ -313,6 +317,12 @@ Object.defineProperties(EventTarget.prototype, {
removeEventListener: { enumerable: true },
dispatchEvent: { enumerable: true }
});
Object.defineProperty(EventTarget.prototype, SymbolToStringTag, {
writable: false,
enumerable: false,
configurable: true,
value: 'EventTarget',
});
class NodeEventTarget extends EventTarget {
static defaultMaxListeners = 10;