summaryrefslogtreecommitdiff
path: root/ext/web/13_message_port.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/web/13_message_port.js')
-rw-r--r--ext/web/13_message_port.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/ext/web/13_message_port.js b/ext/web/13_message_port.js
index 83470c895..24982a982 100644
--- a/ext/web/13_message_port.js
+++ b/ext/web/13_message_port.js
@@ -22,6 +22,7 @@ const {
Symbol,
SymbolFor,
SymbolIterator,
+ SafeArrayIterator,
TypeError,
} = primordials;
const {
@@ -40,6 +41,8 @@ import {
import { isDetachedBuffer } from "./06_streams.js";
import { DOMException } from "./01_dom_exception.js";
+let messageEventListenerCount = 0;
+
class MessageChannel {
/** @type {MessagePort} */
#port1;
@@ -222,6 +225,20 @@ class MessagePort extends EventTarget {
}
}
+ removeEventListener(...args) {
+ if (args[0] == "message") {
+ messageEventListenerCount--;
+ }
+ super.removeEventListener(...new SafeArrayIterator(args));
+ }
+
+ addEventListener(...args) {
+ if (args[0] == "message") {
+ messageEventListenerCount++;
+ }
+ super.addEventListener(...new SafeArrayIterator(args));
+ }
+
[SymbolFor("Deno.privateCustomInspect")](inspect, inspectOptions) {
return inspect(
createFilteredInspectProxy({
@@ -406,6 +423,7 @@ function structuredClone(value, options) {
export {
deserializeJsMessageData,
MessageChannel,
+ messageEventListenerCount,
MessagePort,
MessagePortIdSymbol,
MessagePortPrototype,