happy-dom 9.8.2 → 9.8.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.

Files changed (31) hide show
  1. package/lib/nodes/document/Document.d.ts +1 -1
  2. package/lib/nodes/document/Document.d.ts.map +1 -1
  3. package/lib/nodes/document/Document.js +6 -6
  4. package/lib/nodes/document/Document.js.map +1 -1
  5. package/lib/nodes/document-fragment/DocumentFragment.d.ts +1 -1
  6. package/lib/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
  7. package/lib/nodes/document-fragment/DocumentFragment.js +6 -6
  8. package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
  9. package/lib/nodes/element/Element.js +6 -6
  10. package/lib/nodes/element/Element.js.map +1 -1
  11. package/lib/nodes/element/ElementUtility.d.ts +20 -9
  12. package/lib/nodes/element/ElementUtility.d.ts.map +1 -1
  13. package/lib/nodes/element/ElementUtility.js +54 -22
  14. package/lib/nodes/element/ElementUtility.js.map +1 -1
  15. package/lib/nodes/html-select-element/HTMLOptionsCollection.js.map +1 -1
  16. package/lib/nodes/node/Node.d.ts +1 -1
  17. package/lib/nodes/node/Node.d.ts.map +1 -1
  18. package/lib/nodes/node/Node.js +4 -111
  19. package/lib/nodes/node/Node.js.map +1 -1
  20. package/lib/nodes/node/NodeUtility.d.ts +37 -12
  21. package/lib/nodes/node/NodeUtility.d.ts.map +1 -1
  22. package/lib/nodes/node/NodeUtility.js +174 -30
  23. package/lib/nodes/node/NodeUtility.js.map +1 -1
  24. package/package.json +1 -1
  25. package/src/nodes/document/Document.ts +9 -9
  26. package/src/nodes/document-fragment/DocumentFragment.ts +9 -9
  27. package/src/nodes/element/Element.ts +6 -6
  28. package/src/nodes/element/ElementUtility.ts +77 -27
  29. package/src/nodes/html-select-element/HTMLOptionsCollection.ts +1 -1
  30. package/src/nodes/node/Node.ts +5 -142
  31. package/src/nodes/node/NodeUtility.ts +239 -37
