happy-dom 9.8.3 → 9.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

@@ -1 +1 @@
1
- {"version":3,"file":"EventTarget.d.ts","sourceRoot":"","sources":["../../src/event/EventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAI5D,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,WAAY,YAAW,YAAY;IAChE,SAAgB,UAAU,EAAE;QAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;KAC3D,CAAM;IACP,SAAgB,gBAAgB,EAAE;QACjC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC;KAC9C,CAAM;IAEP;;;;;;;OAOG;IACI,gBAAgB,CACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,qBAAqB,GACvC,IAAI;IAoBP;;;;;OAKG;IACI,mBAAmB,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,GACjD,IAAI;IAkBP;;;;;;;OAOG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IA+F3C;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,GAAG,IAAI;IAI3F;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,GAAG,IAAI;IAI3F;;;;OAIG;IACI,UAAU,IAAI,OAAO,GAAG,IAAI;CAYnC"}
1
+ {"version":3,"file":"EventTarget.d.ts","sourceRoot":"","sources":["../../src/event/EventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAI5D,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,WAAY,YAAW,YAAY;IAChE,SAAgB,UAAU,EAAE;QAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;KAC3D,CAAM;IACP,SAAgB,gBAAgB,EAAE;QACjC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC;KAC9C,CAAM;IAEP;;;;;;;OAOG;IACI,gBAAgB,CACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,qBAAqB,GACvC,IAAI;IAsBP;;;;;OAKG;IACI,mBAAmB,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,GACjD,IAAI;IAkBP;;;;;;;OAOG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAqG3C;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,GAAG,IAAI;IAI3F;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,cAAc,GAAG,IAAI;IAI3F;;;;OAIG;IACI,UAAU,IAAI,OAAO,GAAG,IAAI;CAYnC"}
@@ -24,6 +24,9 @@ class EventTarget {
24
24
  const listenerOptions = typeof options === 'boolean' ? { capture: options } : options || null;
25
25
  this._listeners[type] = this._listeners[type] || [];
26
26
  this._listenerOptions[type] = this._listenerOptions[type] || [];
27
+ if (this._listeners[type].includes(listener)) {
28
+ return;
29
+ }
27
30
  this._listeners[type].push(listener);
28
31
  this._listenerOptions[type].push(listenerOptions);
29
32
  // Tracks the amount of capture event listeners to improve performance when they are not used.
@@ -128,7 +131,13 @@ class EventTarget {
128
131
  }
129
132
  event._isInPassiveEventListener = false;
130
133
  if (options?.once) {
134
+ // At this time, listeners and listenersOptions are cloned arrays. When the original value is deleted,
135
+ // The value corresponding to the cloned array is not deleted. So we need to delete the value in the cloned array.
136
+ listeners.splice(i, 1);
137
+ listenerOptions.splice(i, 1);
131
138
  this.removeEventListener(event.type, listener);
139
+ i--;
140
+ max--;
132
141
  }
133
142
  if (event._immediatePropagationStopped) {
134
143
  return !(event.cancelable && event.defaultPrevented);
@@ -1 +1 @@
1
- {"version":3,"file":"EventTarget.js","sourceRoot":"","sources":["../../src/event/EventTarget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventTarget.js","sourceRoot":"","sources":["../../src/event/EventTarget.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "9.8.3",
3
+ "version": "9.8.4",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -35,7 +35,9 @@ export default abstract class EventTarget implements IEventTarget {
35
35
 
36
36
  this._listeners[type] = this._listeners[type] || [];
37
37
  this._listenerOptions[type] = this._listenerOptions[type] || [];
38
-
38
+ if (this._listeners[type].includes(listener)) {
39
+ return;
40
+ }
39
41
  this._listeners[type].push(listener);
40
42
  this._listenerOptions[type].push(listenerOptions);
41
43
 
@@ -168,7 +170,13 @@ export default abstract class EventTarget implements IEventTarget {
168
170
  event._isInPassiveEventListener = false;
169
171
 
170
172
  if (options?.once) {
173
+ // At this time, listeners and listenersOptions are cloned arrays. When the original value is deleted,
174
+ // The value corresponding to the cloned array is not deleted. So we need to delete the value in the cloned array.
175
+ listeners.splice(i, 1);
176
+ listenerOptions.splice(i, 1);
171
177
  this.removeEventListener(event.type, listener);
178
+ i--;
179
+ max--;
172
180
  }
173
181
 
174
182
  if (event._immediatePropagationStopped) {