happy-dom 13.0.6 → 13.1.0

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 (615) hide show
  1. package/cjs/PropertySymbol.cjs +69 -2
  2. package/cjs/PropertySymbol.cjs.map +1 -1
  3. package/cjs/PropertySymbol.d.ts +67 -1
  4. package/cjs/PropertySymbol.d.ts.map +1 -1
  5. package/cjs/async-task-manager/AsyncTaskManager.cjs +11 -5
  6. package/cjs/async-task-manager/AsyncTaskManager.cjs.map +1 -1
  7. package/cjs/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  8. package/cjs/browser/utilities/BrowserFrameNavigator.cjs +1 -1
  9. package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
  10. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs +17 -16
  11. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs.map +1 -1
  12. package/cjs/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  13. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs +43 -26
  14. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs.map +1 -1
  15. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  16. package/cjs/dom-implementation/DOMImplementation.cjs +6 -6
  17. package/cjs/dom-implementation/DOMImplementation.cjs.map +1 -1
  18. package/cjs/dom-parser/DOMParser.cjs +2 -2
  19. package/cjs/dom-parser/DOMParser.cjs.map +1 -1
  20. package/cjs/dom-parser/DOMParser.d.ts.map +1 -1
  21. package/cjs/event/Event.cjs +3 -3
  22. package/cjs/event/Event.cjs.map +1 -1
  23. package/cjs/event/EventTarget.cjs +4 -4
  24. package/cjs/event/EventTarget.cjs.map +1 -1
  25. package/cjs/fetch/Request.cjs +2 -1
  26. package/cjs/fetch/Request.cjs.map +1 -1
  27. package/cjs/fetch/Request.d.ts +4 -4
  28. package/cjs/fetch/Request.d.ts.map +1 -1
  29. package/cjs/form-data/FormData.cjs +7 -7
  30. package/cjs/form-data/FormData.cjs.map +1 -1
  31. package/cjs/mutation-observer/MutationObserver.cjs +3 -3
  32. package/cjs/mutation-observer/MutationObserver.cjs.map +1 -1
  33. package/cjs/named-node-map/NamedNodeMap.cjs +10 -8
  34. package/cjs/named-node-map/NamedNodeMap.cjs.map +1 -1
  35. package/cjs/named-node-map/NamedNodeMap.d.ts.map +1 -1
  36. package/cjs/nodes/attr/Attr.cjs +84 -15
  37. package/cjs/nodes/attr/Attr.cjs.map +1 -1
  38. package/cjs/nodes/attr/Attr.d.ts +40 -8
  39. package/cjs/nodes/attr/Attr.d.ts.map +1 -1
  40. package/cjs/nodes/character-data/CharacterData.cjs +2 -2
  41. package/cjs/nodes/character-data/CharacterData.cjs.map +1 -1
  42. package/cjs/nodes/child-node/ChildNodeUtility.cjs +8 -8
  43. package/cjs/nodes/child-node/ChildNodeUtility.cjs.map +1 -1
  44. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.cjs +27 -3
  45. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.cjs.map +1 -1
  46. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.d.ts.map +1 -1
  47. package/cjs/nodes/comment/Comment.cjs +28 -2
  48. package/cjs/nodes/comment/Comment.cjs.map +1 -1
  49. package/cjs/nodes/comment/Comment.d.ts +3 -1
  50. package/cjs/nodes/comment/Comment.d.ts.map +1 -1
  51. package/cjs/nodes/document/Document.cjs +95 -41
  52. package/cjs/nodes/document/Document.cjs.map +1 -1
  53. package/cjs/nodes/document/Document.d.ts +45 -10
  54. package/cjs/nodes/document/Document.d.ts.map +1 -1
  55. package/cjs/nodes/document/IDocument.d.ts +2 -1
  56. package/cjs/nodes/document/IDocument.d.ts.map +1 -1
  57. package/cjs/nodes/document-fragment/DocumentFragment.cjs +8 -6
  58. package/cjs/nodes/document-fragment/DocumentFragment.cjs.map +1 -1
  59. package/cjs/nodes/document-fragment/DocumentFragment.d.ts +2 -1
  60. package/cjs/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
  61. package/cjs/nodes/document-type/DocumentType.cjs +58 -7
  62. package/cjs/nodes/document-type/DocumentType.cjs.map +1 -1
  63. package/cjs/nodes/document-type/DocumentType.d.ts +24 -4
  64. package/cjs/nodes/document-type/DocumentType.d.ts.map +1 -1
  65. package/cjs/nodes/element/Dataset.cjs +14 -14
  66. package/cjs/nodes/element/Dataset.cjs.map +1 -1
  67. package/cjs/nodes/element/Dataset.d.ts +1 -1
  68. package/cjs/nodes/element/Dataset.d.ts.map +1 -1
  69. package/cjs/nodes/element/Element.cjs +142 -55
  70. package/cjs/nodes/element/Element.cjs.map +1 -1
  71. package/cjs/nodes/element/Element.d.ts +77 -11
  72. package/cjs/nodes/element/Element.d.ts.map +1 -1
  73. package/cjs/nodes/element/ElementNamedNodeMap.cjs +33 -30
  74. package/cjs/nodes/element/ElementNamedNodeMap.cjs.map +1 -1
  75. package/cjs/nodes/element/ElementNamedNodeMap.d.ts.map +1 -1
  76. package/cjs/nodes/element/ElementUtility.cjs +19 -19
  77. package/cjs/nodes/element/ElementUtility.cjs.map +1 -1
  78. package/cjs/nodes/element/ElementUtility.d.ts.map +1 -1
  79. package/cjs/nodes/element/IElement.d.ts +3 -3
  80. package/cjs/nodes/element/IElement.d.ts.map +1 -1
  81. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +6 -6
  82. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
  83. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +1 -1
  84. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  85. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs +7 -5
  86. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs.map +1 -1
  87. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -1
  88. package/cjs/nodes/html-base-element/HTMLBaseElement.cjs +25 -1
  89. package/cjs/nodes/html-base-element/HTMLBaseElement.cjs.map +1 -1
  90. package/cjs/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
  91. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +27 -8
  92. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
  93. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +16 -3
  94. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  95. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs +7 -7
  96. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs.map +1 -1
  97. package/cjs/nodes/html-dialog-element/HTMLDialogElement.cjs +44 -1
  98. package/cjs/nodes/html-dialog-element/HTMLDialogElement.cjs.map +1 -1
  99. package/cjs/nodes/html-dialog-element/HTMLDialogElement.d.ts +14 -1
  100. package/cjs/nodes/html-dialog-element/HTMLDialogElement.d.ts.map +1 -1
  101. package/cjs/nodes/html-document/HTMLDocument.cjs +25 -1
  102. package/cjs/nodes/html-document/HTMLDocument.cjs.map +1 -1
  103. package/cjs/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  104. package/cjs/nodes/html-element/HTMLElement.cjs +137 -32
  105. package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
  106. package/cjs/nodes/html-element/HTMLElement.d.ts +91 -14
  107. package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
  108. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs +4 -3
  109. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs.map +1 -1
  110. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -1
  111. package/cjs/nodes/html-element/HTMLElementUtility.cjs +12 -10
  112. package/cjs/nodes/html-element/HTMLElementUtility.cjs.map +1 -1
  113. package/cjs/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
  114. package/cjs/nodes/html-element/IHTMLElement.d.ts +3 -0
  115. package/cjs/nodes/html-element/IHTMLElement.d.ts.map +1 -1
  116. package/cjs/nodes/html-form-element/HTMLFormElement.cjs +62 -30
  117. package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
  118. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts +22 -3
  119. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  120. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +5 -5
  121. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
  122. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +1 -1
  123. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  124. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs +27 -1
  125. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs.map +1 -1
  126. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -1
  127. package/cjs/nodes/html-iframe-element/HTMLIFrameElementPageLoader.cjs +2 -2
  128. package/cjs/nodes/html-iframe-element/HTMLIFrameElementPageLoader.cjs.map +1 -1
  129. package/cjs/nodes/html-image-element/HTMLImageElement.cjs +128 -26
  130. package/cjs/nodes/html-image-element/HTMLImageElement.cjs.map +1 -1
  131. package/cjs/nodes/html-image-element/HTMLImageElement.d.ts +76 -21
  132. package/cjs/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
  133. package/cjs/nodes/html-input-element/HTMLInputElement.cjs +112 -27
  134. package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
  135. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +67 -10
  136. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  137. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs +7 -7
  138. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs.map +1 -1
  139. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +1 -1
  140. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
  141. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.cjs +26 -2
  142. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.cjs.map +1 -1
  143. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.d.ts.map +1 -1
  144. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +15 -8
  145. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
  146. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +6 -2
  147. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  148. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs +7 -6
  149. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs.map +1 -1
  150. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -1
  151. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.cjs +8 -5
  152. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.cjs.map +1 -1
  153. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.d.ts.map +1 -1
  154. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +154 -53
  155. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
  156. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +86 -12
  157. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  158. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs +4 -4
  159. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs.map +1 -1
  160. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts +1 -1
  161. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  162. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs +3 -3
  163. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs.map +1 -1
  164. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +12 -11
  165. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  166. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
  167. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  168. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs +4 -4
  169. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs.map +1 -1
  170. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.cjs +8 -8
  171. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.cjs.map +1 -1
  172. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.d.ts.map +1 -1
  173. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +63 -32
  174. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
  175. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts +30 -5
  176. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  177. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs +7 -7
  178. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs.map +1 -1
  179. package/cjs/nodes/html-style-element/HTMLStyleElement.cjs +6 -6
  180. package/cjs/nodes/html-style-element/HTMLStyleElement.cjs.map +1 -1
  181. package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts +1 -1
  182. package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
  183. package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs +27 -12
  184. package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs.map +1 -1
  185. package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts +8 -1
  186. package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
  187. package/cjs/nodes/html-template-element/IHTMLTemplateElement.d.ts +1 -1
  188. package/cjs/nodes/html-template-element/IHTMLTemplateElement.d.ts.map +1 -1
  189. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +27 -9
  190. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
  191. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +16 -3
  192. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  193. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs +7 -7
  194. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs.map +1 -1
  195. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs +24 -17
  196. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs.map +1 -1
  197. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  198. package/cjs/nodes/node/INode.d.ts +2 -2
  199. package/cjs/nodes/node/INode.d.ts.map +1 -1
  200. package/cjs/nodes/node/Node.cjs +95 -56
  201. package/cjs/nodes/node/Node.cjs.map +1 -1
  202. package/cjs/nodes/node/Node.d.ts +44 -20
  203. package/cjs/nodes/node/Node.d.ts.map +1 -1
  204. package/cjs/nodes/node/NodeUtility.cjs +37 -37
  205. package/cjs/nodes/node/NodeUtility.cjs.map +1 -1
  206. package/cjs/nodes/node/NodeUtility.d.ts.map +1 -1
  207. package/cjs/nodes/parent-node/ParentNodeUtility.cjs +8 -5
  208. package/cjs/nodes/parent-node/ParentNodeUtility.cjs.map +1 -1
  209. package/cjs/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
  210. package/cjs/nodes/processing-instruction/ProcessingInstruction.cjs +35 -1
  211. package/cjs/nodes/processing-instruction/ProcessingInstruction.cjs.map +1 -1
  212. package/cjs/nodes/processing-instruction/ProcessingInstruction.d.ts +9 -2
  213. package/cjs/nodes/processing-instruction/ProcessingInstruction.d.ts.map +1 -1
  214. package/cjs/nodes/shadow-root/IShadowRoot.d.ts +2 -0
  215. package/cjs/nodes/shadow-root/IShadowRoot.d.ts.map +1 -1
  216. package/cjs/nodes/shadow-root/ShadowRoot.cjs +44 -7
  217. package/cjs/nodes/shadow-root/ShadowRoot.cjs.map +1 -1
  218. package/cjs/nodes/shadow-root/ShadowRoot.d.ts +28 -3
  219. package/cjs/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
  220. package/cjs/nodes/svg-element/SVGElement.cjs +7 -6
  221. package/cjs/nodes/svg-element/SVGElement.cjs.map +1 -1
  222. package/cjs/nodes/svg-element/SVGElement.d.ts +2 -2
  223. package/cjs/nodes/svg-element/SVGElement.d.ts.map +1 -1
  224. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs +4 -3
  225. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs.map +1 -1
  226. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -1
  227. package/cjs/nodes/text/Text.cjs +7 -6
  228. package/cjs/nodes/text/Text.cjs.map +1 -1
  229. package/cjs/nodes/text/Text.d.ts +2 -1
  230. package/cjs/nodes/text/Text.d.ts.map +1 -1
  231. package/cjs/query-selector/QuerySelector.cjs +2 -2
  232. package/cjs/query-selector/QuerySelector.cjs.map +1 -1
  233. package/cjs/query-selector/SelectorItem.cjs +16 -16
  234. package/cjs/query-selector/SelectorItem.cjs.map +1 -1
  235. package/cjs/query-selector/SelectorItem.d.ts.map +1 -1
  236. package/cjs/range/Range.cjs +91 -79
  237. package/cjs/range/Range.cjs.map +1 -1
  238. package/cjs/range/Range.d.ts.map +1 -1
  239. package/cjs/range/RangeUtility.cjs +5 -4
  240. package/cjs/range/RangeUtility.cjs.map +1 -1
  241. package/cjs/range/RangeUtility.d.ts.map +1 -1
  242. package/cjs/selection/Selection.cjs +15 -15
  243. package/cjs/selection/Selection.cjs.map +1 -1
  244. package/cjs/tree-walker/TreeWalker.cjs +12 -6
  245. package/cjs/tree-walker/TreeWalker.cjs.map +1 -1
  246. package/cjs/tree-walker/TreeWalker.d.ts.map +1 -1
  247. package/cjs/validity-state/ValidityState.cjs +1 -1
  248. package/cjs/validity-state/ValidityState.cjs.map +1 -1
  249. package/cjs/version.cjs +1 -1
  250. package/cjs/window/BrowserWindow.cjs +20 -26
  251. package/cjs/window/BrowserWindow.cjs.map +1 -1
  252. package/cjs/window/BrowserWindow.d.ts.map +1 -1
  253. package/cjs/window/WindowErrorUtility.cjs +1 -1
  254. package/cjs/window/WindowErrorUtility.cjs.map +1 -1
  255. package/cjs/window/WindowErrorUtility.d.ts.map +1 -1
  256. package/cjs/xml-http-request/XMLHttpRequest.cjs +1 -1
  257. package/cjs/xml-http-request/XMLHttpRequest.cjs.map +1 -1
  258. package/cjs/xml-parser/XMLParser.cjs +16 -12
  259. package/cjs/xml-parser/XMLParser.cjs.map +1 -1
  260. package/cjs/xml-parser/XMLParser.d.ts.map +1 -1
  261. package/cjs/xml-serializer/XMLSerializer.cjs +36 -35
  262. package/cjs/xml-serializer/XMLSerializer.cjs.map +1 -1
  263. package/cjs/xml-serializer/XMLSerializer.d.ts +8 -1
  264. package/cjs/xml-serializer/XMLSerializer.d.ts.map +1 -1
  265. package/lib/PropertySymbol.d.ts +67 -1
  266. package/lib/PropertySymbol.d.ts.map +1 -1
  267. package/lib/PropertySymbol.js +67 -1
  268. package/lib/PropertySymbol.js.map +1 -1
  269. package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  270. package/lib/async-task-manager/AsyncTaskManager.js +11 -5
  271. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
  272. package/lib/browser/utilities/BrowserFrameNavigator.js +1 -1
  273. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  274. package/lib/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  275. package/lib/css/declaration/AbstractCSSStyleDeclaration.js +17 -16
  276. package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
  277. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  278. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +43 -26
  279. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
  280. package/lib/dom-implementation/DOMImplementation.js +6 -6
  281. package/lib/dom-implementation/DOMImplementation.js.map +1 -1
  282. package/lib/dom-parser/DOMParser.d.ts.map +1 -1
  283. package/lib/dom-parser/DOMParser.js +2 -2
  284. package/lib/dom-parser/DOMParser.js.map +1 -1
  285. package/lib/event/Event.js +3 -3
  286. package/lib/event/Event.js.map +1 -1
  287. package/lib/event/EventTarget.js +4 -4
  288. package/lib/event/EventTarget.js.map +1 -1
  289. package/lib/fetch/Request.d.ts +4 -4
  290. package/lib/fetch/Request.d.ts.map +1 -1
  291. package/lib/fetch/Request.js +2 -1
  292. package/lib/fetch/Request.js.map +1 -1
  293. package/lib/form-data/FormData.js +7 -7
  294. package/lib/form-data/FormData.js.map +1 -1
  295. package/lib/mutation-observer/MutationObserver.js +3 -3
  296. package/lib/mutation-observer/MutationObserver.js.map +1 -1
  297. package/lib/named-node-map/NamedNodeMap.d.ts.map +1 -1
  298. package/lib/named-node-map/NamedNodeMap.js +10 -8
  299. package/lib/named-node-map/NamedNodeMap.js.map +1 -1
  300. package/lib/nodes/attr/Attr.d.ts +40 -8
  301. package/lib/nodes/attr/Attr.d.ts.map +1 -1
  302. package/lib/nodes/attr/Attr.js +63 -16
  303. package/lib/nodes/attr/Attr.js.map +1 -1
  304. package/lib/nodes/character-data/CharacterData.js +2 -2
  305. package/lib/nodes/character-data/CharacterData.js.map +1 -1
  306. package/lib/nodes/child-node/ChildNodeUtility.js +8 -8
  307. package/lib/nodes/child-node/ChildNodeUtility.js.map +1 -1
  308. package/lib/nodes/child-node/NonDocumentChildNodeUtility.d.ts.map +1 -1
  309. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js +4 -3
  310. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js.map +1 -1
  311. package/lib/nodes/comment/Comment.d.ts +3 -1
  312. package/lib/nodes/comment/Comment.d.ts.map +1 -1
  313. package/lib/nodes/comment/Comment.js +7 -3
  314. package/lib/nodes/comment/Comment.js.map +1 -1
  315. package/lib/nodes/document/Document.d.ts +45 -10
  316. package/lib/nodes/document/Document.d.ts.map +1 -1
  317. package/lib/nodes/document/Document.js +95 -41
  318. package/lib/nodes/document/Document.js.map +1 -1
  319. package/lib/nodes/document/IDocument.d.ts +2 -1
  320. package/lib/nodes/document/IDocument.d.ts.map +1 -1
  321. package/lib/nodes/document-fragment/DocumentFragment.d.ts +2 -1
  322. package/lib/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
  323. package/lib/nodes/document-fragment/DocumentFragment.js +8 -6
  324. package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
  325. package/lib/nodes/document-type/DocumentType.d.ts +24 -4
  326. package/lib/nodes/document-type/DocumentType.d.ts.map +1 -1
  327. package/lib/nodes/document-type/DocumentType.js +37 -8
  328. package/lib/nodes/document-type/DocumentType.js.map +1 -1
  329. package/lib/nodes/element/Dataset.d.ts +1 -1
  330. package/lib/nodes/element/Dataset.d.ts.map +1 -1
  331. package/lib/nodes/element/Dataset.js +14 -14
  332. package/lib/nodes/element/Dataset.js.map +1 -1
  333. package/lib/nodes/element/Element.d.ts +77 -11
  334. package/lib/nodes/element/Element.d.ts.map +1 -1
  335. package/lib/nodes/element/Element.js +142 -55
  336. package/lib/nodes/element/Element.js.map +1 -1
  337. package/lib/nodes/element/ElementNamedNodeMap.d.ts.map +1 -1
  338. package/lib/nodes/element/ElementNamedNodeMap.js +33 -30
  339. package/lib/nodes/element/ElementNamedNodeMap.js.map +1 -1
  340. package/lib/nodes/element/ElementUtility.d.ts.map +1 -1
  341. package/lib/nodes/element/ElementUtility.js +19 -19
  342. package/lib/nodes/element/ElementUtility.js.map +1 -1
  343. package/lib/nodes/element/IElement.d.ts +3 -3
  344. package/lib/nodes/element/IElement.d.ts.map +1 -1
  345. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +1 -1
  346. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  347. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +6 -6
  348. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  349. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -1
  350. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js +7 -5
  351. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js.map +1 -1
  352. package/lib/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
  353. package/lib/nodes/html-base-element/HTMLBaseElement.js +2 -1
  354. package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -1
  355. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +16 -3
  356. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  357. package/lib/nodes/html-button-element/HTMLButtonElement.js +27 -8
  358. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  359. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js +7 -7
  360. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js.map +1 -1
  361. package/lib/nodes/html-dialog-element/HTMLDialogElement.d.ts +14 -1
  362. package/lib/nodes/html-dialog-element/HTMLDialogElement.d.ts.map +1 -1
  363. package/lib/nodes/html-dialog-element/HTMLDialogElement.js +23 -2
  364. package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -1
  365. package/lib/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  366. package/lib/nodes/html-document/HTMLDocument.js +2 -1
  367. package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
  368. package/lib/nodes/html-element/HTMLElement.d.ts +91 -14
  369. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  370. package/lib/nodes/html-element/HTMLElement.js +137 -32
  371. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  372. package/lib/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -1
  373. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js +4 -3
  374. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js.map +1 -1
  375. package/lib/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
  376. package/lib/nodes/html-element/HTMLElementUtility.js +12 -10
  377. package/lib/nodes/html-element/HTMLElementUtility.js.map +1 -1
  378. package/lib/nodes/html-element/IHTMLElement.d.ts +3 -0
  379. package/lib/nodes/html-element/IHTMLElement.d.ts.map +1 -1
  380. package/lib/nodes/html-form-element/HTMLFormElement.d.ts +22 -3
  381. package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  382. package/lib/nodes/html-form-element/HTMLFormElement.js +62 -30
  383. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  384. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +1 -1
  385. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  386. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +5 -5
  387. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  388. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -1
  389. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js +4 -1
  390. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js.map +1 -1
  391. package/lib/nodes/html-iframe-element/HTMLIFrameElementPageLoader.js +2 -2
  392. package/lib/nodes/html-iframe-element/HTMLIFrameElementPageLoader.js.map +1 -1
  393. package/lib/nodes/html-image-element/HTMLImageElement.d.ts +76 -21
  394. package/lib/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
  395. package/lib/nodes/html-image-element/HTMLImageElement.js +107 -27
  396. package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
  397. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +67 -10
  398. package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  399. package/lib/nodes/html-input-element/HTMLInputElement.js +112 -27
  400. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  401. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js +7 -7
  402. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js.map +1 -1
  403. package/lib/nodes/html-label-element/HTMLLabelElement.js +1 -1
  404. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  405. package/lib/nodes/html-label-element/HTMLLabelElementUtility.d.ts.map +1 -1
  406. package/lib/nodes/html-label-element/HTMLLabelElementUtility.js +3 -2
  407. package/lib/nodes/html-label-element/HTMLLabelElementUtility.js.map +1 -1
  408. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +6 -2
  409. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  410. package/lib/nodes/html-link-element/HTMLLinkElement.js +15 -8
  411. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  412. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -1
  413. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js +7 -6
  414. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js.map +1 -1
  415. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.d.ts.map +1 -1
  416. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.js +8 -5
  417. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.js.map +1 -1
  418. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +86 -12
  419. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  420. package/lib/nodes/html-media-element/HTMLMediaElement.js +132 -54
  421. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  422. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +1 -1
  423. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  424. package/lib/nodes/html-option-element/HTMLOptionElement.js +4 -4
  425. package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
  426. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js +3 -3
  427. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js.map +1 -1
  428. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
  429. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  430. package/lib/nodes/html-script-element/HTMLScriptElement.js +12 -11
  431. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  432. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js +4 -4
  433. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js.map +1 -1
  434. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.d.ts.map +1 -1
  435. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.js +8 -8
  436. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.js.map +1 -1
  437. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +30 -5
  438. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  439. package/lib/nodes/html-select-element/HTMLSelectElement.js +63 -32
  440. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  441. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js +7 -7
  442. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js.map +1 -1
  443. package/lib/nodes/html-style-element/HTMLStyleElement.d.ts +1 -1
  444. package/lib/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
  445. package/lib/nodes/html-style-element/HTMLStyleElement.js +6 -6
  446. package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
  447. package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts +8 -1
  448. package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
  449. package/lib/nodes/html-template-element/HTMLTemplateElement.js +29 -13
  450. package/lib/nodes/html-template-element/HTMLTemplateElement.js.map +1 -1
  451. package/lib/nodes/html-template-element/IHTMLTemplateElement.d.ts +1 -1
  452. package/lib/nodes/html-template-element/IHTMLTemplateElement.d.ts.map +1 -1
  453. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +16 -3
  454. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  455. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +27 -9
  456. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  457. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js +7 -7
  458. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js.map +1 -1
  459. package/lib/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  460. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js +24 -17
  461. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js.map +1 -1
  462. package/lib/nodes/node/INode.d.ts +2 -2
  463. package/lib/nodes/node/INode.d.ts.map +1 -1
  464. package/lib/nodes/node/Node.d.ts +44 -20
  465. package/lib/nodes/node/Node.d.ts.map +1 -1
  466. package/lib/nodes/node/Node.js +95 -56
  467. package/lib/nodes/node/Node.js.map +1 -1
  468. package/lib/nodes/node/NodeUtility.d.ts.map +1 -1
  469. package/lib/nodes/node/NodeUtility.js +37 -37
  470. package/lib/nodes/node/NodeUtility.js.map +1 -1
  471. package/lib/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
  472. package/lib/nodes/parent-node/ParentNodeUtility.js +8 -5
  473. package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
  474. package/lib/nodes/processing-instruction/ProcessingInstruction.d.ts +9 -2
  475. package/lib/nodes/processing-instruction/ProcessingInstruction.d.ts.map +1 -1
  476. package/lib/nodes/processing-instruction/ProcessingInstruction.js +14 -2
  477. package/lib/nodes/processing-instruction/ProcessingInstruction.js.map +1 -1
  478. package/lib/nodes/shadow-root/IShadowRoot.d.ts +2 -0
  479. package/lib/nodes/shadow-root/IShadowRoot.d.ts.map +1 -1
  480. package/lib/nodes/shadow-root/ShadowRoot.d.ts +28 -3
  481. package/lib/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
  482. package/lib/nodes/shadow-root/ShadowRoot.js +46 -8
  483. package/lib/nodes/shadow-root/ShadowRoot.js.map +1 -1
  484. package/lib/nodes/svg-element/SVGElement.d.ts +2 -2
  485. package/lib/nodes/svg-element/SVGElement.d.ts.map +1 -1
  486. package/lib/nodes/svg-element/SVGElement.js +7 -6
  487. package/lib/nodes/svg-element/SVGElement.js.map +1 -1
  488. package/lib/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -1
  489. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js +4 -3
  490. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js.map +1 -1
  491. package/lib/nodes/text/Text.d.ts +2 -1
  492. package/lib/nodes/text/Text.d.ts.map +1 -1
  493. package/lib/nodes/text/Text.js +7 -6
  494. package/lib/nodes/text/Text.js.map +1 -1
  495. package/lib/query-selector/QuerySelector.js +2 -2
  496. package/lib/query-selector/QuerySelector.js.map +1 -1
  497. package/lib/query-selector/SelectorItem.d.ts.map +1 -1
  498. package/lib/query-selector/SelectorItem.js +16 -16
  499. package/lib/query-selector/SelectorItem.js.map +1 -1
  500. package/lib/range/Range.d.ts.map +1 -1
  501. package/lib/range/Range.js +91 -79
  502. package/lib/range/Range.js.map +1 -1
  503. package/lib/range/RangeUtility.d.ts.map +1 -1
  504. package/lib/range/RangeUtility.js +5 -4
  505. package/lib/range/RangeUtility.js.map +1 -1
  506. package/lib/selection/Selection.js +15 -15
  507. package/lib/selection/Selection.js.map +1 -1
  508. package/lib/tree-walker/TreeWalker.d.ts.map +1 -1
  509. package/lib/tree-walker/TreeWalker.js +12 -6
  510. package/lib/tree-walker/TreeWalker.js.map +1 -1
  511. package/lib/validity-state/ValidityState.js +1 -1
  512. package/lib/validity-state/ValidityState.js.map +1 -1
  513. package/lib/version.js +1 -1
  514. package/lib/window/BrowserWindow.d.ts.map +1 -1
  515. package/lib/window/BrowserWindow.js +20 -26
  516. package/lib/window/BrowserWindow.js.map +1 -1
  517. package/lib/window/WindowErrorUtility.d.ts.map +1 -1
  518. package/lib/window/WindowErrorUtility.js +1 -1
  519. package/lib/window/WindowErrorUtility.js.map +1 -1
  520. package/lib/xml-http-request/XMLHttpRequest.js +1 -1
  521. package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
  522. package/lib/xml-parser/XMLParser.d.ts.map +1 -1
  523. package/lib/xml-parser/XMLParser.js +16 -12
  524. package/lib/xml-parser/XMLParser.js.map +1 -1
  525. package/lib/xml-serializer/XMLSerializer.d.ts +8 -1
  526. package/lib/xml-serializer/XMLSerializer.d.ts.map +1 -1
  527. package/lib/xml-serializer/XMLSerializer.js +37 -37
  528. package/lib/xml-serializer/XMLSerializer.js.map +1 -1
  529. package/package.json +1 -1
  530. package/src/PropertySymbol.ts +67 -1
  531. package/src/async-task-manager/AsyncTaskManager.ts +12 -5
  532. package/src/browser/utilities/BrowserFrameNavigator.ts +1 -1
  533. package/src/css/declaration/AbstractCSSStyleDeclaration.ts +17 -16
  534. package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +64 -28
  535. package/src/dom-implementation/DOMImplementation.ts +6 -6
  536. package/src/dom-parser/DOMParser.ts +2 -2
  537. package/src/event/Event.ts +3 -3
  538. package/src/event/EventTarget.ts +4 -4
  539. package/src/fetch/Request.ts +7 -5
  540. package/src/form-data/FormData.ts +9 -9
  541. package/src/mutation-observer/MutationObserver.ts +3 -3
  542. package/src/named-node-map/NamedNodeMap.ts +12 -8
  543. package/src/nodes/attr/Attr.ts +59 -11
  544. package/src/nodes/character-data/CharacterData.ts +2 -2
  545. package/src/nodes/child-node/ChildNodeUtility.ts +8 -8
  546. package/src/nodes/child-node/NonDocumentChildNodeUtility.ts +4 -3
  547. package/src/nodes/comment/Comment.ts +3 -2
  548. package/src/nodes/document/Document.ts +106 -46
  549. package/src/nodes/document/IDocument.ts +2 -1
  550. package/src/nodes/document-fragment/DocumentFragment.ts +8 -4
  551. package/src/nodes/document-type/DocumentType.ts +36 -7
  552. package/src/nodes/element/Dataset.ts +23 -17
  553. package/src/nodes/element/Element.ts +166 -61
  554. package/src/nodes/element/ElementNamedNodeMap.ts +58 -33
  555. package/src/nodes/element/ElementUtility.ts +26 -19
  556. package/src/nodes/element/IElement.ts +3 -3
  557. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +5 -3
  558. package/src/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.ts +11 -5
  559. package/src/nodes/html-base-element/HTMLBaseElement.ts +2 -1
  560. package/src/nodes/html-button-element/HTMLButtonElement.ts +29 -6
  561. package/src/nodes/html-button-element/HTMLButtonElementNamedNodeMap.ts +7 -7
  562. package/src/nodes/html-dialog-element/HTMLDialogElement.ts +21 -1
  563. package/src/nodes/html-document/HTMLDocument.ts +2 -1
  564. package/src/nodes/html-element/HTMLElement.ts +161 -33
  565. package/src/nodes/html-element/HTMLElementNamedNodeMap.ts +6 -3
  566. package/src/nodes/html-element/HTMLElementUtility.ts +17 -10
  567. package/src/nodes/html-element/IHTMLElement.ts +3 -0
  568. package/src/nodes/html-form-element/HTMLFormElement.ts +67 -27
  569. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +6 -5
  570. package/src/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.ts +6 -1
  571. package/src/nodes/html-iframe-element/HTMLIFrameElementPageLoader.ts +2 -2
  572. package/src/nodes/html-image-element/HTMLImageElement.ts +115 -28
  573. package/src/nodes/html-input-element/HTMLInputElement.ts +125 -30
  574. package/src/nodes/html-input-element/HTMLInputElementNamedNodeMap.ts +7 -7
  575. package/src/nodes/html-label-element/HTMLLabelElement.ts +1 -1
  576. package/src/nodes/html-label-element/HTMLLabelElementUtility.ts +3 -2
  577. package/src/nodes/html-link-element/HTMLLinkElement.ts +15 -5
  578. package/src/nodes/html-link-element/HTMLLinkElementNamedNodeMap.ts +9 -6
  579. package/src/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.ts +13 -5
  580. package/src/nodes/html-media-element/HTMLMediaElement.ts +142 -42
  581. package/src/nodes/html-option-element/HTMLOptionElement.ts +3 -1
  582. package/src/nodes/html-option-element/HTMLOptionElementNamedNodeMap.ts +3 -3
  583. package/src/nodes/html-script-element/HTMLScriptElement.ts +19 -12
  584. package/src/nodes/html-script-element/HTMLScriptElementNamedNodeMap.ts +4 -4
  585. package/src/nodes/html-script-element/HTMLScriptElementScriptLoader.ts +13 -9
  586. package/src/nodes/html-select-element/HTMLSelectElement.ts +69 -31
  587. package/src/nodes/html-select-element/HTMLSelectElementNamedNodeMap.ts +7 -7
  588. package/src/nodes/html-style-element/HTMLStyleElement.ts +6 -6
  589. package/src/nodes/html-template-element/HTMLTemplateElement.ts +28 -12
  590. package/src/nodes/html-template-element/IHTMLTemplateElement.ts +1 -1
  591. package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +29 -6
  592. package/src/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.ts +7 -7
  593. package/src/nodes/html-unknown-element/HTMLUnknownElement.ts +38 -17
  594. package/src/nodes/node/INode.ts +2 -2
  595. package/src/nodes/node/Node.ts +129 -56
  596. package/src/nodes/node/NodeUtility.ts +44 -37
  597. package/src/nodes/parent-node/ParentNodeUtility.ts +10 -5
  598. package/src/nodes/processing-instruction/ProcessingInstruction.ts +12 -2
  599. package/src/nodes/shadow-root/IShadowRoot.ts +2 -0
  600. package/src/nodes/shadow-root/ShadowRoot.ts +50 -8
  601. package/src/nodes/svg-element/SVGElement.ts +6 -5
  602. package/src/nodes/svg-element/SVGElementNamedNodeMap.ts +6 -3
  603. package/src/nodes/text/Text.ts +5 -5
  604. package/src/query-selector/QuerySelector.ts +2 -2
  605. package/src/query-selector/SelectorItem.ts +20 -16
  606. package/src/range/Range.ts +109 -82
  607. package/src/range/RangeUtility.ts +7 -4
  608. package/src/selection/Selection.ts +15 -15
  609. package/src/tree-walker/TreeWalker.ts +22 -6
  610. package/src/validity-state/ValidityState.ts +1 -1
  611. package/src/window/BrowserWindow.ts +18 -24
  612. package/src/window/WindowErrorUtility.ts +3 -1
  613. package/src/xml-http-request/XMLHttpRequest.ts +1 -1
  614. package/src/xml-parser/XMLParser.ts +18 -12
  615. package/src/xml-serializer/XMLSerializer.ts +22 -20
