happy-dom 13.0.7 → 13.1.1

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/browser/utilities/BrowserFrameNavigator.cjs +1 -1
  6. package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
  7. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs +17 -16
  8. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs.map +1 -1
  9. package/cjs/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  10. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs +43 -26
  11. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs.map +1 -1
  12. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  13. package/cjs/dom-implementation/DOMImplementation.cjs +6 -6
  14. package/cjs/dom-implementation/DOMImplementation.cjs.map +1 -1
  15. package/cjs/dom-parser/DOMParser.cjs +2 -2
  16. package/cjs/dom-parser/DOMParser.cjs.map +1 -1
  17. package/cjs/dom-parser/DOMParser.d.ts.map +1 -1
  18. package/cjs/dom-token-list/DOMTokenList.cjs +38 -26
  19. package/cjs/dom-token-list/DOMTokenList.cjs.map +1 -1
  20. package/cjs/dom-token-list/DOMTokenList.d.ts +6 -1
  21. package/cjs/dom-token-list/DOMTokenList.d.ts.map +1 -1
  22. package/cjs/event/Event.cjs +3 -3
  23. package/cjs/event/Event.cjs.map +1 -1
  24. package/cjs/event/EventTarget.cjs +4 -4
  25. package/cjs/event/EventTarget.cjs.map +1 -1
  26. package/cjs/fetch/Request.cjs +2 -1
  27. package/cjs/fetch/Request.cjs.map +1 -1
  28. package/cjs/fetch/Request.d.ts +4 -4
  29. package/cjs/fetch/Request.d.ts.map +1 -1
  30. package/cjs/form-data/FormData.cjs +7 -7
  31. package/cjs/form-data/FormData.cjs.map +1 -1
  32. package/cjs/mutation-observer/MutationObserver.cjs +3 -3
  33. package/cjs/mutation-observer/MutationObserver.cjs.map +1 -1
  34. package/cjs/named-node-map/NamedNodeMap.cjs +10 -8
  35. package/cjs/named-node-map/NamedNodeMap.cjs.map +1 -1
  36. package/cjs/named-node-map/NamedNodeMap.d.ts.map +1 -1
  37. package/cjs/nodes/attr/Attr.cjs +84 -15
  38. package/cjs/nodes/attr/Attr.cjs.map +1 -1
  39. package/cjs/nodes/attr/Attr.d.ts +40 -8
  40. package/cjs/nodes/attr/Attr.d.ts.map +1 -1
  41. package/cjs/nodes/character-data/CharacterData.cjs +2 -2
  42. package/cjs/nodes/character-data/CharacterData.cjs.map +1 -1
  43. package/cjs/nodes/child-node/ChildNodeUtility.cjs +8 -8
  44. package/cjs/nodes/child-node/ChildNodeUtility.cjs.map +1 -1
  45. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.cjs +27 -3
  46. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.cjs.map +1 -1
  47. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.d.ts.map +1 -1
  48. package/cjs/nodes/comment/Comment.cjs +28 -2
  49. package/cjs/nodes/comment/Comment.cjs.map +1 -1
  50. package/cjs/nodes/comment/Comment.d.ts +3 -1
  51. package/cjs/nodes/comment/Comment.d.ts.map +1 -1
  52. package/cjs/nodes/document/Document.cjs +95 -41
  53. package/cjs/nodes/document/Document.cjs.map +1 -1
  54. package/cjs/nodes/document/Document.d.ts +45 -10
  55. package/cjs/nodes/document/Document.d.ts.map +1 -1
  56. package/cjs/nodes/document/IDocument.d.ts +2 -1
  57. package/cjs/nodes/document/IDocument.d.ts.map +1 -1
  58. package/cjs/nodes/document-fragment/DocumentFragment.cjs +8 -6
  59. package/cjs/nodes/document-fragment/DocumentFragment.cjs.map +1 -1
  60. package/cjs/nodes/document-fragment/DocumentFragment.d.ts +2 -1
  61. package/cjs/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
  62. package/cjs/nodes/document-type/DocumentType.cjs +58 -7
  63. package/cjs/nodes/document-type/DocumentType.cjs.map +1 -1
  64. package/cjs/nodes/document-type/DocumentType.d.ts +24 -4
  65. package/cjs/nodes/document-type/DocumentType.d.ts.map +1 -1
  66. package/cjs/nodes/element/Dataset.cjs +14 -14
  67. package/cjs/nodes/element/Dataset.cjs.map +1 -1
  68. package/cjs/nodes/element/Dataset.d.ts +1 -1
  69. package/cjs/nodes/element/Dataset.d.ts.map +1 -1
  70. package/cjs/nodes/element/Element.cjs +142 -55
  71. package/cjs/nodes/element/Element.cjs.map +1 -1
  72. package/cjs/nodes/element/Element.d.ts +77 -11
  73. package/cjs/nodes/element/Element.d.ts.map +1 -1
  74. package/cjs/nodes/element/ElementNamedNodeMap.cjs +33 -30
  75. package/cjs/nodes/element/ElementNamedNodeMap.cjs.map +1 -1
  76. package/cjs/nodes/element/ElementNamedNodeMap.d.ts.map +1 -1
  77. package/cjs/nodes/element/ElementUtility.cjs +19 -19
  78. package/cjs/nodes/element/ElementUtility.cjs.map +1 -1
  79. package/cjs/nodes/element/ElementUtility.d.ts.map +1 -1
  80. package/cjs/nodes/element/IElement.d.ts +3 -3
  81. package/cjs/nodes/element/IElement.d.ts.map +1 -1
  82. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +6 -6
  83. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
  84. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +1 -1
  85. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  86. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs +7 -5
  87. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs.map +1 -1
  88. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -1
  89. package/cjs/nodes/html-base-element/HTMLBaseElement.cjs +25 -1
  90. package/cjs/nodes/html-base-element/HTMLBaseElement.cjs.map +1 -1
  91. package/cjs/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
  92. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +27 -8
  93. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
  94. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +16 -3
  95. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  96. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs +7 -7
  97. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs.map +1 -1
  98. package/cjs/nodes/html-dialog-element/HTMLDialogElement.cjs +44 -1
  99. package/cjs/nodes/html-dialog-element/HTMLDialogElement.cjs.map +1 -1
  100. package/cjs/nodes/html-dialog-element/HTMLDialogElement.d.ts +14 -1
  101. package/cjs/nodes/html-dialog-element/HTMLDialogElement.d.ts.map +1 -1
  102. package/cjs/nodes/html-document/HTMLDocument.cjs +25 -1
  103. package/cjs/nodes/html-document/HTMLDocument.cjs.map +1 -1
  104. package/cjs/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  105. package/cjs/nodes/html-element/HTMLElement.cjs +137 -32
  106. package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
  107. package/cjs/nodes/html-element/HTMLElement.d.ts +91 -14
  108. package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
  109. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs +4 -3
  110. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs.map +1 -1
  111. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -1
  112. package/cjs/nodes/html-element/HTMLElementUtility.cjs +12 -10
  113. package/cjs/nodes/html-element/HTMLElementUtility.cjs.map +1 -1
  114. package/cjs/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
  115. package/cjs/nodes/html-element/IHTMLElement.d.ts +3 -0
  116. package/cjs/nodes/html-element/IHTMLElement.d.ts.map +1 -1
  117. package/cjs/nodes/html-form-element/HTMLFormElement.cjs +62 -30
  118. package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
  119. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts +22 -3
  120. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  121. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +5 -5
  122. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
  123. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +1 -1
  124. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  125. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs +27 -1
  126. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs.map +1 -1
  127. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -1
  128. package/cjs/nodes/html-iframe-element/HTMLIFrameElementPageLoader.cjs +2 -2
  129. package/cjs/nodes/html-iframe-element/HTMLIFrameElementPageLoader.cjs.map +1 -1
  130. package/cjs/nodes/html-image-element/HTMLImageElement.cjs +128 -26
  131. package/cjs/nodes/html-image-element/HTMLImageElement.cjs.map +1 -1
  132. package/cjs/nodes/html-image-element/HTMLImageElement.d.ts +76 -21
  133. package/cjs/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
  134. package/cjs/nodes/html-input-element/HTMLInputElement.cjs +112 -27
  135. package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
  136. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +67 -10
  137. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  138. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs +7 -7
  139. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs.map +1 -1
  140. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +1 -1
  141. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
  142. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.cjs +26 -2
  143. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.cjs.map +1 -1
  144. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.d.ts.map +1 -1
  145. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +15 -8
  146. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
  147. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +6 -2
  148. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  149. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs +7 -6
  150. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs.map +1 -1
  151. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -1
  152. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.cjs +8 -5
  153. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.cjs.map +1 -1
  154. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.d.ts.map +1 -1
  155. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +154 -53
  156. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
  157. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +86 -12
  158. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  159. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs +4 -4
  160. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs.map +1 -1
  161. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts +1 -1
  162. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  163. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs +3 -3
  164. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs.map +1 -1
  165. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +12 -11
  166. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  167. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
  168. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  169. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs +4 -4
  170. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs.map +1 -1
  171. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.cjs +8 -8
  172. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.cjs.map +1 -1
  173. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.d.ts.map +1 -1
  174. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +63 -32
  175. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
  176. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts +30 -5
  177. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  178. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs +7 -7
  179. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs.map +1 -1
  180. package/cjs/nodes/html-style-element/HTMLStyleElement.cjs +6 -6
  181. package/cjs/nodes/html-style-element/HTMLStyleElement.cjs.map +1 -1
  182. package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts +1 -1
  183. package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
  184. package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs +27 -12
  185. package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs.map +1 -1
  186. package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts +8 -1
  187. package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
  188. package/cjs/nodes/html-template-element/IHTMLTemplateElement.d.ts +1 -1
  189. package/cjs/nodes/html-template-element/IHTMLTemplateElement.d.ts.map +1 -1
  190. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +27 -9
  191. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
  192. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +16 -3
  193. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  194. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs +7 -7
  195. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs.map +1 -1
  196. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs +24 -17
  197. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs.map +1 -1
  198. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  199. package/cjs/nodes/node/INode.d.ts +2 -2
  200. package/cjs/nodes/node/INode.d.ts.map +1 -1
  201. package/cjs/nodes/node/Node.cjs +95 -56
  202. package/cjs/nodes/node/Node.cjs.map +1 -1
  203. package/cjs/nodes/node/Node.d.ts +44 -20
  204. package/cjs/nodes/node/Node.d.ts.map +1 -1
  205. package/cjs/nodes/node/NodeUtility.cjs +37 -37
  206. package/cjs/nodes/node/NodeUtility.cjs.map +1 -1
  207. package/cjs/nodes/node/NodeUtility.d.ts.map +1 -1
  208. package/cjs/nodes/parent-node/ParentNodeUtility.cjs +8 -5
  209. package/cjs/nodes/parent-node/ParentNodeUtility.cjs.map +1 -1
  210. package/cjs/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
  211. package/cjs/nodes/processing-instruction/ProcessingInstruction.cjs +35 -1
  212. package/cjs/nodes/processing-instruction/ProcessingInstruction.cjs.map +1 -1
  213. package/cjs/nodes/processing-instruction/ProcessingInstruction.d.ts +9 -2
  214. package/cjs/nodes/processing-instruction/ProcessingInstruction.d.ts.map +1 -1
  215. package/cjs/nodes/shadow-root/IShadowRoot.d.ts +2 -0
  216. package/cjs/nodes/shadow-root/IShadowRoot.d.ts.map +1 -1
  217. package/cjs/nodes/shadow-root/ShadowRoot.cjs +44 -7
  218. package/cjs/nodes/shadow-root/ShadowRoot.cjs.map +1 -1
  219. package/cjs/nodes/shadow-root/ShadowRoot.d.ts +28 -3
  220. package/cjs/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
  221. package/cjs/nodes/svg-element/SVGElement.cjs +7 -6
  222. package/cjs/nodes/svg-element/SVGElement.cjs.map +1 -1
  223. package/cjs/nodes/svg-element/SVGElement.d.ts +2 -2
  224. package/cjs/nodes/svg-element/SVGElement.d.ts.map +1 -1
  225. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs +4 -3
  226. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs.map +1 -1
  227. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -1
  228. package/cjs/nodes/text/Text.cjs +7 -6
  229. package/cjs/nodes/text/Text.cjs.map +1 -1
  230. package/cjs/nodes/text/Text.d.ts +2 -1
  231. package/cjs/nodes/text/Text.d.ts.map +1 -1
  232. package/cjs/query-selector/QuerySelector.cjs +2 -2
  233. package/cjs/query-selector/QuerySelector.cjs.map +1 -1
  234. package/cjs/query-selector/SelectorItem.cjs +16 -16
  235. package/cjs/query-selector/SelectorItem.cjs.map +1 -1
  236. package/cjs/query-selector/SelectorItem.d.ts.map +1 -1
  237. package/cjs/range/Range.cjs +91 -79
  238. package/cjs/range/Range.cjs.map +1 -1
  239. package/cjs/range/Range.d.ts.map +1 -1
  240. package/cjs/range/RangeUtility.cjs +5 -4
  241. package/cjs/range/RangeUtility.cjs.map +1 -1
  242. package/cjs/range/RangeUtility.d.ts.map +1 -1
  243. package/cjs/selection/Selection.cjs +15 -15
  244. package/cjs/selection/Selection.cjs.map +1 -1
  245. package/cjs/tree-walker/TreeWalker.cjs +12 -6
  246. package/cjs/tree-walker/TreeWalker.cjs.map +1 -1
  247. package/cjs/tree-walker/TreeWalker.d.ts.map +1 -1
  248. package/cjs/validity-state/ValidityState.cjs +1 -1
  249. package/cjs/validity-state/ValidityState.cjs.map +1 -1
  250. package/cjs/version.cjs +1 -1
  251. package/cjs/window/BrowserWindow.cjs +2 -2
  252. package/cjs/window/BrowserWindow.cjs.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/browser/utilities/BrowserFrameNavigator.js +1 -1
  270. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  271. package/lib/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  272. package/lib/css/declaration/AbstractCSSStyleDeclaration.js +17 -16
  273. package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
  274. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  275. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +43 -26
  276. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
  277. package/lib/dom-implementation/DOMImplementation.js +6 -6
  278. package/lib/dom-implementation/DOMImplementation.js.map +1 -1
  279. package/lib/dom-parser/DOMParser.d.ts.map +1 -1
  280. package/lib/dom-parser/DOMParser.js +2 -2
  281. package/lib/dom-parser/DOMParser.js.map +1 -1
  282. package/lib/dom-token-list/DOMTokenList.d.ts +6 -1
  283. package/lib/dom-token-list/DOMTokenList.d.ts.map +1 -1
  284. package/lib/dom-token-list/DOMTokenList.js +40 -27
  285. package/lib/dom-token-list/DOMTokenList.js.map +1 -1
  286. package/lib/event/Event.js +3 -3
  287. package/lib/event/Event.js.map +1 -1
  288. package/lib/event/EventTarget.js +4 -4
  289. package/lib/event/EventTarget.js.map +1 -1
  290. package/lib/fetch/Request.d.ts +4 -4
  291. package/lib/fetch/Request.d.ts.map +1 -1
  292. package/lib/fetch/Request.js +2 -1
  293. package/lib/fetch/Request.js.map +1 -1
  294. package/lib/form-data/FormData.js +7 -7
  295. package/lib/form-data/FormData.js.map +1 -1
  296. package/lib/mutation-observer/MutationObserver.js +3 -3
  297. package/lib/mutation-observer/MutationObserver.js.map +1 -1
  298. package/lib/named-node-map/NamedNodeMap.d.ts.map +1 -1
  299. package/lib/named-node-map/NamedNodeMap.js +10 -8
  300. package/lib/named-node-map/NamedNodeMap.js.map +1 -1
  301. package/lib/nodes/attr/Attr.d.ts +40 -8
  302. package/lib/nodes/attr/Attr.d.ts.map +1 -1
  303. package/lib/nodes/attr/Attr.js +63 -16
  304. package/lib/nodes/attr/Attr.js.map +1 -1
  305. package/lib/nodes/character-data/CharacterData.js +2 -2
  306. package/lib/nodes/character-data/CharacterData.js.map +1 -1
  307. package/lib/nodes/child-node/ChildNodeUtility.js +8 -8
  308. package/lib/nodes/child-node/ChildNodeUtility.js.map +1 -1
  309. package/lib/nodes/child-node/NonDocumentChildNodeUtility.d.ts.map +1 -1
  310. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js +4 -3
  311. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js.map +1 -1
  312. package/lib/nodes/comment/Comment.d.ts +3 -1
  313. package/lib/nodes/comment/Comment.d.ts.map +1 -1
  314. package/lib/nodes/comment/Comment.js +7 -3
  315. package/lib/nodes/comment/Comment.js.map +1 -1
  316. package/lib/nodes/document/Document.d.ts +45 -10
  317. package/lib/nodes/document/Document.d.ts.map +1 -1
  318. package/lib/nodes/document/Document.js +95 -41
  319. package/lib/nodes/document/Document.js.map +1 -1
  320. package/lib/nodes/document/IDocument.d.ts +2 -1
  321. package/lib/nodes/document/IDocument.d.ts.map +1 -1
  322. package/lib/nodes/document-fragment/DocumentFragment.d.ts +2 -1
  323. package/lib/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
  324. package/lib/nodes/document-fragment/DocumentFragment.js +8 -6
  325. package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
  326. package/lib/nodes/document-type/DocumentType.d.ts +24 -4
  327. package/lib/nodes/document-type/DocumentType.d.ts.map +1 -1
  328. package/lib/nodes/document-type/DocumentType.js +37 -8
  329. package/lib/nodes/document-type/DocumentType.js.map +1 -1
  330. package/lib/nodes/element/Dataset.d.ts +1 -1
  331. package/lib/nodes/element/Dataset.d.ts.map +1 -1
  332. package/lib/nodes/element/Dataset.js +14 -14
  333. package/lib/nodes/element/Dataset.js.map +1 -1
  334. package/lib/nodes/element/Element.d.ts +77 -11
  335. package/lib/nodes/element/Element.d.ts.map +1 -1
  336. package/lib/nodes/element/Element.js +142 -55
  337. package/lib/nodes/element/Element.js.map +1 -1
  338. package/lib/nodes/element/ElementNamedNodeMap.d.ts.map +1 -1
  339. package/lib/nodes/element/ElementNamedNodeMap.js +33 -30
  340. package/lib/nodes/element/ElementNamedNodeMap.js.map +1 -1
  341. package/lib/nodes/element/ElementUtility.d.ts.map +1 -1
  342. package/lib/nodes/element/ElementUtility.js +19 -19
  343. package/lib/nodes/element/ElementUtility.js.map +1 -1
  344. package/lib/nodes/element/IElement.d.ts +3 -3
  345. package/lib/nodes/element/IElement.d.ts.map +1 -1
  346. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +1 -1
  347. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  348. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +6 -6
  349. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  350. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -1
  351. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js +7 -5
  352. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js.map +1 -1
  353. package/lib/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
  354. package/lib/nodes/html-base-element/HTMLBaseElement.js +2 -1
  355. package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -1
  356. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +16 -3
  357. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  358. package/lib/nodes/html-button-element/HTMLButtonElement.js +27 -8
  359. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  360. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js +7 -7
  361. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js.map +1 -1
  362. package/lib/nodes/html-dialog-element/HTMLDialogElement.d.ts +14 -1
  363. package/lib/nodes/html-dialog-element/HTMLDialogElement.d.ts.map +1 -1
  364. package/lib/nodes/html-dialog-element/HTMLDialogElement.js +23 -2
  365. package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -1
  366. package/lib/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  367. package/lib/nodes/html-document/HTMLDocument.js +2 -1
  368. package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
  369. package/lib/nodes/html-element/HTMLElement.d.ts +91 -14
  370. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  371. package/lib/nodes/html-element/HTMLElement.js +137 -32
  372. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  373. package/lib/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -1
  374. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js +4 -3
  375. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js.map +1 -1
  376. package/lib/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
  377. package/lib/nodes/html-element/HTMLElementUtility.js +12 -10
  378. package/lib/nodes/html-element/HTMLElementUtility.js.map +1 -1
  379. package/lib/nodes/html-element/IHTMLElement.d.ts +3 -0
  380. package/lib/nodes/html-element/IHTMLElement.d.ts.map +1 -1
  381. package/lib/nodes/html-form-element/HTMLFormElement.d.ts +22 -3
  382. package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  383. package/lib/nodes/html-form-element/HTMLFormElement.js +62 -30
  384. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  385. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +1 -1
  386. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  387. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +5 -5
  388. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  389. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -1
  390. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js +4 -1
  391. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js.map +1 -1
  392. package/lib/nodes/html-iframe-element/HTMLIFrameElementPageLoader.js +2 -2
  393. package/lib/nodes/html-iframe-element/HTMLIFrameElementPageLoader.js.map +1 -1
  394. package/lib/nodes/html-image-element/HTMLImageElement.d.ts +76 -21
  395. package/lib/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
  396. package/lib/nodes/html-image-element/HTMLImageElement.js +107 -27
  397. package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
  398. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +67 -10
  399. package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  400. package/lib/nodes/html-input-element/HTMLInputElement.js +112 -27
  401. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  402. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js +7 -7
  403. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js.map +1 -1
  404. package/lib/nodes/html-label-element/HTMLLabelElement.js +1 -1
  405. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  406. package/lib/nodes/html-label-element/HTMLLabelElementUtility.d.ts.map +1 -1
  407. package/lib/nodes/html-label-element/HTMLLabelElementUtility.js +3 -2
  408. package/lib/nodes/html-label-element/HTMLLabelElementUtility.js.map +1 -1
  409. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +6 -2
  410. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  411. package/lib/nodes/html-link-element/HTMLLinkElement.js +15 -8
  412. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  413. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -1
  414. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js +7 -6
  415. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js.map +1 -1
  416. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.d.ts.map +1 -1
  417. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.js +8 -5
  418. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.js.map +1 -1
  419. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +86 -12
  420. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  421. package/lib/nodes/html-media-element/HTMLMediaElement.js +132 -54
  422. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  423. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +1 -1
  424. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  425. package/lib/nodes/html-option-element/HTMLOptionElement.js +4 -4
  426. package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
  427. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js +3 -3
  428. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js.map +1 -1
  429. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
  430. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  431. package/lib/nodes/html-script-element/HTMLScriptElement.js +12 -11
  432. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  433. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js +4 -4
  434. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js.map +1 -1
  435. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.d.ts.map +1 -1
  436. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.js +8 -8
  437. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.js.map +1 -1
  438. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +30 -5
  439. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  440. package/lib/nodes/html-select-element/HTMLSelectElement.js +63 -32
  441. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  442. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js +7 -7
  443. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js.map +1 -1
  444. package/lib/nodes/html-style-element/HTMLStyleElement.d.ts +1 -1
  445. package/lib/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
  446. package/lib/nodes/html-style-element/HTMLStyleElement.js +6 -6
  447. package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
  448. package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts +8 -1
  449. package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
  450. package/lib/nodes/html-template-element/HTMLTemplateElement.js +29 -13
  451. package/lib/nodes/html-template-element/HTMLTemplateElement.js.map +1 -1
  452. package/lib/nodes/html-template-element/IHTMLTemplateElement.d.ts +1 -1
  453. package/lib/nodes/html-template-element/IHTMLTemplateElement.d.ts.map +1 -1
  454. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +16 -3
  455. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  456. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +27 -9
  457. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  458. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js +7 -7
  459. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js.map +1 -1
  460. package/lib/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  461. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js +24 -17
  462. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js.map +1 -1
  463. package/lib/nodes/node/INode.d.ts +2 -2
  464. package/lib/nodes/node/INode.d.ts.map +1 -1
  465. package/lib/nodes/node/Node.d.ts +44 -20
  466. package/lib/nodes/node/Node.d.ts.map +1 -1
  467. package/lib/nodes/node/Node.js +95 -56
  468. package/lib/nodes/node/Node.js.map +1 -1
  469. package/lib/nodes/node/NodeUtility.d.ts.map +1 -1
  470. package/lib/nodes/node/NodeUtility.js +37 -37
  471. package/lib/nodes/node/NodeUtility.js.map +1 -1
  472. package/lib/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
  473. package/lib/nodes/parent-node/ParentNodeUtility.js +8 -5
  474. package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
  475. package/lib/nodes/processing-instruction/ProcessingInstruction.d.ts +9 -2
  476. package/lib/nodes/processing-instruction/ProcessingInstruction.d.ts.map +1 -1
  477. package/lib/nodes/processing-instruction/ProcessingInstruction.js +14 -2
  478. package/lib/nodes/processing-instruction/ProcessingInstruction.js.map +1 -1
  479. package/lib/nodes/shadow-root/IShadowRoot.d.ts +2 -0
  480. package/lib/nodes/shadow-root/IShadowRoot.d.ts.map +1 -1
  481. package/lib/nodes/shadow-root/ShadowRoot.d.ts +28 -3
  482. package/lib/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
  483. package/lib/nodes/shadow-root/ShadowRoot.js +46 -8
  484. package/lib/nodes/shadow-root/ShadowRoot.js.map +1 -1
  485. package/lib/nodes/svg-element/SVGElement.d.ts +2 -2
  486. package/lib/nodes/svg-element/SVGElement.d.ts.map +1 -1
  487. package/lib/nodes/svg-element/SVGElement.js +7 -6
  488. package/lib/nodes/svg-element/SVGElement.js.map +1 -1
  489. package/lib/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -1
  490. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js +4 -3
  491. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js.map +1 -1
  492. package/lib/nodes/text/Text.d.ts +2 -1
  493. package/lib/nodes/text/Text.d.ts.map +1 -1
  494. package/lib/nodes/text/Text.js +7 -6
  495. package/lib/nodes/text/Text.js.map +1 -1
  496. package/lib/query-selector/QuerySelector.js +2 -2
  497. package/lib/query-selector/QuerySelector.js.map +1 -1
  498. package/lib/query-selector/SelectorItem.d.ts.map +1 -1
  499. package/lib/query-selector/SelectorItem.js +16 -16
  500. package/lib/query-selector/SelectorItem.js.map +1 -1
  501. package/lib/range/Range.d.ts.map +1 -1
  502. package/lib/range/Range.js +91 -79
  503. package/lib/range/Range.js.map +1 -1
  504. package/lib/range/RangeUtility.d.ts.map +1 -1
  505. package/lib/range/RangeUtility.js +5 -4
  506. package/lib/range/RangeUtility.js.map +1 -1
  507. package/lib/selection/Selection.js +15 -15
  508. package/lib/selection/Selection.js.map +1 -1
  509. package/lib/tree-walker/TreeWalker.d.ts.map +1 -1
  510. package/lib/tree-walker/TreeWalker.js +12 -6
  511. package/lib/tree-walker/TreeWalker.js.map +1 -1
  512. package/lib/validity-state/ValidityState.js +1 -1
  513. package/lib/validity-state/ValidityState.js.map +1 -1
  514. package/lib/version.js +1 -1
  515. package/lib/window/BrowserWindow.js +2 -2
  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/browser/utilities/BrowserFrameNavigator.ts +1 -1
  532. package/src/css/declaration/AbstractCSSStyleDeclaration.ts +17 -16
  533. package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +64 -28
  534. package/src/dom-implementation/DOMImplementation.ts +6 -6
  535. package/src/dom-parser/DOMParser.ts +2 -2
  536. package/src/dom-token-list/DOMTokenList.ts +43 -24
  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 +2 -2
  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