@@ -1 +1 @@
1
- {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/nodes/node/Node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/nodes/node/Node.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const EventTarget_1 = __importDefault(require("../../event/EventTarget"));
7
- const MutationRecord_1 = __importDefault(require("../../mutation-observer/MutationRecord"));
8
- const MutationTypeEnum_1 = __importDefault(require("../../mutation-observer/MutationTypeEnum"));
9
- const DOMException_1 = __importDefault(require("../../exception/DOMException"));
10
7
  const NodeTypeEnum_1 = __importDefault(require("./NodeTypeEnum"));
11
8
  const NodeDocumentPositionEnum_1 = __importDefault(require("./NodeDocumentPositionEnum"));
12
9
  const NodeUtility_1 = __importDefault(require("./NodeUtility"));
@@ -194,7 +191,7 @@ class Node extends EventTarget_1.default {
194
191
  * @returns "true" if this node contains the other node.
195
192
  */
196
193
  contains(otherNode) {
197
- return NodeUtility_1.default.contains(this, otherNode);
194
+ return NodeUtility_1.default.isInclusiveAncestor(this, otherNode);
198
195
  }
199
196
  /**
200
197
  * Returns closest root node (Document or ShadowRoot).
@@ -243,45 +240,7 @@ class Node extends EventTarget_1.default {
243
240
  * @returns Appended node.
244
241
  */
245
242
  appendChild(node) {
246
- if (node === this) {
247
- throw new DOMException_1.default('Not possible to append a node as a child of itself.');
248
- }
249
- // If the type is DocumentFragment, then the child nodes of if it should be moved instead of the actual node.
250
- // See: https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
251
- if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
252
- for (const child of node.childNodes.slice()) {
253
- this.appendChild(child);
254
- }
255
- return node;
256
- }
257
- // Remove the node from its previous parent if it has any.
258
- if (node.parentNode) {
259
- const index = node.parentNode.childNodes.indexOf(node);
260
- if (index !== -1) {
261
- node.parentNode.childNodes.splice(index, 1);
262
- }
263
- }
264
- if (this.isConnected) {
265
- (this.ownerDocument || this)['_cacheID']++;
266
- }
267
- this.childNodes.push(node);
268
- node._connectToNode(this);
269
- // MutationObserver
270
- if (this._observers.length > 0) {
271
- const record = new MutationRecord_1.default();
272
- record.target = this;
273
- record.type = MutationTypeEnum_1.default.childList;
274
- record.addedNodes = [node];
275
- for (const observer of this._observers) {
276
- if (observer.options.subtree) {
277
- node._observe(observer);
278
- }
279
- if (observer.options.childList) {
280
- observer.callback([record]);
281
- }
282
- }
283
- }
284
- return node;
243
+ return NodeUtility_1.default.appendChild(this, node);
285
244
  }
286
245
  /**
287
246
  * Remove Child element from childNodes array.
@@ -290,29 +249,7 @@ class Node extends EventTarget_1.default {
290
249
  * @returns Removed node.
291
250
  */
292
251
  removeChild(node) {
293
- const index = this.childNodes.indexOf(node);
294
- if (index === -1) {
295
- throw new DOMException_1.default('Failed to remove node. Node is not child of parent.');
296
- }
297
- if (this.isConnected) {
298
- (this.ownerDocument || this)['_cacheID']++;
299
- }
300
- this.childNodes.splice(index, 1);
301
- node._connectToNode(null);
302
- // MutationObserver
303
- if (this._observers.length > 0) {
304
- const record = new MutationRecord_1.default();
305
- record.target = this;
306
- record.type = MutationTypeEnum_1.default.childList;
307
- record.removedNodes = [node];
308
- for (const observer of this._observers) {
309
- node._unobserve(observer);
310
- if (observer.options.childList) {
311
- observer.callback([record]);
312
- }
313
- }
314
- }
315
- return node;
252
+ return NodeUtility_1.default.removeChild(this, node);
316
253
  }
317
254
  /**
318
255
  * Inserts a node before another.
@@ -322,51 +259,7 @@ class Node extends EventTarget_1.default {
322
259
  * @returns Inserted node.
323
260
  */
324
261
  insertBefore(newNode, referenceNode) {
325
- // If the type is DocumentFragment, then the child nodes of if it should be moved instead of the actual node.
326
- // See: https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
327
- if (newNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
328
- for (const child of newNode.childNodes.slice()) {
329
- this.insertBefore(child, referenceNode);
330
- }
331
- return newNode;
332
- }
333
- if (referenceNode === null) {
334
- this.appendChild(newNode);
335
- return newNode;
336
- }
337
- if (!referenceNode) {
338
- throw new DOMException_1.default("Failed to execute 'insertBefore' on 'Node': 2 arguments required, but only 1 present.", 'TypeError');
339
- }
340
- if (this.childNodes.indexOf(referenceNode) === -1) {
341
- throw new DOMException_1.default("Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.");
342
- }
343
- if (this.isConnected) {
344
- (this.ownerDocument || this)['_cacheID']++;
345
- }
346
- if (newNode.parentNode) {
347
- const index = newNode.parentNode.childNodes.indexOf(newNode);
348
- if (index !== -1) {
349
- newNode.parentNode.childNodes.splice(index, 1);
350
- }
351
- }
352
- this.childNodes.splice(this.childNodes.indexOf(referenceNode), 0, newNode);
353
- newNode._connectToNode(this);
354
- // MutationObserver
355
- if (this._observers.length > 0) {
356
- const record = new MutationRecord_1.default();
357
- record.target = this;
358
- record.type = MutationTypeEnum_1.default.childList;
359
- record.addedNodes = [newNode];
360
- for (const observer of this._observers) {
361
- if (observer.options.subtree) {
362
- newNode._observe(observer);
363
- }
364
- if (observer.options.childList) {
365
- observer.callback([record]);
366
- }
367
- }
368
- }
369
- return newNode;
262
+ return NodeUtility_1.default.insertBefore(this, newNode, referenceNode);
370
263
  }
371
264
  /**
372
265
  * Replaces a node with another.
@@ -1 +1 @@
1
- {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/nodes/node/Node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/nodes/node/Node.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,39 @@ import IElement from '../element/IElement';
5
5
  * Node utility.
6
6
  */
7
7
  export default class NodeUtility {
8
+ /**
9
+ * Append a child node to childNodes.
10
+ *
11
+ * @param ancestorNode Ancestor node.
12
+ * @param node Node to append.
13
+ * @param [options] Options.
14
+ * @param [options.disableAncestorValidation] Disables validation for checking if the node is an ancestor of the ancestorNode.
15
+ * @returns Appended node.
16
+ */
17
+ static appendChild(ancestorNode: INode, node: INode, options?: {
18
+ disableAncestorValidation?: boolean;
19
+ }): INode;
20
+ /**
21
+ * Remove Child element from childNodes array.
22
+ *
23
+ * @param ancestorNode Ancestor node.
24
+ * @param node Node to remove.
25
+ * @returns Removed node.
26
+ */
27
+ static removeChild(ancestorNode: INode, node: INode): INode;
28
+ /**
29
+ * Inserts a node before another.
30
+ *
31
+ * @param ancestorNode Ancestor node.
32
+ * @param newNode Node to insert.
33
+ * @param referenceNode Node to insert before.
34
+ * @param [options] Options.
35
+ * @param [options.disableAncestorValidation] Disables validation for checking if the node is an ancestor of the ancestorNode.
36
+ * @returns Inserted node.
37
+ */
38
+ static insertBefore(ancestorNode: INode, newNode: INode, referenceNode: INode | null, options?: {
39
+ disableAncestorValidation?: boolean;
40
+ }): INode;
8
41
  /**
9
42
  * Returns whether the passed node is a text node, and narrows its type.
10
43
  *
@@ -13,16 +46,7 @@ export default class NodeUtility {
13
46
  */
14
47
  static isTextNode(node: INode | null): node is IText;
15
48
  /**
16
- * Returns "true" if this node contains the other node.
17
- *
18
- * @param rootNode Root node.
19
- * @param otherNode Node to test with.
20
- * @param [includeShadowRoots = false] Include shadow roots.
21
- * @returns "true" if this node contains the other node.
22
- */
23
- static contains(rootNode: INode, otherNode: INode | null, includeShadowRoots?: boolean): boolean;
24
- /**
25
- * Returns boolean indicating if nodeB is an inclusive ancestor of nodeA.
49
+ * Returns boolean indicating if "ancestorNode" is an inclusive ancestor of "referenceNode".
26
50
  *
27
51
  * Based on:
28
52
  * https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/helpers/node.js
@@ -30,9 +54,10 @@ export default class NodeUtility {
30
54
  * @see https://dom.spec.whatwg.org/#concept-tree-inclusive-ancestor
31
55
  * @param ancestorNode Ancestor node.
32
56
  * @param referenceNode Reference node.
33
- * @returns "true" if following.
57
+ * @param [includeShadowRoots = false] Include shadow roots.
58
+ * @returns "true" if inclusive ancestor.
34
59
  */
35
- static isInclusiveAncestor(ancestorNode: INode, referenceNode: INode): boolean;
60
+ static isInclusiveAncestor(ancestorNode: INode, referenceNode: INode, includeShadowRoots?: boolean): boolean;
36
61
  /**
37
62
  * Returns boolean indicating if nodeB is following nodeA in the document tree.
38
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"NodeUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/node/NodeUtility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,eAAe,CAAC;AAElC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAM3C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B;;;;;OAKG;WACW,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK;IAI3D;;;;;;;OAOG;WACW,QAAQ,CACrB,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,KAAK,GAAG,IAAI,EACvB,kBAAkB,UAAQ,GACxB,OAAO;IA2BV;;;;;;;;;;OAUG;WACW,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,GAAG,OAAO;IAWrF;;;;;;;;;;OAUG;WACW,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;IAkB9D;;;;;;;;;OASG;WACW,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM;IAehD;;;;;;;;;OASG;WACW,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK;IA0BzD;;;;;OAKG;WACW,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK;IAYpD;;;;;OAKG;WACW,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO;IA+BlF;;;;;;OAMG;WACW,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAwF9D"}
1
+ {"version":3,"file":"NodeUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/node/NodeUtility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,eAAe,CAAC;AAElC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAW3C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B;;;;;;;;OAQG;WACW,WAAW,CACxB,YAAY,EAAE,KAAK,EACnB,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,KAAK;IA2DR;;;;;;OAMG;WACW,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK;IAiClE;;;;;;;;;OASG;WACW,YAAY,CACzB,YAAY,EAAE,KAAK,EACnB,OAAO,EAAE,KAAK,EACd,aAAa,EAAE,KAAK,GAAG,IAAI,EAC3B,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,KAAK;IAyER;;;;;OAKG;WACW,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK;IAI3D;;;;;;;;;;;OAWG;WACW,mBAAmB,CAChC,YAAY,EAAE,KAAK,EACnB,aAAa,EAAE,KAAK,EACpB,kBAAkB,UAAQ,GACxB,OAAO;IA0CV;;;;;;;;;;OAUG;WACW,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;IAkB9D;;;;;;;;;OASG;WACW,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM;IAehD;;;;;;;;;OASG;WACW,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK;IA0BzD;;;;;OAKG;WACW,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK;IAYpD;;;;;OAKG;WACW,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO;IA+BlF;;;;;;OAMG;WACW,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAwF9D"}
@@ -4,50 +4,172 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const NodeTypeEnum_1 = __importDefault(require("./NodeTypeEnum"));
7
+ const DOMException_1 = __importDefault(require("../../exception/DOMException"));
8
+ const DOMExceptionNameEnum_1 = __importDefault(require("../../exception/DOMExceptionNameEnum"));
9
+ const Node_1 = __importDefault(require("./Node"));
10
+ const MutationRecord_1 = __importDefault(require("../../mutation-observer/MutationRecord"));
11
+ const MutationTypeEnum_1 = __importDefault(require("../../mutation-observer/MutationTypeEnum"));
7
12
  /**
8
13
  * Node utility.
9
14
  */
10
15
  class NodeUtility {
11
16
  /**
12
- * Returns whether the passed node is a text node, and narrows its type.
17
+ * Append a child node to childNodes.
13
18
  *
14
- * @param node The node to be tested.
15
- * @returns "true" if the node is a text node.
19
+ * @param ancestorNode Ancestor node.
20
+ * @param node Node to append.
21
+ * @param [options] Options.
22
+ * @param [options.disableAncestorValidation] Disables validation for checking if the node is an ancestor of the ancestorNode.
23
+ * @returns Appended node.
16
24
  */
17
- static isTextNode(node) {
18
- return node?.nodeType === NodeTypeEnum_1.default.textNode;
25
+ static appendChild(ancestorNode, node, options) {
26
+ if (node === ancestorNode) {
27
+ throw new DOMException_1.default("Failed to execute 'appendChild' on 'Node': Not possible to append a node as a child of itself.");
28
+ }
29
+ if (!options?.disableAncestorValidation && this.isInclusiveAncestor(node, ancestorNode, true)) {
30
+ throw new DOMException_1.default("Failed to execute 'appendChild' on 'Node': The new node is a parent of the node to insert to.", DOMExceptionNameEnum_1.default.domException);
31
+ }
32
+ // If the type is DocumentFragment, then the child nodes of if it should be moved instead of the actual node.
33
+ // See: https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
34
+ if (node.nodeType === NodeTypeEnum_1.default.documentFragmentNode) {
35
+ for (const child of node.childNodes.slice()) {
36
+ ancestorNode.appendChild(child);
37
+ }
38
+ return node;
39
+ }
40
+ // Remove the node from its previous parent if it has any.
41
+ if (node.parentNode) {
42
+ const index = node.parentNode.childNodes.indexOf(node);
43
+ if (index !== -1) {
44
+ node.parentNode.childNodes.splice(index, 1);
45
+ }
46
+ }
47
+ if (ancestorNode.isConnected) {
48
+ (ancestorNode.ownerDocument || this)['_cacheID']++;
49
+ }
50
+ ancestorNode.childNodes.push(node);
51
+ node._connectToNode(ancestorNode);
52
+ // MutationObserver
53
+ if (ancestorNode._observers.length > 0) {
54
+ const record = new MutationRecord_1.default();
55
+ record.target = ancestorNode;
56
+ record.type = MutationTypeEnum_1.default.childList;
57
+ record.addedNodes = [node];
58
+ for (const observer of ancestorNode._observers) {
59
+ if (observer.options.subtree) {
60
+ node._observe(observer);
61
+ }
62
+ if (observer.options.childList) {
63
+ observer.callback([record]);
64
+ }
65
+ }
66
+ }
67
+ return node;
19
68
  }
20
69
  /**
21
- * Returns "true" if this node contains the other node.
70
+ * Remove Child element from childNodes array.
22
71
  *
23
- * @param rootNode Root node.
24
- * @param otherNode Node to test with.
25
- * @param [includeShadowRoots = false] Include shadow roots.
26
- * @returns "true" if this node contains the other node.
72
+ * @param ancestorNode Ancestor node.
73
+ * @param node Node to remove.
74
+ * @returns Removed node.
27
75
  */
28
- static contains(rootNode, otherNode, includeShadowRoots = false) {
29
- if (otherNode === null) {
30
- return false;
76
+ static removeChild(ancestorNode, node) {
77
+ const index = ancestorNode.childNodes.indexOf(node);
78
+ if (index === -1) {
79
+ throw new DOMException_1.default('Failed to remove node. Node is not child of parent.');
31
80
  }
32
- if (rootNode === otherNode) {
33
- return true;
81
+ if (ancestorNode.isConnected) {
82
+ (ancestorNode.ownerDocument || this)['_cacheID']++;
34
83
  }
35
- if (includeShadowRoots && rootNode === otherNode.ownerDocument && otherNode.isConnected) {
36
- return true;
84
+ ancestorNode.childNodes.splice(index, 1);
85
+ node._connectToNode(null);
86
+ // MutationObserver
87
+ if (ancestorNode._observers.length > 0) {
88
+ const record = new MutationRecord_1.default();
89
+ record.target = ancestorNode;
90
+ record.type = MutationTypeEnum_1.default.childList;
91
+ record.removedNodes = [node];
92
+ for (const observer of ancestorNode._observers) {
93
+ node._unobserve(observer);
94
+ if (observer.options.childList) {
95
+ observer.callback([record]);
96
+ }
97
+ }
37
98
  }
38
- for (const childNode of rootNode.childNodes) {
39
- if (childNode === otherNode ||
40
- this.contains(childNode, otherNode, includeShadowRoots) ||
41
- (includeShadowRoots &&
42
- childNode.shadowRoot &&
43
- childNode.shadowRoot.contains(otherNode))) {
44
- return true;
99
+ return node;
100
+ }
101
+ /**
102
+ * Inserts a node before another.
103
+ *
104
+ * @param ancestorNode Ancestor node.
105
+ * @param newNode Node to insert.
106
+ * @param referenceNode Node to insert before.
107
+ * @param [options] Options.
108
+ * @param [options.disableAncestorValidation] Disables validation for checking if the node is an ancestor of the ancestorNode.
109
+ * @returns Inserted node.
110
+ */
111
+ static insertBefore(ancestorNode, newNode, referenceNode, options) {
112
+ if (!options?.disableAncestorValidation &&
113
+ this.isInclusiveAncestor(newNode, ancestorNode, true)) {
114
+ throw new DOMException_1.default("Failed to execute 'insertBefore' on 'Node': The new node is a parent of the node to insert to.", DOMExceptionNameEnum_1.default.domException);
115
+ }
116
+ // If the type is DocumentFragment, then the child nodes of if it should be moved instead of the actual node.
117
+ // See: https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
118
+ if (newNode.nodeType === Node_1.default.DOCUMENT_FRAGMENT_NODE) {
119
+ for (const child of newNode.childNodes.slice()) {
120
+ ancestorNode.insertBefore(child, referenceNode);
45
121
  }
122
+ return newNode;
46
123
  }
47
- return false;
124
+ if (referenceNode === null) {
125
+ ancestorNode.appendChild(newNode);
126
+ return newNode;
127
+ }
128
+ if (!referenceNode) {
129
+ throw new DOMException_1.default("Failed to execute 'insertBefore' on 'Node': 2 arguments required, but only 1 present.", 'TypeError');
130
+ }
131
+ if (ancestorNode.childNodes.indexOf(referenceNode) === -1) {
132
+ throw new DOMException_1.default("Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.");
133
+ }
134
+ if (ancestorNode.isConnected) {
135
+ (ancestorNode.ownerDocument || this)['_cacheID']++;
136
+ }
137
+ if (newNode.parentNode) {
138
+ const index = newNode.parentNode.childNodes.indexOf(newNode);
139
+ if (index !== -1) {
140
+ newNode.parentNode.childNodes.splice(index, 1);
141
+ }
142
+ }
143
+ ancestorNode.childNodes.splice(ancestorNode.childNodes.indexOf(referenceNode), 0, newNode);
144
+ newNode._connectToNode(ancestorNode);
145
+ // MutationObserver
146
+ if (ancestorNode._observers.length > 0) {
147
+ const record = new MutationRecord_1.default();
148
+ record.target = ancestorNode;
149
+ record.type = MutationTypeEnum_1.default.childList;
150
+ record.addedNodes = [newNode];
151
+ for (const observer of ancestorNode._observers) {
152
+ if (observer.options.subtree) {
153
+ newNode._observe(observer);
154
+ }
155
+ if (observer.options.childList) {
156
+ observer.callback([record]);
157
+ }
158
+ }
159
+ }
160
+ return newNode;
48
161
  }
49
162
  /**
50
- * Returns boolean indicating if nodeB is an inclusive ancestor of nodeA.
163
+ * Returns whether the passed node is a text node, and narrows its type.
164
+ *
165
+ * @param node The node to be tested.
166
+ * @returns "true" if the node is a text node.
167
+ */
168
+ static isTextNode(node) {
169
+ return node?.nodeType === NodeTypeEnum_1.default.textNode;
170
+ }
171
+ /**
172
+ * Returns boolean indicating if "ancestorNode" is an inclusive ancestor of "referenceNode".
51
173
  *
52
174
  * Based on:
53
175
  * https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/helpers/node.js
@@ -55,15 +177,37 @@ class NodeUtility {
55
177
  * @see https://dom.spec.whatwg.org/#concept-tree-inclusive-ancestor
56
178
  * @param ancestorNode Ancestor node.
57
179
  * @param referenceNode Reference node.
58
- * @returns "true" if following.
180
+ * @param [includeShadowRoots = false] Include shadow roots.
181
+ * @returns "true" if inclusive ancestor.
59
182
  */
60
- static isInclusiveAncestor(ancestorNode, referenceNode) {
61
- let parent = referenceNode;
183
+ static isInclusiveAncestor(ancestorNode, referenceNode, includeShadowRoots = false) {
184
+ if (ancestorNode === null || referenceNode === null) {
185
+ return false;
186
+ }
187
+ if (ancestorNode === referenceNode) {
188
+ return true;
189
+ }
190
+ if (!ancestorNode.childNodes.length) {
191
+ return false;
192
+ }
193
+ if (includeShadowRoots && referenceNode.isConnected !== ancestorNode.isConnected) {
194
+ return false;
195
+ }
196
+ if (includeShadowRoots &&
197
+ ancestorNode === referenceNode.ownerDocument &&
198
+ referenceNode.isConnected) {
199
+ return true;
200
+ }
201
+ let parent = referenceNode.parentNode;
62
202
  while (parent) {
63
203
  if (ancestorNode === parent) {
64
204
  return true;
65
205
  }
66
- parent = parent.parentNode;
206
+ parent = parent.parentNode
207
+ ? parent.parentNode
208
+ : includeShadowRoots && parent.host
209
+ ? parent.host
210
+ : null;
67
211
  }
68
212
  return false;
69
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NodeUtility.js","sourceRoot":"","sources":["../../../src/nodes/node/NodeUtility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeUtility.js","sourceRoot":"","sources":["../../../src/nodes/node/NodeUtility.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.2",
3
+ "version": "9.8.3",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -620,25 +620,25 @@ export default class Document extends Node implements IDocument {
620
620
  /**
621
621
  * @override
622
622
  */
623
- public appendChild(node: INode): INode {
624
- ElementUtility.appendChild(this, node);
625
- return super.appendChild(node);
623
+ public override appendChild(node: INode): INode {
624
+ // We do not call super here as this will be handled by ElementUtility to improve performance by avoiding validation and other checks.
625
+ return ElementUtility.appendChild(this, node);
626
626
  }
627
627
 
628
628
  /**
629
629
  * @override
630
630
  */
631
- public removeChild(node: INode): INode {
632
- ElementUtility.removeChild(this, node);
633
- return super.removeChild(node);
631
+ public override removeChild(node: INode): INode {
632
+ // We do not call super here as this will be handled by ElementUtility to improve performance by avoiding validation and other checks.
633
+ return ElementUtility.removeChild(this, node);
634
634
  }
635
635
 
636
636
  /**
637
637
  * @override
638
638
  */
639
- public insertBefore(newNode: INode, referenceNode?: INode): INode {
640
- ElementUtility.insertBefore(this, newNode, referenceNode);
641
- return super.insertBefore(newNode, referenceNode);
639
+ public override insertBefore(newNode: INode, referenceNode: INode | null): INode {
640
+ // We do not call super here as this will be handled by ElementUtility to improve performance by avoiding validation and other checks.
641
+ return ElementUtility.insertBefore(this, newNode, referenceNode);
642
642
  }
643
643
 
644
644
  /**