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
@@ -1,6 +1,8 @@
1
1
  import IElement from '../element/IElement.js';
2
2
  import Node from '../node/Node.js';
3
3
  import IAttr from './IAttr.js';
4
+ import * as PropertySymbol from '../../PropertySymbol.js';
5
+ import NodeTypeEnum from '../node/NodeTypeEnum.js';
4
6
 
5
7
  /**
6
8
  * Attribute node interface.
@@ -8,20 +10,57 @@ import IAttr from './IAttr.js';
8
10
  * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Attr.
9
11
  */
10
12
  export default class Attr extends Node implements IAttr {
11
- public readonly nodeType = Node.ATTRIBUTE_NODE;
12
- public value: string = null;
13
- public name: string = null;
14
- public namespaceURI: string = null;
13
+ public [PropertySymbol.nodeType] = NodeTypeEnum.attributeNode;
14
+ public [PropertySymbol.namespaceURI]: string | null = null;
15
+ public [PropertySymbol.name]: string | null = null;
16
+ public [PropertySymbol.value]: string | null = null;
17
+ public [PropertySymbol.specified] = true;
18
+ public [PropertySymbol.ownerElement]: IElement | null = null;
15
19
 
16
20
  /**
17
- * @deprecated
21
+ * Returns specified.
22
+ *
23
+ * @returns Specified.
24
+ */
25
+ public get specified(): boolean {
26
+ return this[PropertySymbol.specified];
27
+ }
28
+
29
+ /**
30
+ * Returns owner element.
31
+ *
32
+ * @returns Owner element.
33
+ */
34
+ public get ownerElement(): IElement | null {
35
+ return this[PropertySymbol.ownerElement];
36
+ }
37
+
38
+ /**
39
+ * Returns value.
40
+ *
41
+ * @returns Value.
42
+ */
43
+ public get value(): string {
44
+ return this[PropertySymbol.value];
45
+ }
46
+
47
+ /**
48
+ * Sets value.
49
+ *
50
+ * @param value Value.
18
51
  */
19
- public readonly ownerElement: IElement = null;
52
+ public set value(value: string) {
53
+ this[PropertySymbol.value] = value;
54
+ }
20
55
 
21
56
  /**
22
- * @deprecated
57
+ * Returns name.
58
+ *
59
+ * @returns Name.
23
60
  */
24
- public readonly specified = true;
61
+ public get name(): string {
62
+ return this[PropertySymbol.name];
63
+ }
25
64
 
26
65
  /**
27
66
  * Returns local name.
@@ -29,7 +68,7 @@ export default class Attr extends Node implements IAttr {
29
68
  * @returns Local name.
30
69
  */
31
70
  public get localName(): string {
32
- return this.name ? this.name.split(':').reverse()[0] : null;
71
+ return this[PropertySymbol.name] ? this[PropertySymbol.name].split(':').reverse()[0] : null;
33
72
  }
34
73
 
35
74
  /**
@@ -38,13 +77,22 @@ export default class Attr extends Node implements IAttr {
38
77
  * @returns Prefix.
39
78
  */
40
79
  public get prefix(): string {
41
- return this.name ? this.name.split(':')[0] : null;
80
+ return this[PropertySymbol.name] ? this[PropertySymbol.name].split(':')[0] : null;
42
81
  }
43
82
 
44
83
  /**
45
84
  * @override
46
85
  */
47
86
  public get textContent(): string {
48
- return this.value;
87
+ return this[PropertySymbol.value];
88
+ }
89
+
90
+ /**
91
+ * Returns namespace URI.
92
+ *
93
+ * @returns Namespace URI.
94
+ */
95
+ public get namespaceURI(): string | null {
96
+ return this[PropertySymbol.namespaceURI];
49
97
  }
50
98
  }
@@ -57,8 +57,8 @@ export default abstract class CharacterData extends Node implements ICharacterDa
57
57
  const oldValue = this[PropertySymbol.data];