@@ -65,7 +65,7 @@ export default class CSSStyleDeclarationElementStyle {
65
65
  return this.getComputedElementStyle();
66
66
  }
67
67
 
68
- const cssText = this.element.attributes['style']?.value;
68
+ const cssText = this.element[PropertySymbol.attributes]['style']?.[PropertySymbol.value];
69
69
 
70
70
  if (cssText) {
71
71
  if (this.cache.propertyManager && this.cache.cssText === cssText) {
@@ -94,24 +94,25 @@ export default class CSSStyleDeclarationElementStyle {
94
94
  };
95
95
  let shadowRootElements: Array<IStyleAndElement> = [];
96
96
 
97
- if (!this.element.isConnected) {
97
+ if (!this.element[PropertySymbol.isConnected]) {
98
98
  return new CSSStyleDeclarationPropertyManager();
99
99
  }
100
100
 
101
101
  if (
102
102
  this.cache.propertyManager &&
103
- this.cache.documentCacheID === this.element.ownerDocument[PropertySymbol.cacheID]
103
+ this.cache.documentCacheID ===
104
+ this.element[PropertySymbol.ownerDocument][PropertySymbol.cacheID]
104
105
  ) {
105
106
  return this.cache.propertyManager;
106
107
  }
107
108
 
108
- this.cache.documentCacheID = this.element.ownerDocument[PropertySymbol.cacheID];
109
+ this.cache.documentCacheID = this.element[PropertySymbol.ownerDocument][PropertySymbol.cacheID];
109
110
 
110
111
  // Walks through all parent elements and stores them in an array with element and matching CSS text.
111
112
  while (styleAndElement.element) {
112
- if (styleAndElement.element.nodeType === NodeTypeEnum.elementNode) {
113
+ if (styleAndElement.element[PropertySymbol.nodeType] === NodeTypeEnum.elementNode) {
113
114
  const rootNode = styleAndElement.element.getRootNode();
114
- if (rootNode.nodeType === NodeTypeEnum.documentNode) {
115
+ if (rootNode[PropertySymbol.nodeType] === NodeTypeEnum.documentNode) {
115
116
  documentElements.unshift(styleAndElement);
116
117
  } else {
117
118
  shadowRootElements.unshift(styleAndElement);
@@ -119,9 +120,11 @@ export default class CSSStyleDeclarationElementStyle {
119
120
  parentElements.unshift(styleAndElement);
120
121
  }
121
122
 
122
- if (styleAndElement.element === this.element.ownerDocument) {
123
+ if (styleAndElement.element === this.element[PropertySymbol.ownerDocument]) {
123
124
  const styleSheets = <INodeList<IHTMLStyleElement>>(
124
- this.element.ownerDocument.querySelectorAll('style,link[rel="stylesheet"]')
125
+ this.element[PropertySymbol.ownerDocument].querySelectorAll(
126
+ 'style,link[rel="stylesheet"]'
127
+ )
125
128
  );
126
129
 
127
130
  for (const styleSheet of styleSheets) {
@@ -134,17 +137,25 @@ export default class CSSStyleDeclarationElementStyle {
134
137
  }
135
138
  }
136
139
 
140
+ for (const styleSheet of this.element[PropertySymbol.ownerDocument].adoptedStyleSheets) {
141
+ this.parseCSSRules({
142
+ elements: documentElements,
143
+ cssRules: styleSheet.cssRules
144
+ });
145
+ }
146
+
137
147
  styleAndElement = { element: null, cssTexts: [] };
138
148
  } else if (
139
- styleAndElement.element.nodeType === NodeTypeEnum.documentFragmentNode &&
149
+ styleAndElement.element[PropertySymbol.nodeType] === NodeTypeEnum.documentFragmentNode &&
140
150
  (<IShadowRoot>styleAndElement.element).host
141
151
  ) {
152
+ const shadowRoot = <IShadowRoot>styleAndElement.element;
142
153
  const styleSheets = <INodeList<IHTMLStyleElement>>(
143
- (<IShadowRoot>styleAndElement.element).querySelectorAll('style,link[rel="stylesheet"]')
154
+ shadowRoot.querySelectorAll('style,link[rel="stylesheet"]')
144
155
  );
145
156
 
146
157
  styleAndElement = {
147
- element: <IElement>(<IShadowRoot>styleAndElement.element).host,
158
+ element: <IElement>shadowRoot.host,
148
159
  cssTexts: []
149
160
  };
150
161
 
@@ -158,9 +169,21 @@ export default class CSSStyleDeclarationElementStyle {
158
169
  });
159
170
  }
160
171
  }
172
+
173
+ for (const styleSheet of shadowRoot.adoptedStyleSheets) {
174
+ this.parseCSSRules({
175
+ elements: shadowRootElements,
176
+ cssRules: styleSheet.cssRules,
177
+ hostElement: styleAndElement
178
+ });
179
+ }
180
+
161
181
  shadowRootElements = [];
162
182
  } else {
163
- styleAndElement = { element: <IElement>styleAndElement.element.parentNode, cssTexts: [] };
183
+ styleAndElement = {
184
+ element: <IElement>styleAndElement.element[PropertySymbol.parentNode],
185
+ cssTexts: []
186
+ };
164
187
  }
165
188
  }
166
189
 
@@ -175,36 +198,49 @@ export default class CSSStyleDeclarationElementStyle {
175
198
  parentElement.cssTexts.sort((a, b) => a.priorityWeight - b.priorityWeight);
176
199
 
177
200
  let elementCSSText = '';
178
- if (CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName]) {
201
+ if (
202
+ CSSStyleDeclarationElementDefaultCSS[
203
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
204
+ ]
205
+ ) {
179
206
  if (
180
- typeof CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName] ===
181
- 'string'
207
+ typeof CSSStyleDeclarationElementDefaultCSS[
208
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
209
+ ] === 'string'
182
210
  ) {
183
211
  elementCSSText +=
184
- CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName];
212
+ CSSStyleDeclarationElementDefaultCSS[
213
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
214
+ ];
185
215
  } else {
186
216
  for (const key of Object.keys(
187
- CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName]
217
+ CSSStyleDeclarationElementDefaultCSS[
218
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
219
+ ]
188
220
  )) {
189
221
  if (key === 'default' || !!parentElement.element[key]) {
190
222
  elementCSSText +=
191
- CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName][
192
- key
193
- ];
223
+ CSSStyleDeclarationElementDefaultCSS[
224
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
225
+ ][key];
194
226
  }
195
227
  }
196
228
  }
197
229
  elementCSSText +=
198
- CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName];
230
+ CSSStyleDeclarationElementDefaultCSS[
231
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
232
+ ];
199
233
  }
200
234
 
201
235
  for (const cssText of parentElement.cssTexts) {
202
236
  elementCSSText += cssText.cssText;
203
237
  }
204
238
 
205
- const elementStyleAttribute = (<IElement>parentElement.element).attributes['style'];
239
+ const elementStyleAttribute = (<IElement>parentElement.element)[PropertySymbol.attributes][
240
+ 'style'
241
+ ];
206
242
  if (elementStyleAttribute) {
207
- elementCSSText += elementStyleAttribute.value;
243
+ elementCSSText += elementStyleAttribute[PropertySymbol.value];
208
244
  }
209
245
 
210
246
  CSSStyleDeclarationCSSParser.parse(elementCSSText, (name, value, important) => {
@@ -229,7 +265,7 @@ export default class CSSStyleDeclarationElementStyle {
229
265
  parentFontSize,
230
266
  parentSize: parentFontSize
231
267
  });
232
- if ((<IElement>parentElement.element).tagName === 'HTML') {
268
+ if ((<IElement>parentElement.element)[PropertySymbol.tagName] === 'HTML') {
233
269
  rootFontSize = parsedValue;
234
270
  } else if (parentElement !== targetElement) {
235
271
  parentFontSize = parsedValue;
@@ -277,7 +313,7 @@ export default class CSSStyleDeclarationElementStyle {
277
313
  return;
278
314
  }
279
315
 
280
- const ownerWindow = this.element.ownerDocument[PropertySymbol.defaultView];
316
+ const ownerWindow = this.element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow];
281
317
 
282
318
  for (const rule of options.cssRules) {
283
319
  if (rule.type === CSSRuleTypeEnum.styleRule) {
@@ -308,7 +344,7 @@ export default class CSSStyleDeclarationElementStyle {
308
344
  new MediaQueryList({
309
345
  ownerWindow,
310
346
  media: (<CSSMediaRule>rule).conditionText,
311
- rootFontSize: this.element.tagName === 'HTML' ? 16 : null
347
+ rootFontSize: this.element[PropertySymbol.tagName] === 'HTML' ? 16 : null
312
348
  }).matches
313
349
  ) {
314
350
  this.parseCSSRules({
@@ -362,7 +398,7 @@ export default class CSSStyleDeclarationElementStyle {
362
398
  }): string {
363
399
  if (
364
400
  WindowBrowserSettingsReader.getSettings(
365
- this.element.ownerDocument[PropertySymbol.defaultView]
401
+ this.element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow]
366
402
  ).disableComputedStyleRendering
367
403
  ) {
368
404
  return options.value;
@@ -375,7 +411,7 @@ export default class CSSStyleDeclarationElementStyle {
375
411
  while ((match = regexp.exec(options.value)) !== null) {
376
412
  if (match[1] !== 'px') {
377
413
  const valueInPixels = CSSMeasurementConverter.toPixels({
378
- ownerWindow: this.element.ownerDocument[PropertySymbol.defaultView],
414
+ ownerWindow: this.element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow],
379
415
  value: match[0],
380
416
  rootFontSize: options.rootFontSize,
381
417
  parentFontSize: options.parentFontSize,
@@ -24,14 +24,14 @@ export default class DOMImplementation {
24
24
  * TODO: Not fully implemented.
25
25
  */
26
26
  public createDocument(): IDocument {
27
- return new this.#document[PropertySymbol.defaultView].HTMLDocument();
27
+ return new this.#document[PropertySymbol.ownerWindow].HTMLDocument();
28
28
  }
29
29
 
30
30
  /**
31
31
  * Creates and returns an HTML Document.
32
32
  */
33
33
  public createHTMLDocument(): IDocument {
34
- return new this.#document[PropertySymbol.defaultView].HTMLDocument();
34
+ return new this.#document[PropertySymbol.ownerWindow].HTMLDocument();
35
35
  }
36
36
 
37
37
  /**
@@ -48,11 +48,11 @@ export default class DOMImplementation {
48
48
  ): DocumentType {
49
49
  const documentType = NodeFactory.createNode<DocumentType>(
50
50
  this.#document,
51
- this.#document[PropertySymbol.defaultView].DocumentType
51
+ this.#document[PropertySymbol.ownerWindow].DocumentType
52
52
  );
53
- documentType.name = qualifiedName;
54
- documentType.publicId = publicId;
55
- documentType.systemId = systemId;
53
+ documentType[PropertySymbol.name] = qualifiedName;
54
+ documentType[PropertySymbol.publicId] = publicId;
55
+ documentType[PropertySymbol.systemId] = systemId;
56
56
  return documentType;
57
57
  }
58
58
  }
@@ -1,10 +1,10 @@
1
1
  import IDocument from '../nodes/document/IDocument.js';
2
2
  import * as PropertySymbol from '../PropertySymbol.js';
3
3
  import XMLParser from '../xml-parser/XMLParser.js';
4
- import Node from '../nodes/node/Node.js';
5
4
  import DOMException from '../exception/DOMException.js';
6
5
  import DocumentFragment from '../nodes/document-fragment/DocumentFragment.js';
7
6
  import IBrowserWindow from '../window/IBrowserWindow.js';
7
+ import NodeTypeEnum from '../nodes/node/NodeTypeEnum.js';
8
8
 
9
9
  /**
10
10
  * DOM parser.
@@ -48,7 +48,7 @@ export default class DOMParser {
48
48
  for (const node of root[PropertySymbol.childNodes]) {
49
49
  if (node['tagName'] === 'HTML') {
50
50
  documentElement = node;
51
- } else if (node.nodeType === Node.DOCUMENT_TYPE_NODE) {
51
+ } else if (node[PropertySymbol.nodeType] === NodeTypeEnum.documentTypeNode) {
52
52
  documentTypeNode = node;
53
53
  }
54
54
 
@@ -2,6 +2,8 @@ import Element from '../nodes/element/Element.js';
2
2
  import * as PropertySymbol from '../PropertySymbol.js';
3
3
  import IDOMTokenList from './IDOMTokenList.js';
4
4
 
5
+ const ATTRIBUTE_SPLIT_REGEXP = /[\t\f\n\r ]+/;
6
+
5
7
  /**
6
8
  * DOM Token List.
7
9
  *
@@ -9,7 +11,7 @@ import IDOMTokenList from './IDOMTokenList.js';
9
11
  * https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.
10
12
  */
11
13
  export default class DOMTokenList implements IDOMTokenList {
12
- public readonly length = 0;
14
+ #length = 0;
13
15
  #ownerElement: Element;
14
16
  #attributeName: string;
15
17
 
@@ -25,6 +27,15 @@ export default class DOMTokenList implements IDOMTokenList {
25
27
  this[PropertySymbol.updateIndices]();
26
28
  }
27
29
 
30
+ /**
31
+ * Returns length.
32
+ *
33
+ * @returns Length.
34
+ */
35
+ public get length(): number {
36
+ return this.#length;
37
+ }
38
+
28
39
  /**
29
40
  * Set value.
30
41
  *
@@ -58,8 +69,7 @@ export default class DOMTokenList implements IDOMTokenList {
58
69
  * @param newToken NewToken.
59
70
  */
60
71
  public replace(token: string, newToken: string): boolean {
61
- const attr = this.#ownerElement.getAttribute(this.#attributeName);
62
- const list = attr ? Array.from(new Set(attr.split(' '))) : [];
72
+ const list = this.#getTokenList();
63
73
  const index = list.indexOf(token);
64
74
  if (index === -1) {
65
75
  return false;
@@ -82,18 +92,14 @@ export default class DOMTokenList implements IDOMTokenList {
82
92
  * Returns an iterator, allowing you to go through all values of the key/value pairs contained in this object.
83
93
  */
84
94
  public values(): IterableIterator<string> {
85
- const attr = this.#ownerElement.getAttribute(this.#attributeName);
86
- const list = attr ? Array.from(new Set(attr.split(' '))) : [];
87
- return list.values();
95
+ return this.#getTokenList().values();
88
96
  }
89
97
 
90
98
  /**
91
99
  * Returns an iterator, allowing you to go through all key/value pairs contained in this object.
92
100
  */
93
101
  public entries(): IterableIterator<[number, string]> {
94
- const attr = this.#ownerElement.getAttribute(this.#attributeName);
95
- const list = attr ? Array.from(new Set(attr.split(' '))) : [];
96
- return list.entries();
102
+ return this.#getTokenList().entries();
97
103
  }
98
104
 
99
105
  /**
@@ -103,9 +109,7 @@ export default class DOMTokenList implements IDOMTokenList {
103
109
  * @param thisArg
104
110
  */
105
111
  public forEach(callback: (currentValue, currentIndex, listObj) => void, thisArg?: this): void {
106
- const attr = this.#ownerElement.getAttribute(this.#attributeName);
107
- const list = attr ? Array.from(new Set(attr.split(' '))) : [];
108
- return list.forEach(callback, thisArg);
112
+ return this.#getTokenList().forEach(callback, thisArg);
109
113
  }
110
114
 
111
115
  /**
@@ -113,9 +117,7 @@ export default class DOMTokenList implements IDOMTokenList {
113
117
  *
114
118
  */
115
119
  public keys(): IterableIterator<number> {
116
- const attr = this.#ownerElement.getAttribute(this.#attributeName);
117
- const list = attr ? Array.from(new Set(attr.split(' '))) : [];
118
- return list.keys();
120
+ return this.#getTokenList().keys();
119
121
  }
120
122
 
121
123
  /**
@@ -124,8 +126,7 @@ export default class DOMTokenList implements IDOMTokenList {
124
126
  * @param tokens Tokens.
125
127
  */
126
128
  public add(...tokens: string[]): void {
127
- const attr = this.#ownerElement.getAttribute(this.#attributeName);
128
- const list = attr ? Array.from(new Set(attr.split(' '))) : [];
129
+ const list = this.#getTokenList();
129
130
 
130
131
  for (const token of tokens) {
131
132
  const index = list.indexOf(token);
@@ -145,8 +146,7 @@ export default class DOMTokenList implements IDOMTokenList {
145
146
  * @param tokens Tokens.
146
147
  */
147
148
  public remove(...tokens: string[]): void {
148
- const attr = this.#ownerElement.getAttribute(this.#attributeName);
149
- const list = attr ? Array.from(new Set(attr.split(' '))) : [];
149
+ const list = this.#getTokenList();
150
150
 
151
151
  for (const token of tokens) {
152
152
  const index = list.indexOf(token);
@@ -165,8 +165,8 @@ export default class DOMTokenList implements IDOMTokenList {
165
165
  * @returns TRUE if it contains.
166
166
  */
167
167
  public contains(className: string): boolean {
168
- const attr = this.#ownerElement.getAttribute(this.#attributeName);
169
- return (attr ? attr.split(' ') : []).includes(className);
168
+ const list = this.#getTokenList();
169
+ return list.includes(className);
170
170
  }
171
171
 
172
172
  /**
@@ -199,8 +199,7 @@ export default class DOMTokenList implements IDOMTokenList {
199
199
  * Updates indices.
200
200
  */
201
201
  public [PropertySymbol.updateIndices](): void {
202
- const attr = this.#ownerElement.getAttribute(this.#attributeName);
203
- const list = attr ? Array.from(new Set(attr.split(' '))) : [];
202
+ const list = this.#getTokenList();
204
203
 
205
204
  for (let i = list.length - 1, max = this.length; i < max; i++) {
206
205
  delete this[i];
@@ -210,7 +209,27 @@ export default class DOMTokenList implements IDOMTokenList {
210
209
  this[i] = list[i];
211
210
  }
212
211
 
213
- (<number>this.length) = list.length;
212
+ this.#length = list.length;
213
+ }
214
+
215
+ /**
216
+ * Returns token list from attribute value.
217
+ *
218
+ * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace
219
+ */
220
+ #getTokenList(): string[] {
221
+ const attr = this.#ownerElement.getAttribute(this.#attributeName);
222
+ if (!attr) {
223
+ return [];
224
+ }
225
+ // It is possible to make this statement shorter by using Array.from() and Set, but this is faster when comparing using a bench test.
226
+ const list = [];
227
+ for (const item of attr.trim().split(ATTRIBUTE_SPLIT_REGEXP)) {
228
+ if (!list.includes(item)) {
229
+ list.push(item);
230
+ }
231
+ }
232
+ return list;
214
233
  }
215
234
 
216
235
  /**
@@ -94,12 +94,12 @@ export default class Event {
94
94
  eventTarget = (<INode>(<unknown>eventTarget)).parentNode;
95
95
  } else if (
96
96
  this.composed &&
97
- (<INode>eventTarget).nodeType === NodeTypeEnum.documentFragmentNode &&
97
+ (<INode>eventTarget)[PropertySymbol.nodeType] === NodeTypeEnum.documentFragmentNode &&
98
98
  (<IShadowRoot>eventTarget).host
99
99
  ) {
100
100
  eventTarget = (<IShadowRoot>eventTarget).host;
101
- } else if ((<INode>eventTarget).nodeType === NodeTypeEnum.documentNode) {
102
- eventTarget = (<IDocument>(<unknown>eventTarget))[PropertySymbol.defaultView];
101
+ } else if ((<INode>eventTarget)[PropertySymbol.nodeType] === NodeTypeEnum.documentNode) {
102
+ eventTarget = (<IDocument>(<unknown>eventTarget))[PropertySymbol.ownerWindow];
103
103
  } else {
104
104
  break;
105
105
  }
@@ -279,11 +279,11 @@ export default abstract class EventTarget implements IEventTarget {
279
279
  * @returns Window.
280
280
  */
281
281
  #getWindow(): IBrowserWindow | null {
282
- if ((<INode>(<unknown>this)).ownerDocument) {
283
- return (<INode>(<unknown>this)).ownerDocument[PropertySymbol.defaultView];
282
+ if ((<INode>(<unknown>this))[PropertySymbol.ownerDocument]) {
283
+ return (<INode>(<unknown>this))[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow];
284
284
  }
285
- if ((<IDocument>(<unknown>this))[PropertySymbol.defaultView]) {
286
- return (<IDocument>(<unknown>this))[PropertySymbol.defaultView];
285
+ if ((<IDocument>(<unknown>this))[PropertySymbol.ownerWindow]) {
286
+ return (<IDocument>(<unknown>this))[PropertySymbol.ownerWindow];
287
287
  }
288
288
  if ((<IBrowserWindow>(<unknown>this)).document) {
289
289
  return <IBrowserWindow>(<unknown>this);
@@ -44,11 +44,13 @@ export default class Request implements IRequest {
44
44
  public readonly credentials: IRequestCredentials;
45
45
 
46
46
  // Internal properties
47
- public readonly [PropertySymbol.contentLength]: number | null = null;
48
- public readonly [PropertySymbol.contentType]: string | null = null;
47
+ public [PropertySymbol.contentLength]: number | null = null;
48
+ public [PropertySymbol.contentType]: string | null = null;
49
49
  public [PropertySymbol.referrer]: '' | 'no-referrer' | 'client' | URL = 'client';
50
- public readonly [PropertySymbol.url]: URL;
51
- public readonly [PropertySymbol.bodyBuffer]: Buffer | null;
50
+ public [PropertySymbol.url]: URL;
51
+ public [PropertySymbol.bodyBuffer]: Buffer | null;
52
+
53
+ // Private properties
52
54
  readonly #window: IBrowserWindow;
53
55
  readonly #asyncTaskManager: AsyncTaskManager;
54
56
 
@@ -149,7 +151,7 @@ export default class Request implements IRequest {
149
151
  * Returns owner document.
150
152
  */
151
153
  protected get [PropertySymbol.ownerDocument](): IDocument {
152
- throw new Error('[PropertySymbol.ownerDocument] needs to be implemented by sub-class.');
154
+ throw new Error('[PropertySymbol.ownerDocument] getter needs to be implemented by sub-class.');
153
155
  }
154
156
 
155
157
  /**
@@ -29,14 +29,14 @@ export default class FormData implements Iterable<[string, string | File]> {
29
29
  constructor(form?: IHTMLFormElement) {
30
30
  if (form) {
31
31
  for (const name of Object.keys(
32
- (<HTMLFormControlsCollection>form.elements)[PropertySymbol.namedItems]
32
+ (<HTMLFormControlsCollection>form[PropertySymbol.elements])[PropertySymbol.namedItems]
33
33
  )) {
34
- let radioNodeList = (<HTMLFormControlsCollection>form.elements)[PropertySymbol.namedItems][
35
- name
36
- ];
34
+ let radioNodeList = (<HTMLFormControlsCollection>form[PropertySymbol.elements])[
35
+ PropertySymbol.namedItems
36
+ ][name];
37
37
 
38
38
  if (
39
- radioNodeList[0].tagName === 'INPUT' &&
39
+ radioNodeList[0][PropertySymbol.tagName] === 'INPUT' &&
40
40
  (radioNodeList[0].type === 'checkbox' || radioNodeList[0].type === 'radio')
41
41
  ) {
42
42
  const newRadioNodeList = new RadioNodeList();
@@ -50,12 +50,12 @@ export default class FormData implements Iterable<[string, string | File]> {
50
50
  }
51
51
 
52
52
  for (const node of radioNodeList) {
53
- if (node.name && SUBMITTABLE_ELEMENTS.includes(node.tagName)) {
54
- if (node.tagName === 'INPUT' && node.type === 'file') {
55
- if ((<IHTMLInputElement>node).files.length === 0) {
53
+ if (node.name && SUBMITTABLE_ELEMENTS.includes(node[PropertySymbol.tagName])) {
54
+ if (node[PropertySymbol.tagName] === 'INPUT' && node.type === 'file') {
55
+ if ((<IHTMLInputElement>node)[PropertySymbol.files].length === 0) {
56
56
  this.append(node.name, new File([], '', { type: 'application/octet-stream' }));
57
57
  } else {
58
- for (const file of (<IHTMLInputElement>node).files) {
58
+ for (const file of (<IHTMLInputElement>node)[PropertySymbol.files]) {
59
59
  this.append(node.name, file);
60
60
  }
61
61
  }
@@ -46,9 +46,9 @@ export default class MutationObserver {
46
46
  }
47
47
 
48
48
  if (!this.#window) {
49
- this.#window = target.ownerDocument
50
- ? target.ownerDocument[PropertySymbol.defaultView]
51
- : target[PropertySymbol.defaultView];
49
+ this.#window = target[PropertySymbol.ownerDocument]
50
+ ? target[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow]
51
+ : target[PropertySymbol.ownerWindow];
52
52
  }
53
53
 
54
54
  // Makes sure that attribute names are lower case.
@@ -63,12 +63,16 @@ export default class NamedNodeMap implements INamedNodeMap {
63
63
  public getNamedItemNS(namespace: string, localName: string): IAttr | null {
64
64
  const attribute = this.getNamedItem(localName);
65
65
 
66
- if (attribute && attribute.namespaceURI === namespace && attribute.localName === localName) {
66
+ if (
67
+ attribute &&
68
+ attribute[PropertySymbol.namespaceURI] === namespace &&
69
+ attribute.localName === localName
70
+ ) {
67
71
  return attribute;
68
72
  }
69
73
 
70
74
  for (let i = 0, max = this.length; i < max; i++) {
71
- if (this[i].namespaceURI === namespace && this[i].localName === localName) {
75
+ if (this[i][PropertySymbol.namespaceURI] === namespace && this[i].localName === localName) {
72
76
  return this[i];
73
77
  }
74
78
  }
@@ -125,7 +129,7 @@ export default class NamedNodeMap implements INamedNodeMap {
125
129
  public removeNamedItemNS(namespace: string, localName: string): IAttr | null {
126
130
  const attribute = this.getNamedItemNS(namespace, localName);
127
131
  if (attribute) {
128
- return this.removeNamedItem(attribute.name);
132
+ return this.removeNamedItem(attribute[PropertySymbol.name]);
129
133
  }
130
134
  return null;
131
135
  }
@@ -137,10 +141,10 @@ export default class NamedNodeMap implements INamedNodeMap {
137
141
  * @returns Replaced item.
138
142
  */
139
143
  public [PropertySymbol.setNamedItemWithoutConsequences](item: IAttr): IAttr | null {
140
- if (item.name) {
141
- const replacedItem = this[PropertySymbol.namedItems][item.name] || null;
144
+ if (item[PropertySymbol.name]) {
145
+ const replacedItem = this[PropertySymbol.namedItems][item[PropertySymbol.name]] || null;
142
146
 
143
- this[PropertySymbol.namedItems][item.name] = item;
147
+ this[PropertySymbol.namedItems][item[PropertySymbol.name]] = item;
144
148
 
145
149
  if (replacedItem) {
146
150
  this[PropertySymbol.removeNamedItemIndex](replacedItem);
@@ -149,8 +153,8 @@ export default class NamedNodeMap implements INamedNodeMap {
149
153
  this[this.length] = item;
150
154
  this.length++;
151
155
 
152
- if (this[PropertySymbol.isValidPropertyName](item.name)) {
153
- this[item.name] = item;
156
+ if (this[PropertySymbol.isValidPropertyName](item[PropertySymbol.name])) {
157
+ this[item[PropertySymbol.name]] = item;
154
158
  }
155
159
 
156
160
  return replacedItem;