happy-dom 14.11.2 → 14.11.3

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.

@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // We need to set this as a global constant, so that using fake timers in Jest and Vitest won't override this on the global object.
4
4
  const TIMER = {
5
- setImmediate: globalThis.setImmediate.bind(globalThis),
6
- clearImmediate: globalThis.clearImmediate.bind(globalThis),
7
- clearTimeout: globalThis.clearTimeout.bind(globalThis)
5
+ setTimeout: globalThis.setTimeout.bind(globalThis),
6
+ clearTimeout: globalThis.clearTimeout.bind(globalThis),
7
+ clearImmediate: globalThis.clearImmediate.bind(globalThis)
8
8
  };
9
9
  /**
10
10
  * Handles async tasks.
@@ -107,10 +107,12 @@ class AsyncTaskManager {
107
107
  delete this.runningTasks[taskID];
108
108
  this.runningTaskCount--;
109
109
  if (this.waitUntilCompleteTimer) {
110
- TIMER.clearImmediate(this.waitUntilCompleteTimer);
110
+ TIMER.clearTimeout(this.waitUntilCompleteTimer);
111
111
  }
112
112
  if (!this.runningTaskCount && !this.runningTimers.length && !this.runningImmediates.length) {
113
- this.waitUntilCompleteTimer = TIMER.setImmediate(() => {
113
+ // In some cases, microtasks are used by transformed code and waitUntilComplete() is then resolved too early.
114
+ // To cater for this we use setTimeout() which has the lowest priority and will be executed last.
115
+ this.waitUntilCompleteTimer = TIMER.setTimeout(() => {
114
116
  this.waitUntilCompleteTimer = null;
115
117
  if (!this.runningTaskCount &&
116
118
  !this.runningTimers.length &&
@@ -162,7 +164,7 @@ class AsyncTaskManager {
162
164
  this.runningImmediates = [];
163
165
  this.runningTimers = [];
164
166
  if (this.waitUntilCompleteTimer) {
165
- TIMER.clearImmediate(this.waitUntilCompleteTimer);
167
+ TIMER.clearTimeout(this.waitUntilCompleteTimer);
166
168
  this.waitUntilCompleteTimer = null;
167
169
  }
168
170
  for (const immediate of runningImmediates) {
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncTaskManager.cjs","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsyncTaskManager.cjs","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncTaskManager.d.ts","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":";AAOA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAmE;IACvF,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,0BAA0B,CAAyB;IAE3D;;;;OAIG;IACI,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzC;;OAEG;IACI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAIhD;;;;OAIG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAU9C;;;;OAIG;IACI,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI;IAI1D;;;;OAIG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI;IAUxD;;;;;OAKG;IACI,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM;IAOnD;;;;OAIG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAsBpC;;;;OAIG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CA6ChB"}
1
+ {"version":3,"file":"AsyncTaskManager.d.ts","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":";AAOA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAmE;IACvF,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,0BAA0B,CAAyB;IAE3D;;;;OAIG;IACI,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzC;;OAEG;IACI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAIhD;;;;OAIG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAU9C;;;;OAIG;IACI,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI;IAI1D;;;;OAIG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI;IAUxD;;;;;OAKG;IACI,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM;IAOnD;;;;OAIG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAwBpC;;;;OAIG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CA6ChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncTaskManager.d.ts","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":";AAOA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAmE;IACvF,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,0BAA0B,CAAyB;IAE3D;;;;OAIG;IACI,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzC;;OAEG;IACI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAIhD;;;;OAIG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAU9C;;;;OAIG;IACI,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI;IAI1D;;;;OAIG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI;IAUxD;;;;;OAKG;IACI,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM;IAOnD;;;;OAIG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAsBpC;;;;OAIG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CA6ChB"}
1
+ {"version":3,"file":"AsyncTaskManager.d.ts","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":";AAOA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAmE;IACvF,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,0BAA0B,CAAyB;IAE3D;;;;OAIG;IACI,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzC;;OAEG;IACI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAIhD;;;;OAIG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAU9C;;;;OAIG;IACI,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI;IAI1D;;;;OAIG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI;IAUxD;;;;;OAKG;IACI,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM;IAOnD;;;;OAIG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAwBpC;;;;OAIG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CA6ChB"}
@@ -1,8 +1,8 @@
1
1
  // We need to set this as a global constant, so that using fake timers in Jest and Vitest won't override this on the global object.
2
2
  const TIMER = {
3
- setImmediate: globalThis.setImmediate.bind(globalThis),
4
- clearImmediate: globalThis.clearImmediate.bind(globalThis),
5
- clearTimeout: globalThis.clearTimeout.bind(globalThis)
3
+ setTimeout: globalThis.setTimeout.bind(globalThis),
4
+ clearTimeout: globalThis.clearTimeout.bind(globalThis),
5
+ clearImmediate: globalThis.clearImmediate.bind(globalThis)
6
6
  };
7
7
  /**
8
8
  * Handles async tasks.
@@ -105,10 +105,12 @@ class AsyncTaskManager {
105
105
  delete this.runningTasks[taskID];
106
106
  this.runningTaskCount--;
107
107
  if (this.waitUntilCompleteTimer) {
108
- TIMER.clearImmediate(this.waitUntilCompleteTimer);
108
+ TIMER.clearTimeout(this.waitUntilCompleteTimer);
109
109
  }
110
110
  if (!this.runningTaskCount && !this.runningTimers.length && !this.runningImmediates.length) {
111
- this.waitUntilCompleteTimer = TIMER.setImmediate(() => {
111
+ // In some cases, microtasks are used by transformed code and waitUntilComplete() is then resolved too early.
112
+ // To cater for this we use setTimeout() which has the lowest priority and will be executed last.
113
+ this.waitUntilCompleteTimer = TIMER.setTimeout(() => {
112
114
  this.waitUntilCompleteTimer = null;
113
115
  if (!this.runningTaskCount &&
114
116
  !this.runningTimers.length &&
@@ -160,7 +162,7 @@ class AsyncTaskManager {
160
162
  this.runningImmediates = [];
161
163
  this.runningTimers = [];
162
164
  if (this.waitUntilCompleteTimer) {
163
- TIMER.clearImmediate(this.waitUntilCompleteTimer);
165
+ TIMER.clearTimeout(this.waitUntilCompleteTimer);
164
166
  this.waitUntilCompleteTimer = null;
165
167
  }
166
168
  for (const immediate of runningImmediates) {
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncTaskManager.js","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsyncTaskManager.js","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "14.11.2",
3
+ "version": "14.11.3",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -1,8 +1,8 @@
1
1
  // We need to set this as a global constant, so that using fake timers in Jest and Vitest won't override this on the global object.
2
2
  const TIMER = {
3
- setImmediate: globalThis.setImmediate.bind(globalThis),
4
- clearImmediate: globalThis.clearImmediate.bind(globalThis),
5
- clearTimeout: globalThis.clearTimeout.bind(globalThis)
3
+ setTimeout: globalThis.setTimeout.bind(globalThis),
4
+ clearTimeout: globalThis.clearTimeout.bind(globalThis),
5
+ clearImmediate: globalThis.clearImmediate.bind(globalThis)
6
6
  };
7
7
 
8
8
  /**
@@ -114,10 +114,12 @@ export default class AsyncTaskManager {
114
114
  delete this.runningTasks[taskID];
115
115
  this.runningTaskCount--;
116
116
  if (this.waitUntilCompleteTimer) {
117
- TIMER.clearImmediate(this.waitUntilCompleteTimer);
117
+ TIMER.clearTimeout(this.waitUntilCompleteTimer);
118
118
  }
119
119
  if (!this.runningTaskCount && !this.runningTimers.length && !this.runningImmediates.length) {
120
- this.waitUntilCompleteTimer = TIMER.setImmediate(() => {
120
+ // In some cases, microtasks are used by transformed code and waitUntilComplete() is then resolved too early.
121
+ // To cater for this we use setTimeout() which has the lowest priority and will be executed last.
122
+ this.waitUntilCompleteTimer = TIMER.setTimeout(() => {
121
123
  this.waitUntilCompleteTimer = null;
122
124
  if (
123
125
  !this.runningTaskCount &&
@@ -177,7 +179,7 @@ export default class AsyncTaskManager {
177
179
  this.runningTimers = [];
178
180
 
179
181
  if (this.waitUntilCompleteTimer) {
180
- TIMER.clearImmediate(this.waitUntilCompleteTimer);
182
+ TIMER.clearTimeout(this.waitUntilCompleteTimer);
181
183
  this.waitUntilCompleteTimer = null;
182
184
  }
183
185