58
58
  this[PropertySymbol.data] = String(data);
59
59
 
60
- if (this.isConnected) {
61
- this.ownerDocument[PropertySymbol.cacheID]++;
60
+ if (this[PropertySymbol.isConnected]) {
61
+ this[PropertySymbol.ownerDocument][PropertySymbol.cacheID]++;
62
62
  }
63
63
 
64
64
  // MutationObserver
@@ -17,8 +17,8 @@ export default class ChildNodeUtility {
17
17
  * @param childNode Child node.
18
18
  */
19
19
  public static remove(childNode: IChildNode): void {
20
- if (childNode.parentNode) {
21
- childNode.parentNode.removeChild(childNode);
20
+ if (childNode[PropertySymbol.parentNode]) {
21
+ childNode[PropertySymbol.parentNode].removeChild(childNode);
22
22
  }
23
23
  }
24
24
 
@@ -29,7 +29,7 @@ export default class ChildNodeUtility {
29
29
  * @param nodes List of Node or DOMString.
30
30
  */
31
31
  public static replaceWith(childNode: IChildNode, ...nodes: (INode | string)[]): void {
32
- const parent = <IParentNode>childNode.parentNode;
32
+ const parent = <IParentNode>childNode[PropertySymbol.parentNode];
33
33
 
34
34
  if (!parent) {
35
35
  throw new DOMException('This element has no parent node.');
@@ -38,7 +38,7 @@ export default class ChildNodeUtility {
38
38
  for (const node of nodes) {
39
39
  if (typeof node === 'string') {
40
40
  const newChildNodes = (<DocumentFragment>(
41
- XMLParser.parse(<Document>childNode.ownerDocument, node)
41
+ XMLParser.parse(<Document>childNode[PropertySymbol.ownerDocument], node)
42
42
  ))[PropertySymbol.childNodes].slice();
43
43
  for (const newChildNode of newChildNodes) {
44
44
  parent.insertBefore(newChildNode, childNode);
@@ -58,7 +58,7 @@ export default class ChildNodeUtility {
58
58
  * @param nodes List of Node or DOMString.
59
59
  */
60
60
  public static before(childNode: IChildNode, ...nodes: (string | INode)[]): void {
61
- const parent = <IParentNode>childNode.parentNode;
61
+ const parent = <IParentNode>childNode[PropertySymbol.parentNode];
62
62
 
63
63
  if (!parent) {
64
64
  return;
@@ -67,7 +67,7 @@ export default class ChildNodeUtility {
67
67
  for (const node of nodes) {
68
68
  if (typeof node === 'string') {
69
69
  const newChildNodes = (<DocumentFragment>(
70
- XMLParser.parse(<Document>childNode.ownerDocument, node)
70
+ XMLParser.parse(<Document>childNode[PropertySymbol.ownerDocument], node)
71
71
  ))[PropertySymbol.childNodes].slice();
72
72
  for (const newChildNode of newChildNodes) {
73
73
  parent.insertBefore(newChildNode, childNode);
@@ -85,7 +85,7 @@ export default class ChildNodeUtility {
85
85
  * @param nodes List of Node or DOMString.
86
86
  */
87
87
  public static after(childNode: IChildNode, ...nodes: (string | INode)[]): void {
88
- const parent = <IParentNode>childNode.parentNode;
88
+ const parent = <IParentNode>childNode[PropertySymbol.parentNode];
89
89
 
90
90
  if (!parent) {
91
91
  return;
@@ -96,7 +96,7 @@ export default class ChildNodeUtility {
96
96
  for (const node of nodes) {
97
97
  if (typeof node === 'string') {
98
98
  const newChildNodes = (<DocumentFragment>(
99
- XMLParser.parse(<Document>childNode.ownerDocument, node)
99
+ XMLParser.parse(<Document>childNode[PropertySymbol.ownerDocument], node)
100
100
  ))[PropertySymbol.childNodes].slice();
101
101
  for (const newChildNode of newChildNodes) {
102
102
  if (!nextSibling) {
@@ -1,6 +1,7 @@
1
- import Element from '../element/Element.js';
2
1
  import IElement from '../element/IElement.js';
2
+ import NodeTypeEnum from '../node/NodeTypeEnum.js';
3
3
  import INonDocumentTypeChildNode from './INonDocumentTypeChildNode.js';
4
+ import * as PropertySymbol from '../../PropertySymbol.js';
4
5
 
5
6
  /**
6
7
  * Non Document Child node utility.
@@ -14,7 +15,7 @@ export default class NonDocumentChildNodeUtility {
14
15
  */
15
16
  public static previousElementSibling(childNode: INonDocumentTypeChildNode): IElement {
16
17
  let sibling = childNode.previousSibling;
17
- while (sibling && sibling.nodeType !== Element.ELEMENT_NODE) {
18
+ while (sibling && sibling[PropertySymbol.nodeType] !== NodeTypeEnum.elementNode) {
18
19
  sibling = sibling.previousSibling;
19
20
  }
20
21
  return <IElement>sibling;
@@ -28,7 +29,7 @@ export default class NonDocumentChildNodeUtility {
28
29
  */
29
30
  public static nextElementSibling(childNode: INonDocumentTypeChildNode): IElement {
30
31
  let sibling = childNode.nextSibling;
31
- while (sibling && sibling.nodeType !== Element.ELEMENT_NODE) {
32
+ while (sibling && sibling[PropertySymbol.nodeType] !== NodeTypeEnum.elementNode) {
32
33
  sibling = sibling.nextSibling;
33
34
  }
34
35
  return <IElement>sibling;
@@ -1,12 +1,13 @@
1
- import Node from '../node/Node.js';
2
1
  import CharacterData from '../character-data/CharacterData.js';
3
2
  import IComment from './IComment.js';
3
+ import * as PropertySymbol from '../../PropertySymbol.js';
4
+ import NodeTypeEnum from '../node/NodeTypeEnum.js';
4
5
 
5
6
  /**
6
7
  * Comment node.
7
8
  */
8
9
  export default class Comment extends CharacterData implements IComment {
9
- public readonly nodeType = Node.COMMENT_NODE;
10
+ public [PropertySymbol.nodeType] = NodeTypeEnum.commentNode;
10
11
 
11
12
  /**
12
13
  * Node name.
@@ -53,28 +53,27 @@ const PROCESSING_INSTRUCTION_TARGET_REGEXP = /^[a-z][a-z0-9-]+$/;
53
53
  * Document.
54
54
  */
55
55
  export default class Document extends Node implements IDocument {
56
- public nodeType = Node.DOCUMENT_NODE;
57
- public adoptedStyleSheets: CSSStyleSheet[] = [];
58
- public readonly implementation: DOMImplementation;
59
- public readonly readyState = DocumentReadyStateEnum.interactive;
60
- public readonly isConnected: boolean = true;
61
- public readonly defaultView: IBrowserWindow | null = null;
62
- public readonly [PropertySymbol.defaultView]: IBrowserWindow;
63
- public readonly referrer = '';
64
- public readonly [PropertySymbol.children]: IHTMLCollection<IElement> =
65
- new HTMLCollection<IElement>();
56
+ // Internal properties
57
+ public [PropertySymbol.children]: IHTMLCollection<IElement> = new HTMLCollection<IElement>();
66
58
  public [PropertySymbol.activeElement]: IHTMLElement = null;
67
59
  public [PropertySymbol.nextActiveElement]: IHTMLElement = null;
68
60
  public [PropertySymbol.currentScript]: IHTMLScriptElement = null;
69
61
  public [PropertySymbol.rootNode] = this;
70
-
71
62
  // Used as an unique identifier which is updated whenever the DOM gets modified.
72
63
  public [PropertySymbol.cacheID] = 0;
73
-
74
64
  public [PropertySymbol.isFirstWrite] = true;
75
65
  public [PropertySymbol.isFirstWriteAfterOpen] = false;
76
-
77
- private [PropertySymbol.selection]: Selection = null;
66
+ public [PropertySymbol.nodeType] = NodeTypeEnum.documentNode;
67
+ public [PropertySymbol.isConnected] = true;
68
+ public [PropertySymbol.adoptedStyleSheets]: CSSStyleSheet[] = [];
69
+ public [PropertySymbol.implementation] = new DOMImplementation(this);
70
+ public [PropertySymbol.readyState] = DocumentReadyStateEnum.interactive;
71
+ public [PropertySymbol.referrer] = '';
72
+ public [PropertySymbol.defaultView]: IBrowserWindow | null = null;
73
+ public [PropertySymbol.ownerWindow]: IBrowserWindow;
74
+
75
+ // Private properties
76
+ #selection: Selection = null;
78
77
  #browserFrame: IBrowserFrame;
79
78
 
80
79
  // Events
@@ -198,8 +197,61 @@ export default class Document extends Node implements IDocument {
198
197
  constructor(injected: { browserFrame: IBrowserFrame; window: IBrowserWindow }) {
199
198
  super();
200
199
  this.#browserFrame = injected.browserFrame;
201
- this[PropertySymbol.defaultView] = injected.window;
202
- this.implementation = new DOMImplementation(this);
200
+ this[PropertySymbol.ownerWindow] = injected.window;
201
+ }
202
+
203
+ /**
204
+ * Returns adopted style sheets.
205
+ *
206
+ * @returns Adopted style sheets.
207
+ */
208
+ public get adoptedStyleSheets(): CSSStyleSheet[] {
209
+ return this[PropertySymbol.adoptedStyleSheets];
210
+ }
211
+
212
+ /**
213
+ * Sets adopted style sheets.
214
+ *
215
+ * @param value Adopted style sheets.
216
+ */
217
+ public set adoptedStyleSheets(value: CSSStyleSheet[]) {
218
+ this[PropertySymbol.adoptedStyleSheets] = value;
219
+ }
220
+
221
+ /**
222
+ * Returns DOM implementation.
223
+ *
224
+ * @returns DOM implementation.
225
+ */
226
+ public get implementation(): DOMImplementation {
227
+ return this[PropertySymbol.implementation];
228
+ }
229
+
230
+ /**
231
+ * Returns document ready state.
232
+ *
233
+ * @returns Document ready state.
234
+ */
235
+ public get readyState(): DocumentReadyStateEnum {
236
+ return this[PropertySymbol.readyState];
237
+ }
238
+
239
+ /**
240
+ * Returns referrer.
241
+ *
242
+ * @returns Referrer.
243
+ */
244
+ public get referrer(): string {
245
+ return this[PropertySymbol.referrer];
246
+ }
247
+
248
+ /**
249
+ * Returns default view.
250
+ *
251
+ * @returns Default view.
252
+ */
253
+ public get defaultView(): IBrowserWindow | null {
254
+ return this[PropertySymbol.defaultView];
203
255
  }
204
256
 
205
257
  /**
@@ -299,7 +351,7 @@ export default class Document extends Node implements IDocument {
299
351
  public get cookie(): string {
300
352
  return CookieStringUtility.cookiesToString(
301
353
  this.#browserFrame.page.context.cookieContainer.getCookies(
302
- this[PropertySymbol.defaultView].location,
354
+ this[PropertySymbol.ownerWindow].location,
303
355
  true
304
356
  )
305
357
  );
@@ -312,7 +364,7 @@ export default class Document extends Node implements IDocument {
312
364
  */
313
365
  public set cookie(cookie: string) {
314
366
  this.#browserFrame.page.context.cookieContainer.addCookies([
315
- CookieStringUtility.stringToCookie(this[PropertySymbol.defaultView].location, cookie)
367
+ CookieStringUtility.stringToCookie(this[PropertySymbol.ownerWindow].location, cookie)
316
368
  ]);
317
369
  }
318
370
 
@@ -391,7 +443,10 @@ export default class Document extends Node implements IDocument {
391
443
  * @returns Active element.
392
444
  */
393
445
  public get activeElement(): IHTMLElement {
394
- if (this[PropertySymbol.activeElement] && !this[PropertySymbol.activeElement].isConnected) {
446
+ if (
447
+ this[PropertySymbol.activeElement] &&
448
+ !this[PropertySymbol.activeElement][PropertySymbol.isConnected]
449
+ ) {
395
450
  this[PropertySymbol.activeElement] = null;
396
451
  }
397
452
 
@@ -427,7 +482,7 @@ export default class Document extends Node implements IDocument {
427
482
  * @returns Location.
428
483
  */
429
484
  public get location(): Location {
430
- return this[PropertySymbol.defaultView].location;
485
+ return this[PropertySymbol.ownerWindow].location;
431
486
  }
432
487
 
433
488
  /**
@@ -450,7 +505,7 @@ export default class Document extends Node implements IDocument {
450
505
  if (element) {
451
506
  return element.href;
452
507
  }
453
- return this[PropertySymbol.defaultView].location.href;
508
+ return this[PropertySymbol.ownerWindow].location.href;
454
509
  }
455
510
 
456
511
  /**
@@ -459,7 +514,7 @@ export default class Document extends Node implements IDocument {
459
514
  * @returns the URL of the current document.
460
515
  * */
461
516
  public get URL(): string {
462
- return this[PropertySymbol.defaultView].location.href;
517
+ return this[PropertySymbol.ownerWindow].location.href;
463
518
  }
464
519
 
465
520
  /**
@@ -631,7 +686,7 @@ export default class Document extends Node implements IDocument {
631
686
 
632
687
  if (deep) {
633
688
  for (const node of clone[PropertySymbol.childNodes]) {
634
- if (node.nodeType === Node.ELEMENT_NODE) {
689
+ if (node[PropertySymbol.nodeType] === NodeTypeEnum.elementNode) {
635
690
  clone[PropertySymbol.children].push(<IElement>node);
636
691
  }
637
692
  }
@@ -694,7 +749,7 @@ export default class Document extends Node implements IDocument {
694
749
  for (const node of root[PropertySymbol.childNodes]) {
695
750
  if (node['tagName'] === 'HTML') {
696
751
  documentElement = node;
697
- } else if (node.nodeType === NodeTypeEnum.documentTypeNode) {
752
+ } else if (node[PropertySymbol.nodeType] === NodeTypeEnum.documentTypeNode) {
698
753
  documentTypeNode = node;
699
754
  }
700
755
 
@@ -736,7 +791,10 @@ export default class Document extends Node implements IDocument {
736
791
  const body = ParentNodeUtility.getElementByTagName(this, 'body');
737
792
  if (body) {
738
793
  for (const child of root[PropertySymbol.childNodes].slice()) {
739
- if (child['tagName'] !== 'HTML' && child.nodeType !== NodeTypeEnum.documentTypeNode) {
794
+ if (
795
+ child['tagName'] !== 'HTML' &&
796
+ child[PropertySymbol.nodeType] !== NodeTypeEnum.documentTypeNode
797
+ ) {
740
798
  body.appendChild(child);
741
799
  }
742
800
  }
@@ -825,20 +883,20 @@ export default class Document extends Node implements IDocument {
825
883
 
826
884
  let customElementClass;
827
885
  if (options && options.is) {
828
- customElementClass = this[PropertySymbol.defaultView].customElements.get(String(options.is));
886
+ customElementClass = this[PropertySymbol.ownerWindow].customElements.get(String(options.is));
829
887
  } else {
830
- customElementClass = this[PropertySymbol.defaultView].customElements.get(tagName);
888
+ customElementClass = this[PropertySymbol.ownerWindow].customElements.get(tagName);
831
889
  }
832
890
 
833
891
  const elementClass: typeof Element =
834
892
  customElementClass ||
835
- this[PropertySymbol.defaultView][ElementTag[tagName]] ||
893
+ this[PropertySymbol.ownerWindow][ElementTag[tagName]] ||
836
894
  HTMLUnknownElement;
837
895
 
838
896
  const element = NodeFactory.createNode<IElement>(this, elementClass);
839
- (<string>element.tagName) = tagName;
897
+ element[PropertySymbol.tagName] = tagName;
840
898
 
841
- (<string>element.namespaceURI) = namespaceURI;
899
+ element[PropertySymbol.namespaceURI] = namespaceURI;
842
900
  if (element instanceof Element && options && options.is) {
843
901
  element[PropertySymbol.isValue] = String(options.is);
844
902
  }
@@ -855,7 +913,7 @@ export default class Document extends Node implements IDocument {
855
913
  * @returns Text node.
856
914
  */
857
915
  public createTextNode(data?: string): IText {
858
- return NodeFactory.createNode<IText>(this, this[PropertySymbol.defaultView].Text, data);
916
+ return NodeFactory.createNode<IText>(this, this[PropertySymbol.ownerWindow].Text, data);
859
917
  }
860
918
 
861
919
  /**
@@ -865,7 +923,7 @@ export default class Document extends Node implements IDocument {
865
923
  * @returns Text node.
866
924
  */
867
925
  public createComment(data?: string): IComment {
868
- return NodeFactory.createNode<IComment>(this, this[PropertySymbol.defaultView].Comment, data);
926
+ return NodeFactory.createNode<IComment>(this, this[PropertySymbol.ownerWindow].Comment, data);
869
927
  }
870
928
 
871
929
  /**
@@ -874,7 +932,7 @@ export default class Document extends Node implements IDocument {
874
932
  * @returns Document fragment.
875
933
  */
876
934
  public createDocumentFragment(): IDocumentFragment {
877
- return new this[PropertySymbol.defaultView].DocumentFragment();
935
+ return new this[PropertySymbol.ownerWindow].DocumentFragment();
878
936
  }
879
937
 
880
938
  /**
@@ -911,8 +969,8 @@ export default class Document extends Node implements IDocument {
911
969
  * @returns Event.
912
970
  */
913
971
  public createEvent(type: string): Event {
914
- if (typeof this[PropertySymbol.defaultView][type] === 'function') {
915
- return new this[PropertySymbol.defaultView][type]('init');
972
+ if (typeof this[PropertySymbol.ownerWindow][type] === 'function') {
973
+ return new this[PropertySymbol.ownerWindow][type]('init');
916
974
  }
917
975
  return new Event('init');
918
976
  }
@@ -935,9 +993,9 @@ export default class Document extends Node implements IDocument {
935
993
  * @returns Element.
936
994
  */
937
995
  public createAttributeNS(namespaceURI: string, qualifiedName: string): IAttr {
938
- const attribute = NodeFactory.createNode<IAttr>(this, this[PropertySymbol.defaultView].Attr);
939
- attribute.namespaceURI = namespaceURI;
940
- attribute.name = qualifiedName;
996
+ const attribute = NodeFactory.createNode<IAttr>(this, this[PropertySymbol.ownerWindow].Attr);
997
+ attribute[PropertySymbol.namespaceURI] = namespaceURI;
998
+ attribute[PropertySymbol.name] = qualifiedName;
941
999
  return <IAttr>attribute;
942
1000
  }
943
1001
 
@@ -962,7 +1020,7 @@ export default class Document extends Node implements IDocument {
962
1020
  * @returns Range.
963
1021
  */
964
1022
  public createRange(): Range {
965
- return new this[PropertySymbol.defaultView].Range();
1023
+ return new this[PropertySymbol.ownerWindow].Range();
966
1024
  }
967
1025
 
968
1026
  /**
@@ -976,7 +1034,9 @@ export default class Document extends Node implements IDocument {
976
1034
  throw new DOMException('Parameter 1 was not of type Node.');
977
1035
  }
978
1036
 
979
- const adopted = node.parentNode ? node.parentNode.removeChild(node) : node;
1037
+ const adopted = node[PropertySymbol.parentNode]
1038
+ ? node[PropertySymbol.parentNode].removeChild(node)
1039
+ : node;
980
1040
  const document = this;
981
1041
  Object.defineProperty(adopted, 'ownerDocument', { value: document });
982
1042
  return adopted;
@@ -988,10 +1048,10 @@ export default class Document extends Node implements IDocument {
988
1048
  * @returns Selection.
989
1049
  */
990
1050
  public getSelection(): Selection {
991
- if (!this[PropertySymbol.selection]) {
992
- this[PropertySymbol.selection] = new Selection(this);
1051
+ if (!this.#selection) {
1052
+ this.#selection = new Selection(this);
993
1053
  }
994
- return this[PropertySymbol.selection];
1054
+ return this.#selection;
995
1055
  }
996
1056
 
997
1057
  /**
@@ -1023,10 +1083,10 @@ export default class Document extends Node implements IDocument {
1023
1083
  }
1024
1084
  const processingInstruction = NodeFactory.createNode<IProcessingInstruction>(
1025
1085
  this,
1026
- this[PropertySymbol.defaultView].ProcessingInstruction,
1086
+ this[PropertySymbol.ownerWindow].ProcessingInstruction,
1027
1087
  data
1028
1088
  );
1029
- processingInstruction.target = target;
1089
+ processingInstruction[PropertySymbol.target] = target;
1030
1090
  return processingInstruction;
1031
1091
  }
1032
1092
 
@@ -1036,7 +1096,7 @@ export default class Document extends Node implements IDocument {
1036
1096
  * @param node Node.
1037
1097
  */
1038
1098
  #importNode(node: INode): void {
1039
- (<IDocument>node.ownerDocument) = this;
1099
+ node[PropertySymbol.ownerDocument] = this;
1040
1100
 
1041
1101
  for (const child of node[PropertySymbol.childNodes]) {
1042
1102
  this.#importNode(child);
@@ -29,7 +29,7 @@ import VisibilityStateEnum from './VisibilityStateEnum.js';
29
29
  */
30
30
  export default interface IDocument extends IParentNode {
31
31
  readonly defaultView: IBrowserWindow | null;
32
- readonly [PropertySymbol.defaultView]: IBrowserWindow;
32
+ readonly [PropertySymbol.ownerWindow]: IBrowserWindow;
33
33
  readonly implementation: DOMImplementation;
34
34
  readonly documentElement: IHTMLElement;
35
35
  readonly doctype: IDocumentType;
@@ -50,6 +50,7 @@ export default interface IDocument extends IParentNode {
50
50
  readonly links: IHTMLCollection<IHTMLElement>;
51
51
  readonly referrer: string;
52
52
  readonly currentScript: IHTMLScriptElement;
53
+ adoptedStyleSheets: CSSStyleSheet[];
53
54
  cookie: string;
54
55
  title: string;
55
56
 
@@ -9,14 +9,15 @@ import IHTMLCollection from '../element/IHTMLCollection.js';
9
9
  import ElementUtility from '../element/ElementUtility.js';
10
10
  import HTMLCollection from '../element/HTMLCollection.js';
11
11
  import INodeList from '../node/INodeList.js';
12
+ import NodeTypeEnum from '../node/NodeTypeEnum.js';
12
13
 
13
14
  /**
14
15
  * DocumentFragment.
15
16
  */
16
17
  export default class DocumentFragment extends Node implements IDocumentFragment {
17
- public nodeType = Node.DOCUMENT_FRAGMENT_NODE;
18
18
  public readonly [PropertySymbol.children]: IHTMLCollection<IElement> = new HTMLCollection();
19
19
  public [PropertySymbol.rootNode]: INode = this;
20
+ public [PropertySymbol.nodeType] = NodeTypeEnum.documentFragmentNode;
20
21
 
21
22
  /**
22
23
  * Returns the document fragment children.
@@ -60,7 +61,10 @@ export default class DocumentFragment extends Node implements IDocumentFragment
60
61
  public get textContent(): string {
61
62
  let result = '';
62
63
  for (const childNode of this[PropertySymbol.childNodes]) {
63
- if (childNode.nodeType === Node.ELEMENT_NODE || childNode.nodeType === Node.TEXT_NODE) {
64
+ if (
65
+ childNode[PropertySymbol.nodeType] === NodeTypeEnum.elementNode ||
66
+ childNode[PropertySymbol.nodeType] === NodeTypeEnum.textNode
67
+ ) {
64
68
  result += childNode.textContent;
65
69
  }
66
70
  }
@@ -77,7 +81,7 @@ export default class DocumentFragment extends Node implements IDocumentFragment
77
81
  this.removeChild(child);
78
82
  }
79
83
  if (textContent) {
80
- this.appendChild(this.ownerDocument.createTextNode(textContent));
84
+ this.appendChild(this[PropertySymbol.ownerDocument].createTextNode(textContent));
81
85
  }
82
86
  }
83
87
 
@@ -150,7 +154,7 @@ export default class DocumentFragment extends Node implements IDocumentFragment
150
154
 
151
155
  if (deep) {
152
156
  for (const node of clone[PropertySymbol.childNodes]) {
153
- if (node.nodeType === Node.ELEMENT_NODE) {
157
+ if (node[PropertySymbol.nodeType] === NodeTypeEnum.elementNode) {
154
158
  clone[PropertySymbol.children].push(<IElement>node);
155
159
  }
156
160
  }
@@ -1,13 +1,42 @@
1
1
  import Node from '../node/Node.js';
2
+ import * as PropertySymbol from '../../PropertySymbol.js';
3
+ import NodeTypeEnum from '../node/NodeTypeEnum.js';
2
4
 
3
5
  /**
4
6
  * DocumentType.
5
7
  */
6
8
  export default class DocumentType extends Node {
7
- public readonly nodeType = Node.DOCUMENT_TYPE_NODE;
8
- public name: string = null;
9
- public publicId = '';
10
- public systemId = '';
9
+ public [PropertySymbol.nodeType] = NodeTypeEnum.documentTypeNode;
10
+ public [PropertySymbol.name] = '';
11
+ public [PropertySymbol.publicId] = '';
12
+ public [PropertySymbol.systemId] = '';
13
+
14
+ /**
15
+ * Returns name.
16
+ *
17
+ * @returns Name.
18
+ */
19
+ public get name(): string {
20
+ return this[PropertySymbol.name];
21
+ }
22
+
23
+ /**
24
+ * Returns public ID.
25
+ *
26
+ * @returns Public ID.
27
+ */
28
+ public get publicId(): string {
29
+ return this[PropertySymbol.publicId];
30
+ }
31
+
32
+ /**
33
+ * Returns system ID.
34
+ *
35
+ * @returns System ID.
36
+ */
37
+ public get systemId(): string {
38
+ return this[PropertySymbol.systemId];
39
+ }
11
40
 
12
41
  /**
13
42
  * Node name.
@@ -36,9 +65,9 @@ export default class DocumentType extends Node {
36
65
  */
37
66
  public cloneNode(deep = false): DocumentType {
38
67
  const clone = <DocumentType>super.cloneNode(deep);
39
- clone.name = this.name;
40
- clone.publicId = this.publicId;
41
- clone.systemId = this.systemId;
68
+ clone[PropertySymbol.name] = this[PropertySymbol.name];
69
+ clone[PropertySymbol.publicId] = this[PropertySymbol.publicId];
70
+ clone[PropertySymbol.systemId] = this[PropertySymbol.systemId];
42
71
  return clone;
43
72
  }
44
73
  }