@@ -22,8 +22,8 @@ export default interface INode extends IEventTarget {
22
22
  readonly DOCUMENT_POSITION_CONTAINED_BY: NodeDocumentPositionEnum;
23
23
  readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: NodeDocumentPositionEnum;
24
24
  readonly ownerDocument: IDocument;
25
- readonly parentNode: INode;
26
- readonly parentElement: IElement;
25
+ readonly parentNode: INode | null;
26
+ readonly parentElement: IElement | null;
27
27
  readonly nodeType: number;
28
28
  readonly childNodes: INodeList<INode>;
29
29
  readonly isConnected: boolean;
@@ -17,7 +17,7 @@ import NodeFactory from '../NodeFactory.js';
17
17
  * Node.
18
18
  */
19
19
  export default class Node extends EventTarget implements INode {
20
- // Can be set before the Node is created.
20
+ // This is used when overriding a Node class and set it in a owner document context (used in BrowserWindow.constructor()).
21
21
  public static [PropertySymbol.ownerDocument]: IDocument | null;
22
22
 
23
23
  // Public properties
@@ -37,28 +37,29 @@ export default class Node extends EventTarget implements INode {
37
37
  public static readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC =
38
38
  NodeDocumentPositionEnum.implementationSpecific;
39
39
  public static readonly DOCUMENT_POSITION_PRECEDING = NodeDocumentPositionEnum.preceding;
40
- public readonly ELEMENT_NODE = NodeTypeEnum.elementNode;
41
- public readonly ATTRIBUTE_NODE = NodeTypeEnum.attributeNode;
42
- public readonly TEXT_NODE = NodeTypeEnum.textNode;
43
- public readonly CDATA_SECTION_NODE = NodeTypeEnum.cdataSectionNode;
44
- public readonly COMMENT_NODE = NodeTypeEnum.commentNode;
45
- public readonly DOCUMENT_NODE = NodeTypeEnum.documentNode;
46
- public readonly DOCUMENT_TYPE_NODE = NodeTypeEnum.documentTypeNode;
47
- public readonly DOCUMENT_FRAGMENT_NODE = NodeTypeEnum.documentFragmentNode;
48
- public readonly PROCESSING_INSTRUCTION_NODE = NodeTypeEnum.processingInstructionNode;
49
- public readonly DOCUMENT_POSITION_CONTAINED_BY = NodeDocumentPositionEnum.containedBy;
50
- public readonly DOCUMENT_POSITION_CONTAINS = NodeDocumentPositionEnum.contains;
51
- public readonly DOCUMENT_POSITION_DISCONNECTED = NodeDocumentPositionEnum.disconnect;
52
- public readonly DOCUMENT_POSITION_FOLLOWING = NodeDocumentPositionEnum.following;
53
- public readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC =
54
- NodeDocumentPositionEnum.implementationSpecific;
55
- public readonly DOCUMENT_POSITION_PRECEDING = NodeDocumentPositionEnum.preceding;
56
- public readonly parentNode: INode = null;
57
- public readonly nodeType: number;
58
- public readonly isConnected: boolean = false;
59
- public readonly ownerDocument: IDocument = null;
40
+
41
+ // Defined on the prototype
42
+ public readonly ELEMENT_NODE;
43
+ public readonly ATTRIBUTE_NODE;
44
+ public readonly TEXT_NODE;
45
+ public readonly CDATA_SECTION_NODE;
46
+ public readonly COMMENT_NODE;
47
+ public readonly DOCUMENT_NODE;
48
+ public readonly DOCUMENT_TYPE_NODE;
49
+ public readonly DOCUMENT_FRAGMENT_NODE;
50
+ public readonly PROCESSING_INSTRUCTION_NODE;
51
+ public readonly DOCUMENT_POSITION_CONTAINED_BY;
52
+ public readonly DOCUMENT_POSITION_CONTAINS;
53
+ public readonly DOCUMENT_POSITION_DISCONNECTED;
54
+ public readonly DOCUMENT_POSITION_FOLLOWING;
55
+ public readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;
56
+ public readonly DOCUMENT_POSITION_PRECEDING;
60
57
 
61
58
  // Internal properties
59
+ public [PropertySymbol.isConnected] = false;
60
+ public [PropertySymbol.ownerDocument]: IDocument;
61
+ public [PropertySymbol.parentNode]: INode | null = null;
62
+ public [PropertySymbol.nodeType]: NodeTypeEnum;
62
63
  public [PropertySymbol.rootNode]: INode = null;
63
64
  public [PropertySymbol.formNode]: INode = null;
64
65
  public [PropertySymbol.selectNode]: INode = null;
@@ -72,7 +73,9 @@ export default class Node extends EventTarget implements INode {
72
73
  constructor() {
73
74
  super();
74
75
  if ((<typeof Node>this.constructor)[PropertySymbol.ownerDocument] !== undefined) {
75
- this.ownerDocument = (<typeof Node>this.constructor)[PropertySymbol.ownerDocument];
76
+ this[PropertySymbol.ownerDocument] = (<typeof Node>this.constructor)[
77
+ PropertySymbol.ownerDocument
78
+ ];
76
79
  } else {
77
80
  const ownerDocument = NodeFactory.pullOwnerDocument();
78
81
  if (!ownerDocument) {
@@ -80,7 +83,7 @@ export default class Node extends EventTarget implements INode {
80
83
  'Failed to construct "Node": No owner document in queue. Please use "NodeFactory" to create instances of a Node.'
81
84
  );
82
85
  }
83
- this.ownerDocument = ownerDocument;
86
+ this[PropertySymbol.ownerDocument] = ownerDocument;
84
87
  }
85
88
  }
86
89
 
@@ -93,6 +96,42 @@ export default class Node extends EventTarget implements INode {
93
96
  return this.constructor.name;
94
97
  }
95
98
 
99
+ /**
100
+ * Returns connected state.
101
+ *
102
+ * @returns Connected state.
103
+ */
104
+ public get isConnected(): boolean {
105
+ return this[PropertySymbol.isConnected];
106
+ }
107
+
108
+ /**
109
+ * Returns owner document.
110
+ *
111
+ * @returns Owner document.
112
+ */
113
+ public get ownerDocument(): IDocument {
114
+ return this[PropertySymbol.ownerDocument];
115
+ }
116
+
117
+ /**
118
+ * Returns parent node.
119
+ *
120
+ * @returns Parent node.
121
+ */
122
+ public get parentNode(): INode | null {
123
+ return this[PropertySymbol.parentNode];
124
+ }
125
+
126
+ /**
127
+ * Returns node type.
128
+ *
129
+ * @returns Node type.
130
+ */
131
+ public get nodeType(): number {
132
+ return this[PropertySymbol.nodeType];
133
+ }
134
+
96
135
  /**
97
136
  * Get child nodes.
98
137
  *
@@ -153,10 +192,12 @@ export default class Node extends EventTarget implements INode {
153
192
  * @returns Node.
154
193
  */
155
194
  public get previousSibling(): INode {
156
- if (this.parentNode) {
157
- const index = (<Node>this.parentNode)[PropertySymbol.childNodes].indexOf(this);
195
+ if (this[PropertySymbol.parentNode]) {
196
+ const index = (<Node>this[PropertySymbol.parentNode])[PropertySymbol.childNodes].indexOf(
197
+ this
198
+ );
158
199
  if (index > 0) {
159
- return (<Node>this.parentNode)[PropertySymbol.childNodes][index - 1];
200
+ return (<Node>this[PropertySymbol.parentNode])[PropertySymbol.childNodes][index - 1];
160
201
  }
161
202
  }
162
203
  return null;
@@ -168,10 +209,15 @@ export default class Node extends EventTarget implements INode {
168
209
  * @returns Node.
169
210
  */
170
211
  public get nextSibling(): INode {
171
- if (this.parentNode) {
172
- const index = (<Node>this.parentNode)[PropertySymbol.childNodes].indexOf(this);
173
- if (index > -1 && index + 1 < (<Node>this.parentNode)[PropertySymbol.childNodes].length) {
174
- return (<Node>this.parentNode)[PropertySymbol.childNodes][index + 1];
212
+ if (this[PropertySymbol.parentNode]) {
213
+ const index = (<Node>this[PropertySymbol.parentNode])[PropertySymbol.childNodes].indexOf(
214
+ this
215
+ );
216
+ if (
217
+ index > -1 &&
218
+ index + 1 < (<Node>this[PropertySymbol.parentNode])[PropertySymbol.childNodes].length
219
+ ) {
220
+ return (<Node>this[PropertySymbol.parentNode])[PropertySymbol.childNodes][index + 1];
175
221
  }
176
222
  }
177
223
  return null;
@@ -206,10 +252,10 @@ export default class Node extends EventTarget implements INode {
206
252
  *
207
253
  * @returns Element.
208
254
  */
209
- public get parentElement(): IElement {
210
- let parent = this.parentNode;
211
- while (parent && parent.nodeType !== NodeTypeEnum.elementNode) {
212
- parent = parent.parentNode;
255
+ public get parentElement(): IElement | null {
256
+ let parent = this[PropertySymbol.parentNode];
257
+ while (parent && parent[PropertySymbol.nodeType] !== NodeTypeEnum.elementNode) {
258
+ parent = parent[PropertySymbol.parentNode];
213
259
  }
214
260
  return <IElement>parent;
215
261
  }
@@ -220,11 +266,11 @@ export default class Node extends EventTarget implements INode {
220
266
  * @returns Base URI.
221
267
  */
222
268
  public get baseURI(): string {
223
- const base = <IHTMLBaseElement>this.ownerDocument.querySelector('base');
269
+ const base = <IHTMLBaseElement>this[PropertySymbol.ownerDocument].querySelector('base');
224
270
  if (base) {
225
271
  return base.href;
226
272
  }
227
- return this.ownerDocument[PropertySymbol.defaultView].location.href;
273
+ return this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].location.href;
228
274
  }
229
275
 
230
276
  /**
@@ -264,7 +310,7 @@ export default class Node extends EventTarget implements INode {
264
310
  * @returns Node.
265
311
  */
266
312
  public getRootNode(options?: { composed: boolean }): INode {
267
- if (!this.isConnected) {
313
+ if (!this[PropertySymbol.isConnected]) {
268
314
  return this;
269
315
  }
270
316
 
@@ -272,7 +318,7 @@ export default class Node extends EventTarget implements INode {
272
318
  return this[PropertySymbol.rootNode];
273
319
  }
274
320
 
275
- return this.ownerDocument;
321
+ return this[PropertySymbol.ownerDocument];
276
322
  }
277
323
 
278
324
  /**
@@ -282,19 +328,22 @@ export default class Node extends EventTarget implements INode {
282
328
  * @returns Cloned node.
283
329
  */
284
330
  public cloneNode(deep = false): INode {
285
- const clone = NodeFactory.createNode<Node>(this.ownerDocument, <typeof Node>this.constructor);
331
+ const clone = NodeFactory.createNode<Node>(
332
+ this[PropertySymbol.ownerDocument],
333
+ <typeof Node>this.constructor
334
+ );
286
335
 
287
336
  // Document has childNodes directly when it is created
288
337
  if (clone[PropertySymbol.childNodes].length) {
289
338
  for (const node of clone[PropertySymbol.childNodes].slice()) {
290
- node.parentNode.removeChild(node);
339
+ node[PropertySymbol.parentNode].removeChild(node);
291
340
  }
292
341
  }
293
342
 
294
343
  if (deep) {
295
344
  for (const childNode of this[PropertySymbol.childNodes]) {
296
345
  const childClone = childNode.cloneNode(true);
297
- (<Node>childClone.parentNode) = clone;
346
+ childClone[PropertySymbol.parentNode] = clone;
298
347
  clone[PropertySymbol.childNodes].push(childClone);
299
348
  }
300
349
  }
@@ -400,14 +449,14 @@ export default class Node extends EventTarget implements INode {
400
449
  * @param parentNode Parent node.
401
450
  */
402
451
  public [PropertySymbol.connectToNode](parentNode: INode = null): void {
403
- const isConnected = !!parentNode && parentNode.isConnected;
452
+ const isConnected = !!parentNode && parentNode[PropertySymbol.isConnected];
404
453
  const formNode = (<Node>this)[PropertySymbol.formNode];
405
454
  const selectNode = (<Node>this)[PropertySymbol.selectNode];
406
455
  const textAreaNode = (<Node>this)[PropertySymbol.textAreaNode];
407
456
 
408
- if (this.nodeType !== NodeTypeEnum.documentFragmentNode) {
409
- (<INode>this.parentNode) = parentNode;
410
- (<Node>this)[PropertySymbol.rootNode] =
457
+ if (this[PropertySymbol.nodeType] !== NodeTypeEnum.documentFragmentNode) {
458
+ this[PropertySymbol.parentNode] = parentNode;
459
+ this[PropertySymbol.rootNode] =
411
460
  isConnected && parentNode ? (<Node>parentNode)[PropertySymbol.rootNode] : null;
412
461
 
413
462
  if (this['tagName'] !== 'FORM') {
@@ -429,12 +478,12 @@ export default class Node extends EventTarget implements INode {
429
478
  }
430
479
  }
431
480
 
432
- if (this.isConnected !== isConnected) {
433
- (<boolean>this.isConnected) = isConnected;
481
+ if (this[PropertySymbol.isConnected] !== isConnected) {
482
+ this[PropertySymbol.isConnected] = isConnected;
434
483
 
435
484
  if (!isConnected) {
436
- if (this.ownerDocument[PropertySymbol.activeElement] === this) {
437
- this.ownerDocument[PropertySymbol.activeElement] = null;
485
+ if (this[PropertySymbol.ownerDocument][PropertySymbol.activeElement] === this) {
486
+ this[PropertySymbol.ownerDocument][PropertySymbol.activeElement] = null;
438
487
  }
439
488
  }
440
489
 
@@ -493,18 +542,18 @@ export default class Node extends EventTarget implements INode {
493
542
  /**
494
543
  * 4. If node1 is an attribute, then set attr1 to node1 and node1 to attr1’s element.
495
544
  */
496
- if (node1.nodeType === Node.ATTRIBUTE_NODE) {
545
+ if (node1[PropertySymbol.nodeType] === NodeTypeEnum.attributeNode) {
497
546
  attr1 = node1;
498
- node1 = (<IAttr>attr1).ownerElement;
547
+ node1 = (<IAttr>attr1)[PropertySymbol.ownerElement];
499
548
  }
500
549
 
501
550
  /**
502
551
  * 5. If node2 is an attribute, then:
503
552
  * 5.1. Set attr2 to node2 and node2 to attr2’s element.
504
553
  */
505
- if (node2.nodeType === Node.ATTRIBUTE_NODE) {
554
+ if (node2[PropertySymbol.nodeType] === NodeTypeEnum.attributeNode) {
506
555
  attr2 = node2;
507
- node2 = (<IAttr>attr2).ownerElement;
556
+ node2 = (<IAttr>attr2)[PropertySymbol.ownerElement];
508
557
 
509
558
  /**
510
559
  * 5.2. If attr1 and node1 are non-null, and node2 is node1, then:
@@ -513,7 +562,7 @@ export default class Node extends EventTarget implements INode {
513
562
  /**
514
563
  * 5.2.1. For each attr in node2’s attribute list:
515
564
  */
516
- for (const attr of Object.values((<IElement>node2).attributes)) {
565
+ for (const attr of Object.values((<IElement>node2)[PropertySymbol.attributes])) {
517
566
  /**
518
567
  * 5.2.1.1. If attr equals attr1, then return the result of adding DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC and DOCUMENT_POSITION_PRECEDING.
519
568
  */
@@ -547,7 +596,7 @@ export default class Node extends EventTarget implements INode {
547
596
  }
548
597
 
549
598
  node2Ancestors.push(node2Ancestor);
550
- node2Ancestor = node2Ancestor.parentNode;
599
+ node2Ancestor = node2Ancestor[PropertySymbol.parentNode];
551
600
  }
552
601
 
553
602
  const node1Ancestors: INode[] = [];
@@ -562,7 +611,7 @@ export default class Node extends EventTarget implements INode {
562
611
  }
563
612
 
564
613
  node1Ancestors.push(node1Ancestor);
565
- node1Ancestor = node1Ancestor.parentNode;
614
+ node1Ancestor = node1Ancestor[PropertySymbol.parentNode];
566
615
  }
567
616
 
568
617
  const reverseArrayIndex = (array: INode[], reverseIndex: number): INode => {
@@ -678,3 +727,27 @@ export default class Node extends EventTarget implements INode {
678
727
  return this === node;
679
728
  }
680
729
  }
730
+
731
+ // According to the spec, these properties should be on the prototype.
732
+ (<NodeTypeEnum>Node.prototype.ELEMENT_NODE) = NodeTypeEnum.elementNode;
733
+ (<NodeTypeEnum>Node.prototype.ATTRIBUTE_NODE) = NodeTypeEnum.attributeNode;
734
+
735
+ (<NodeTypeEnum>Node.prototype.TEXT_NODE) = NodeTypeEnum.textNode;
736
+ (<NodeTypeEnum>Node.prototype.CDATA_SECTION_NODE) = NodeTypeEnum.cdataSectionNode;
737
+ (<NodeTypeEnum>Node.prototype.COMMENT_NODE) = NodeTypeEnum.commentNode;
738
+ (<NodeTypeEnum>Node.prototype.DOCUMENT_NODE) = NodeTypeEnum.documentNode;
739
+ (<NodeTypeEnum>Node.prototype.DOCUMENT_TYPE_NODE) = NodeTypeEnum.documentTypeNode;
740
+ (<NodeTypeEnum>Node.prototype.DOCUMENT_FRAGMENT_NODE) = NodeTypeEnum.documentFragmentNode;
741
+ (<NodeTypeEnum>Node.prototype.PROCESSING_INSTRUCTION_NODE) = NodeTypeEnum.processingInstructionNode;
742
+ (<NodeDocumentPositionEnum>Node.prototype.DOCUMENT_POSITION_CONTAINED_BY) =
743
+ NodeDocumentPositionEnum.containedBy;
744
+ (<NodeDocumentPositionEnum>Node.prototype.DOCUMENT_POSITION_CONTAINS) =
745
+ NodeDocumentPositionEnum.contains;
746
+ (<NodeDocumentPositionEnum>Node.prototype.DOCUMENT_POSITION_DISCONNECTED) =
747
+ NodeDocumentPositionEnum.disconnect;
748
+ (<NodeDocumentPositionEnum>Node.prototype.DOCUMENT_POSITION_FOLLOWING) =
749
+ NodeDocumentPositionEnum.following;
750
+ (<NodeDocumentPositionEnum>Node.prototype.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC) =
751
+ NodeDocumentPositionEnum.implementationSpecific;
752
+ (<NodeDocumentPositionEnum>Node.prototype.DOCUMENT_POSITION_PRECEDING) =
753
+ NodeDocumentPositionEnum.preceding;
@@ -47,7 +47,7 @@ export default class NodeUtility {
47
47
 
48
48
  // If the type is DocumentFragment, then the child nodes of if it should be moved instead of the actual node.
49
49
  // See: https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
50
- if (node.nodeType === NodeTypeEnum.documentFragmentNode) {
50
+ if (node[PropertySymbol.nodeType] === NodeTypeEnum.documentFragmentNode) {
51
51
  for (const child of (<Node>node)[PropertySymbol.childNodes].slice()) {
52
52
  ancestorNode.appendChild(child);
53
53
  }
@@ -55,15 +55,17 @@ export default class NodeUtility {
55
55
  }
56
56
 
57
57
  // Remove the node from its previous parent if it has any.
58
- if (node.parentNode) {
59
- const index = (<Node>node.parentNode)[PropertySymbol.childNodes].indexOf(node);
58
+ if (node[PropertySymbol.parentNode]) {
59
+ const index = (<Node>node[PropertySymbol.parentNode])[PropertySymbol.childNodes].indexOf(
60
+ node
61
+ );
60
62
  if (index !== -1) {
61
- (<Node>node.parentNode)[PropertySymbol.childNodes].splice(index, 1);
63
+ (<Node>node[PropertySymbol.parentNode])[PropertySymbol.childNodes].splice(index, 1);
62
64
  }
63
65
  }
64
66
 
65
- if (ancestorNode.isConnected) {
66
- (ancestorNode.ownerDocument || this)[PropertySymbol.cacheID]++;
67
+ if (ancestorNode[PropertySymbol.isConnected]) {
68
+ (ancestorNode[PropertySymbol.ownerDocument] || this)[PropertySymbol.cacheID]++;
67
69
  }
68
70
 
69
71
  (<Node>ancestorNode)[PropertySymbol.childNodes].push(node);
@@ -105,8 +107,8 @@ export default class NodeUtility {
105
107
  throw new DOMException('Failed to remove node. Node is not child of parent.');
106
108
  }
107
109
 
108
- if (ancestorNode.isConnected) {
109
- (ancestorNode.ownerDocument || this)[PropertySymbol.cacheID]++;
110
+ if (ancestorNode[PropertySymbol.isConnected]) {
111
+ (ancestorNode[PropertySymbol.ownerDocument] || this)[PropertySymbol.cacheID]++;
110
112
  }
111
113
 
112
114
  (<Node>ancestorNode)[PropertySymbol.childNodes].splice(index, 1);
@@ -162,7 +164,7 @@ export default class NodeUtility {
162
164
 
163
165
  // If the type is DocumentFragment, then the child nodes of if it should be moved instead of the actual node.
164
166
  // See: https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
165
- if (newNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
167
+ if (newNode[PropertySymbol.nodeType] === NodeTypeEnum.documentFragmentNode) {
166
168
  for (const child of (<Node>newNode)[PropertySymbol.childNodes].slice()) {
167
169
  ancestorNode.insertBefore(child, referenceNode);
168
170
  }
@@ -182,14 +184,16 @@ export default class NodeUtility {
182
184
  );
183
185
  }
184
186
 
185
- if (ancestorNode.isConnected) {
186
- (ancestorNode.ownerDocument || this)[PropertySymbol.cacheID]++;
187
+ if (ancestorNode[PropertySymbol.isConnected]) {
188
+ (ancestorNode[PropertySymbol.ownerDocument] || this)[PropertySymbol.cacheID]++;
187
189
  }
188
190
 
189
- if (newNode.parentNode) {
190
- const index = (<Node>newNode.parentNode)[PropertySymbol.childNodes].indexOf(newNode);
191
+ if (newNode[PropertySymbol.parentNode]) {
192
+ const index = (<Node>newNode[PropertySymbol.parentNode])[PropertySymbol.childNodes].indexOf(
193
+ newNode
194
+ );
191
195
  if (index !== -1) {
192
- (<Node>newNode.parentNode)[PropertySymbol.childNodes].splice(index, 1);
196
+ (<Node>newNode[PropertySymbol.parentNode])[PropertySymbol.childNodes].splice(index, 1);
193
197
  }
194
198
  }
195
199
 
@@ -229,7 +233,7 @@ export default class NodeUtility {
229
233
  * @returns "true" if the node is a text node.
230
234
  */
231
235
  public static isTextNode(node: INode | null): node is IText {
232
- return node?.nodeType === NodeTypeEnum.textNode;
236
+ return node?.[PropertySymbol.nodeType] === NodeTypeEnum.textNode;
233
237
  }
234
238
 
235
239
  /**
@@ -261,27 +265,30 @@ export default class NodeUtility {
261
265
  return false;
262
266
  }
263
267
 
264
- if (includeShadowRoots && referenceNode.isConnected !== ancestorNode.isConnected) {
268
+ if (
269
+ includeShadowRoots &&
270
+ referenceNode[PropertySymbol.isConnected] !== ancestorNode[PropertySymbol.isConnected]
271
+ ) {
265
272
  return false;
266
273
  }
267
274
 
268
275
  if (
269
276
  includeShadowRoots &&
270
- ancestorNode === referenceNode.ownerDocument &&
271
- referenceNode.isConnected
277
+ ancestorNode === referenceNode[PropertySymbol.ownerDocument] &&
278
+ referenceNode[PropertySymbol.isConnected]
272
279
  ) {
273
280
  return true;
274
281
  }
275
282
 
276
- let parent: INode = referenceNode.parentNode;
283
+ let parent: INode = referenceNode[PropertySymbol.parentNode];
277
284
 
278
285
  while (parent) {
279
286
  if (ancestorNode === parent) {
280
287
  return true;
281
288
  }
282
289
 
283
- parent = parent.parentNode
284
- ? parent.parentNode
290
+ parent = parent[PropertySymbol.parentNode]
291
+ ? parent[PropertySymbol.parentNode]
285
292
  : includeShadowRoots && (<IShadowRoot>parent).host
286
293
  ? (<IShadowRoot>parent).host
287
294
  : null;
@@ -330,7 +337,7 @@ export default class NodeUtility {
330
337
  * @returns Node length.
331
338
  */
332
339
  public static getNodeLength(node: INode): number {
333
- switch (node.nodeType) {
340
+ switch (node[PropertySymbol.nodeType]) {
334
341
  case NodeTypeEnum.documentTypeNode:
335
342
  return 0;
336
343
 
@@ -374,7 +381,7 @@ export default class NodeUtility {
374
381
  return nextSibling;
375
382
  }
376
383
 
377
- current = current.parentNode;
384
+ current = current[PropertySymbol.parentNode];
378
385
  }
379
386
 
380
387
  return null;
@@ -388,7 +395,7 @@ export default class NodeUtility {
388
395
  */
389
396
  public static nextDescendantNode(node: INode): INode {
390
397
  while (node && !node.nextSibling) {
391
- node = node.parentNode;
398
+ node = node[PropertySymbol.parentNode];
392
399
  }
393
400
 
394
401
  if (!node) {
@@ -405,13 +412,13 @@ export default class NodeUtility {
405
412
  * @param elementB
406
413
  */
407
414
  public static attributeListsEqual(elementA: IElement, elementB: IElement): boolean {
408
- for (let i = 0, max = elementA.attributes.length; i < max; i++) {
409
- const attributeA = elementA.attributes[i];
410
- const attributeB = elementB.attributes.getNamedItemNS(
411
- attributeA.namespaceURI,
415
+ for (let i = 0, max = elementA[PropertySymbol.attributes].length; i < max; i++) {
416
+ const attributeA = elementA[PropertySymbol.attributes][i];
417
+ const attributeB = elementB[PropertySymbol.attributes].getNamedItemNS(
418
+ attributeA[PropertySymbol.namespaceURI],
412
419
  attributeA.localName
413
420
  );
414
- if (!attributeB || attributeB.value !== attributeA.value) {
421
+ if (!attributeB || attributeB[PropertySymbol.value] !== attributeA[PropertySymbol.value]) {
415
422
  return false;
416
423
  }
417
424
  }
@@ -426,11 +433,11 @@ export default class NodeUtility {
426
433
  * @param nodeB Node B.
427
434
  */
428
435
  public static isEqualNode(nodeA: INode, nodeB: INode): boolean {
429
- if (nodeA.nodeType !== nodeB.nodeType) {
436
+ if (nodeA[PropertySymbol.nodeType] !== nodeB[PropertySymbol.nodeType]) {
430
437
  return false;
431
438
  }
432
439
 
433
- switch (nodeA.nodeType) {
440
+ switch (nodeA[PropertySymbol.nodeType]) {
434
441
  case NodeTypeEnum.documentTypeNode:
435
442
  const documentTypeA = <IDocumentType>nodeA;
436
443
  const documentTypeB = <IDocumentType>nodeB;
@@ -448,10 +455,10 @@ export default class NodeUtility {
448
455
  const elementB = <IElement>nodeB;
449
456
 
450
457
  if (
451
- elementA.namespaceURI !== elementB.namespaceURI ||
452
- elementA.prefix !== elementB.prefix ||
458
+ elementA[PropertySymbol.namespaceURI] !== elementB[PropertySymbol.namespaceURI] ||
459
+ elementA[PropertySymbol.prefix] !== elementB[PropertySymbol.prefix] ||
453
460
  elementA.localName !== elementB.localName ||
454
- elementA.attributes.length !== elementB.attributes.length
461
+ elementA[PropertySymbol.attributes].length !== elementB[PropertySymbol.attributes].length
455
462
  ) {
456
463
  return false;
457
464
  }
@@ -461,9 +468,9 @@ export default class NodeUtility {
461
468
  const attributeB = <IAttr>nodeB;
462
469
 
463
470
  if (
464
- attributeA.namespaceURI !== attributeB.namespaceURI ||
471
+ attributeA[PropertySymbol.namespaceURI] !== attributeB[PropertySymbol.namespaceURI] ||
465
472
  attributeA.localName !== attributeB.localName ||
466
- attributeA.value !== attributeB.value
473
+ attributeA[PropertySymbol.value] !== attributeB[PropertySymbol.value]
467
474
  ) {
468
475
  return false;
469
476
  }
@@ -492,7 +499,7 @@ export default class NodeUtility {
492
499
  }
493
500
 
494
501
  if (
495
- nodeA.nodeType === NodeTypeEnum.elementNode &&
502
+ nodeA[PropertySymbol.nodeType] === NodeTypeEnum.elementNode &&
496
503
  !NodeUtility.attributeListsEqual(<IElement>nodeA, <IElement>nodeB)
497
504
  ) {
498
505
  return false;
@@ -24,7 +24,9 @@ export default class ParentNodeUtility {
24
24
  ): void {
25
25
  for (const node of nodes) {
26
26
  if (typeof node === 'string') {
27
- XMLParser.parse(<IDocument>parentNode.ownerDocument, node, { rootNode: parentNode });
27
+ XMLParser.parse(<IDocument>parentNode[PropertySymbol.ownerDocument], node, {
28
+ rootNode: parentNode
29
+ });
28
30
  } else {
29
31
  parentNode.appendChild(node);
30
32
  }
@@ -45,7 +47,7 @@ export default class ParentNodeUtility {
45
47
  for (const node of nodes) {
46
48
  if (typeof node === 'string') {
47
49
  const newChildNodes = (<DocumentFragment>(
48
- XMLParser.parse(<IDocument>parentNode.ownerDocument, node)
50
+ XMLParser.parse(<IDocument>parentNode[PropertySymbol.ownerDocument], node)
49
51
  ))[PropertySymbol.childNodes].slice();
50
52
  for (const newChildNode of newChildNodes) {
51
53
  parentNode.insertBefore(newChildNode, firstChild);
@@ -113,7 +115,7 @@ export default class ParentNodeUtility {
113
115
  let matches = new HTMLCollection<IElement>();
114
116
 
115
117
  for (const child of (<DocumentFragment>parentNode)[PropertySymbol.children]) {
116
- if (includeAll || child.tagName === upperTagName) {
118
+ if (includeAll || child[PropertySymbol.tagName] === upperTagName) {
117
119
  matches.push(child);
118
120
  }
119
121
  matches = <HTMLCollection<IElement>>(
@@ -142,7 +144,10 @@ export default class ParentNodeUtility {
142
144
  let matches = new HTMLCollection<IElement>();
143
145
 
144
146
  for (const child of (<DocumentFragment>parentNode)[PropertySymbol.children]) {
145
- if ((includeAll || child.tagName === upperTagName) && child.namespaceURI === namespaceURI) {
147
+ if (
148
+ (includeAll || child[PropertySymbol.tagName] === upperTagName) &&
149
+ child[PropertySymbol.namespaceURI] === namespaceURI
150
+ ) {
146
151
  matches.push(child);
147
152
  }
148
153
  matches = <HTMLCollection<IElement>>(
@@ -168,7 +173,7 @@ export default class ParentNodeUtility {
168
173
  const upperTagName = tagName.toUpperCase();
169
174
 
170
175
  for (const child of (<DocumentFragment>parentNode)[PropertySymbol.children]) {
171
- if (child.tagName === upperTagName) {
176
+ if (child[PropertySymbol.tagName] === upperTagName) {
172
177
  return <IElement>child;
173
178
  }
174
179
  const match = this.getElementByTagName(<IElement>child, tagName);
@@ -1,6 +1,7 @@
1
1
  import IProcessingInstruction from './IProcessingInstruction.js';
2
2
  import CharacterData from '../character-data/CharacterData.js';
3
3
  import NodeTypeEnum from '../node/NodeTypeEnum.js';
4
+ import * as PropertySymbol from '../../PropertySymbol.js';
4
5
 
5
6
  /**
6
7
  * Processing instruction node interface.
@@ -8,6 +9,15 @@ import NodeTypeEnum from '../node/NodeTypeEnum.js';
8
9
  * Reference: https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction.
9
10
  */
10
11
  export default class ProcessingInstruction extends CharacterData implements IProcessingInstruction {
11
- public readonly nodeType = NodeTypeEnum.processingInstructionNode;
12
- public target: string;
12
+ public [PropertySymbol.nodeType] = NodeTypeEnum.processingInstructionNode;
13
+ public [PropertySymbol.target]: string;
14
+
15
+ /**
16
+ * Returns target.
17
+ *
18
+ * @returns Target.
19
+ */
20
+ public get target(): string {
21
+ return this[PropertySymbol.target];
22
+ }
13
23
  }
@@ -1,6 +1,7 @@
1
1
  import IDocumentFragment from '../document-fragment/IDocumentFragment.js';
2
2
  import IElement from '../element/IElement.js';
3
3
  import Event from '../../event/Event.js';
4
+ import { CSSStyleSheet } from '../../index.js';
4
5
 
5
6
  /**
6
7
  * ShadowRoot.
@@ -9,6 +10,7 @@ export default interface IShadowRoot extends IDocumentFragment {
9
10
  mode: string;
10
11
  innerHTML: string;
11
12
  host: IElement;
13
+ adoptedStyleSheets: CSSStyleSheet[];
12
14
  readonly activeElement: IElement | null;
13
15
 
14
16
  // Events