happy-dom 13.0.7 → 13.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

Files changed (606) 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/event/Event.cjs +3 -3
  19. package/cjs/event/Event.cjs.map +1 -1
  20. package/cjs/event/EventTarget.cjs +4 -4
  21. package/cjs/event/EventTarget.cjs.map +1 -1
  22. package/cjs/fetch/Request.cjs +2 -1
  23. package/cjs/fetch/Request.cjs.map +1 -1
  24. package/cjs/fetch/Request.d.ts +4 -4
  25. package/cjs/fetch/Request.d.ts.map +1 -1
  26. package/cjs/form-data/FormData.cjs +7 -7
  27. package/cjs/form-data/FormData.cjs.map +1 -1
  28. package/cjs/mutation-observer/MutationObserver.cjs +3 -3
  29. package/cjs/mutation-observer/MutationObserver.cjs.map +1 -1
  30. package/cjs/named-node-map/NamedNodeMap.cjs +10 -8
  31. package/cjs/named-node-map/NamedNodeMap.cjs.map +1 -1
  32. package/cjs/named-node-map/NamedNodeMap.d.ts.map +1 -1
  33. package/cjs/nodes/attr/Attr.cjs +84 -15
  34. package/cjs/nodes/attr/Attr.cjs.map +1 -1
  35. package/cjs/nodes/attr/Attr.d.ts +40 -8
  36. package/cjs/nodes/attr/Attr.d.ts.map +1 -1
  37. package/cjs/nodes/character-data/CharacterData.cjs +2 -2
  38. package/cjs/nodes/character-data/CharacterData.cjs.map +1 -1
  39. package/cjs/nodes/child-node/ChildNodeUtility.cjs +8 -8
  40. package/cjs/nodes/child-node/ChildNodeUtility.cjs.map +1 -1
  41. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.cjs +27 -3
  42. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.cjs.map +1 -1
  43. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.d.ts.map +1 -1
  44. package/cjs/nodes/comment/Comment.cjs +28 -2
  45. package/cjs/nodes/comment/Comment.cjs.map +1 -1
  46. package/cjs/nodes/comment/Comment.d.ts +3 -1
  47. package/cjs/nodes/comment/Comment.d.ts.map +1 -1
  48. package/cjs/nodes/document/Document.cjs +95 -41
  49. package/cjs/nodes/document/Document.cjs.map +1 -1
  50. package/cjs/nodes/document/Document.d.ts +45 -10
  51. package/cjs/nodes/document/Document.d.ts.map +1 -1
  52. package/cjs/nodes/document/IDocument.d.ts +2 -1
  53. package/cjs/nodes/document/IDocument.d.ts.map +1 -1
  54. package/cjs/nodes/document-fragment/DocumentFragment.cjs +8 -6
  55. package/cjs/nodes/document-fragment/DocumentFragment.cjs.map +1 -1
  56. package/cjs/nodes/document-fragment/DocumentFragment.d.ts +2 -1
  57. package/cjs/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
  58. package/cjs/nodes/document-type/DocumentType.cjs +58 -7
  59. package/cjs/nodes/document-type/DocumentType.cjs.map +1 -1
  60. package/cjs/nodes/document-type/DocumentType.d.ts +24 -4
  61. package/cjs/nodes/document-type/DocumentType.d.ts.map +1 -1
  62. package/cjs/nodes/element/Dataset.cjs +14 -14
  63. package/cjs/nodes/element/Dataset.cjs.map +1 -1
  64. package/cjs/nodes/element/Dataset.d.ts +1 -1
  65. package/cjs/nodes/element/Dataset.d.ts.map +1 -1
  66. package/cjs/nodes/element/Element.cjs +142 -55
  67. package/cjs/nodes/element/Element.cjs.map +1 -1
  68. package/cjs/nodes/element/Element.d.ts +77 -11
  69. package/cjs/nodes/element/Element.d.ts.map +1 -1
  70. package/cjs/nodes/element/ElementNamedNodeMap.cjs +33 -30
  71. package/cjs/nodes/element/ElementNamedNodeMap.cjs.map +1 -1
  72. package/cjs/nodes/element/ElementNamedNodeMap.d.ts.map +1 -1
  73. package/cjs/nodes/element/ElementUtility.cjs +19 -19
  74. package/cjs/nodes/element/ElementUtility.cjs.map +1 -1
  75. package/cjs/nodes/element/ElementUtility.d.ts.map +1 -1
  76. package/cjs/nodes/element/IElement.d.ts +3 -3
  77. package/cjs/nodes/element/IElement.d.ts.map +1 -1
  78. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +6 -6
  79. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
  80. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +1 -1
  81. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  82. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs +7 -5
  83. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs.map +1 -1
  84. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -1
  85. package/cjs/nodes/html-base-element/HTMLBaseElement.cjs +25 -1
  86. package/cjs/nodes/html-base-element/HTMLBaseElement.cjs.map +1 -1
  87. package/cjs/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
  88. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +27 -8
  89. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
  90. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +16 -3
  91. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  92. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs +7 -7
  93. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs.map +1 -1
  94. package/cjs/nodes/html-dialog-element/HTMLDialogElement.cjs +44 -1
  95. package/cjs/nodes/html-dialog-element/HTMLDialogElement.cjs.map +1 -1
  96. package/cjs/nodes/html-dialog-element/HTMLDialogElement.d.ts +14 -1
  97. package/cjs/nodes/html-dialog-element/HTMLDialogElement.d.ts.map +1 -1
  98. package/cjs/nodes/html-document/HTMLDocument.cjs +25 -1
  99. package/cjs/nodes/html-document/HTMLDocument.cjs.map +1 -1
  100. package/cjs/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  101. package/cjs/nodes/html-element/HTMLElement.cjs +137 -32
  102. package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
  103. package/cjs/nodes/html-element/HTMLElement.d.ts +91 -14
  104. package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
  105. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs +4 -3
  106. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs.map +1 -1
  107. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -1
  108. package/cjs/nodes/html-element/HTMLElementUtility.cjs +12 -10
  109. package/cjs/nodes/html-element/HTMLElementUtility.cjs.map +1 -1
  110. package/cjs/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
  111. package/cjs/nodes/html-element/IHTMLElement.d.ts +3 -0
  112. package/cjs/nodes/html-element/IHTMLElement.d.ts.map +1 -1
  113. package/cjs/nodes/html-form-element/HTMLFormElement.cjs +62 -30
  114. package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
  115. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts +22 -3
  116. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  117. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +5 -5
  118. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
  119. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +1 -1
  120. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  121. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs +27 -1
  122. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs.map +1 -1
  123. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -1
  124. package/cjs/nodes/html-iframe-element/HTMLIFrameElementPageLoader.cjs +2 -2
  125. package/cjs/nodes/html-iframe-element/HTMLIFrameElementPageLoader.cjs.map +1 -1
  126. package/cjs/nodes/html-image-element/HTMLImageElement.cjs +128 -26
  127. package/cjs/nodes/html-image-element/HTMLImageElement.cjs.map +1 -1
  128. package/cjs/nodes/html-image-element/HTMLImageElement.d.ts +76 -21
  129. package/cjs/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
  130. package/cjs/nodes/html-input-element/HTMLInputElement.cjs +112 -27
  131. package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
  132. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +67 -10
  133. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  134. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs +7 -7
  135. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs.map +1 -1
  136. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +1 -1
  137. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
  138. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.cjs +26 -2
  139. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.cjs.map +1 -1
  140. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.d.ts.map +1 -1
  141. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +15 -8
  142. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
  143. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +6 -2
  144. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  145. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs +7 -6
  146. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs.map +1 -1
  147. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -1
  148. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.cjs +8 -5
  149. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.cjs.map +1 -1
  150. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.d.ts.map +1 -1
  151. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +154 -53
  152. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
  153. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +86 -12
  154. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  155. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs +4 -4
  156. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs.map +1 -1
  157. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts +1 -1
  158. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  159. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs +3 -3
  160. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs.map +1 -1
  161. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +12 -11
  162. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  163. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
  164. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  165. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs +4 -4
  166. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs.map +1 -1
  167. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.cjs +8 -8
  168. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.cjs.map +1 -1
  169. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.d.ts.map +1 -1
  170. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +63 -32
  171. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
  172. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts +30 -5
  173. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  174. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs +7 -7
  175. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs.map +1 -1
  176. package/cjs/nodes/html-style-element/HTMLStyleElement.cjs +6 -6
  177. package/cjs/nodes/html-style-element/HTMLStyleElement.cjs.map +1 -1
  178. package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts +1 -1
  179. package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
  180. package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs +27 -12
  181. package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs.map +1 -1
  182. package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts +8 -1
  183. package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
  184. package/cjs/nodes/html-template-element/IHTMLTemplateElement.d.ts +1 -1
  185. package/cjs/nodes/html-template-element/IHTMLTemplateElement.d.ts.map +1 -1
  186. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +27 -9
  187. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
  188. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +16 -3
  189. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  190. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs +7 -7
  191. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs.map +1 -1
  192. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs +24 -17
  193. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs.map +1 -1
  194. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  195. package/cjs/nodes/node/INode.d.ts +2 -2
  196. package/cjs/nodes/node/INode.d.ts.map +1 -1
  197. package/cjs/nodes/node/Node.cjs +95 -56
  198. package/cjs/nodes/node/Node.cjs.map +1 -1
  199. package/cjs/nodes/node/Node.d.ts +44 -20
  200. package/cjs/nodes/node/Node.d.ts.map +1 -1
  201. package/cjs/nodes/node/NodeUtility.cjs +37 -37
  202. package/cjs/nodes/node/NodeUtility.cjs.map +1 -1
  203. package/cjs/nodes/node/NodeUtility.d.ts.map +1 -1
  204. package/cjs/nodes/parent-node/ParentNodeUtility.cjs +8 -5
  205. package/cjs/nodes/parent-node/ParentNodeUtility.cjs.map +1 -1
  206. package/cjs/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
  207. package/cjs/nodes/processing-instruction/ProcessingInstruction.cjs +35 -1
  208. package/cjs/nodes/processing-instruction/ProcessingInstruction.cjs.map +1 -1
  209. package/cjs/nodes/processing-instruction/ProcessingInstruction.d.ts +9 -2
  210. package/cjs/nodes/processing-instruction/ProcessingInstruction.d.ts.map +1 -1
  211. package/cjs/nodes/shadow-root/IShadowRoot.d.ts +2 -0
  212. package/cjs/nodes/shadow-root/IShadowRoot.d.ts.map +1 -1
  213. package/cjs/nodes/shadow-root/ShadowRoot.cjs +44 -7
  214. package/cjs/nodes/shadow-root/ShadowRoot.cjs.map +1 -1
  215. package/cjs/nodes/shadow-root/ShadowRoot.d.ts +28 -3
  216. package/cjs/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
  217. package/cjs/nodes/svg-element/SVGElement.cjs +7 -6
  218. package/cjs/nodes/svg-element/SVGElement.cjs.map +1 -1
  219. package/cjs/nodes/svg-element/SVGElement.d.ts +2 -2
  220. package/cjs/nodes/svg-element/SVGElement.d.ts.map +1 -1
  221. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs +4 -3
  222. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs.map +1 -1
  223. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -1
  224. package/cjs/nodes/text/Text.cjs +7 -6
  225. package/cjs/nodes/text/Text.cjs.map +1 -1
  226. package/cjs/nodes/text/Text.d.ts +2 -1
  227. package/cjs/nodes/text/Text.d.ts.map +1 -1
  228. package/cjs/query-selector/QuerySelector.cjs +2 -2
  229. package/cjs/query-selector/QuerySelector.cjs.map +1 -1
  230. package/cjs/query-selector/SelectorItem.cjs +16 -16
  231. package/cjs/query-selector/SelectorItem.cjs.map +1 -1
  232. package/cjs/query-selector/SelectorItem.d.ts.map +1 -1
  233. package/cjs/range/Range.cjs +91 -79
  234. package/cjs/range/Range.cjs.map +1 -1
  235. package/cjs/range/Range.d.ts.map +1 -1
  236. package/cjs/range/RangeUtility.cjs +5 -4
  237. package/cjs/range/RangeUtility.cjs.map +1 -1
  238. package/cjs/range/RangeUtility.d.ts.map +1 -1
  239. package/cjs/selection/Selection.cjs +15 -15
  240. package/cjs/selection/Selection.cjs.map +1 -1
  241. package/cjs/tree-walker/TreeWalker.cjs +12 -6
  242. package/cjs/tree-walker/TreeWalker.cjs.map +1 -1
  243. package/cjs/tree-walker/TreeWalker.d.ts.map +1 -1
  244. package/cjs/validity-state/ValidityState.cjs +1 -1
  245. package/cjs/validity-state/ValidityState.cjs.map +1 -1
  246. package/cjs/version.cjs +1 -1
  247. package/cjs/window/BrowserWindow.cjs +2 -2
  248. package/cjs/window/BrowserWindow.cjs.map +1 -1
  249. package/cjs/window/WindowErrorUtility.cjs +1 -1
  250. package/cjs/window/WindowErrorUtility.cjs.map +1 -1
  251. package/cjs/window/WindowErrorUtility.d.ts.map +1 -1
  252. package/cjs/xml-http-request/XMLHttpRequest.cjs +1 -1
  253. package/cjs/xml-http-request/XMLHttpRequest.cjs.map +1 -1
  254. package/cjs/xml-parser/XMLParser.cjs +16 -12
  255. package/cjs/xml-parser/XMLParser.cjs.map +1 -1
  256. package/cjs/xml-parser/XMLParser.d.ts.map +1 -1
  257. package/cjs/xml-serializer/XMLSerializer.cjs +36 -35
  258. package/cjs/xml-serializer/XMLSerializer.cjs.map +1 -1
  259. package/cjs/xml-serializer/XMLSerializer.d.ts +8 -1
  260. package/cjs/xml-serializer/XMLSerializer.d.ts.map +1 -1
  261. package/lib/PropertySymbol.d.ts +67 -1
  262. package/lib/PropertySymbol.d.ts.map +1 -1
  263. package/lib/PropertySymbol.js +67 -1
  264. package/lib/PropertySymbol.js.map +1 -1
  265. package/lib/browser/utilities/BrowserFrameNavigator.js +1 -1
  266. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  267. package/lib/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  268. package/lib/css/declaration/AbstractCSSStyleDeclaration.js +17 -16
  269. package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
  270. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  271. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +43 -26
  272. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
  273. package/lib/dom-implementation/DOMImplementation.js +6 -6
  274. package/lib/dom-implementation/DOMImplementation.js.map +1 -1
  275. package/lib/dom-parser/DOMParser.d.ts.map +1 -1
  276. package/lib/dom-parser/DOMParser.js +2 -2
  277. package/lib/dom-parser/DOMParser.js.map +1 -1
  278. package/lib/event/Event.js +3 -3
  279. package/lib/event/Event.js.map +1 -1
  280. package/lib/event/EventTarget.js +4 -4
  281. package/lib/event/EventTarget.js.map +1 -1
  282. package/lib/fetch/Request.d.ts +4 -4
  283. package/lib/fetch/Request.d.ts.map +1 -1
  284. package/lib/fetch/Request.js +2 -1
  285. package/lib/fetch/Request.js.map +1 -1
  286. package/lib/form-data/FormData.js +7 -7
  287. package/lib/form-data/FormData.js.map +1 -1
  288. package/lib/mutation-observer/MutationObserver.js +3 -3
  289. package/lib/mutation-observer/MutationObserver.js.map +1 -1
  290. package/lib/named-node-map/NamedNodeMap.d.ts.map +1 -1
  291. package/lib/named-node-map/NamedNodeMap.js +10 -8
  292. package/lib/named-node-map/NamedNodeMap.js.map +1 -1
  293. package/lib/nodes/attr/Attr.d.ts +40 -8
  294. package/lib/nodes/attr/Attr.d.ts.map +1 -1
  295. package/lib/nodes/attr/Attr.js +63 -16
  296. package/lib/nodes/attr/Attr.js.map +1 -1
  297. package/lib/nodes/character-data/CharacterData.js +2 -2
  298. package/lib/nodes/character-data/CharacterData.js.map +1 -1
  299. package/lib/nodes/child-node/ChildNodeUtility.js +8 -8
  300. package/lib/nodes/child-node/ChildNodeUtility.js.map +1 -1
  301. package/lib/nodes/child-node/NonDocumentChildNodeUtility.d.ts.map +1 -1
  302. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js +4 -3
  303. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js.map +1 -1
  304. package/lib/nodes/comment/Comment.d.ts +3 -1
  305. package/lib/nodes/comment/Comment.d.ts.map +1 -1
  306. package/lib/nodes/comment/Comment.js +7 -3
  307. package/lib/nodes/comment/Comment.js.map +1 -1
  308. package/lib/nodes/document/Document.d.ts +45 -10
  309. package/lib/nodes/document/Document.d.ts.map +1 -1
  310. package/lib/nodes/document/Document.js +95 -41
  311. package/lib/nodes/document/Document.js.map +1 -1
  312. package/lib/nodes/document/IDocument.d.ts +2 -1
  313. package/lib/nodes/document/IDocument.d.ts.map +1 -1
  314. package/lib/nodes/document-fragment/DocumentFragment.d.ts +2 -1
  315. package/lib/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
  316. package/lib/nodes/document-fragment/DocumentFragment.js +8 -6
  317. package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
  318. package/lib/nodes/document-type/DocumentType.d.ts +24 -4
  319. package/lib/nodes/document-type/DocumentType.d.ts.map +1 -1
  320. package/lib/nodes/document-type/DocumentType.js +37 -8
  321. package/lib/nodes/document-type/DocumentType.js.map +1 -1
  322. package/lib/nodes/element/Dataset.d.ts +1 -1
  323. package/lib/nodes/element/Dataset.d.ts.map +1 -1
  324. package/lib/nodes/element/Dataset.js +14 -14
  325. package/lib/nodes/element/Dataset.js.map +1 -1
  326. package/lib/nodes/element/Element.d.ts +77 -11
  327. package/lib/nodes/element/Element.d.ts.map +1 -1
  328. package/lib/nodes/element/Element.js +142 -55
  329. package/lib/nodes/element/Element.js.map +1 -1
  330. package/lib/nodes/element/ElementNamedNodeMap.d.ts.map +1 -1
  331. package/lib/nodes/element/ElementNamedNodeMap.js +33 -30
  332. package/lib/nodes/element/ElementNamedNodeMap.js.map +1 -1
  333. package/lib/nodes/element/ElementUtility.d.ts.map +1 -1
  334. package/lib/nodes/element/ElementUtility.js +19 -19
  335. package/lib/nodes/element/ElementUtility.js.map +1 -1
  336. package/lib/nodes/element/IElement.d.ts +3 -3
  337. package/lib/nodes/element/IElement.d.ts.map +1 -1
  338. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +1 -1
  339. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  340. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +6 -6
  341. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  342. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -1
  343. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js +7 -5
  344. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js.map +1 -1
  345. package/lib/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
  346. package/lib/nodes/html-base-element/HTMLBaseElement.js +2 -1
  347. package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -1
  348. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +16 -3
  349. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  350. package/lib/nodes/html-button-element/HTMLButtonElement.js +27 -8
  351. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  352. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js +7 -7
  353. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js.map +1 -1
  354. package/lib/nodes/html-dialog-element/HTMLDialogElement.d.ts +14 -1
  355. package/lib/nodes/html-dialog-element/HTMLDialogElement.d.ts.map +1 -1
  356. package/lib/nodes/html-dialog-element/HTMLDialogElement.js +23 -2
  357. package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -1
  358. package/lib/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  359. package/lib/nodes/html-document/HTMLDocument.js +2 -1
  360. package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
  361. package/lib/nodes/html-element/HTMLElement.d.ts +91 -14
  362. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  363. package/lib/nodes/html-element/HTMLElement.js +137 -32
  364. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  365. package/lib/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -1
  366. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js +4 -3
  367. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js.map +1 -1
  368. package/lib/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
  369. package/lib/nodes/html-element/HTMLElementUtility.js +12 -10
  370. package/lib/nodes/html-element/HTMLElementUtility.js.map +1 -1
  371. package/lib/nodes/html-element/IHTMLElement.d.ts +3 -0
  372. package/lib/nodes/html-element/IHTMLElement.d.ts.map +1 -1
  373. package/lib/nodes/html-form-element/HTMLFormElement.d.ts +22 -3
  374. package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  375. package/lib/nodes/html-form-element/HTMLFormElement.js +62 -30
  376. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  377. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +1 -1
  378. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  379. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +5 -5
  380. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  381. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -1
  382. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js +4 -1
  383. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js.map +1 -1
  384. package/lib/nodes/html-iframe-element/HTMLIFrameElementPageLoader.js +2 -2
  385. package/lib/nodes/html-iframe-element/HTMLIFrameElementPageLoader.js.map +1 -1
  386. package/lib/nodes/html-image-element/HTMLImageElement.d.ts +76 -21
  387. package/lib/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
  388. package/lib/nodes/html-image-element/HTMLImageElement.js +107 -27
  389. package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
  390. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +67 -10
  391. package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  392. package/lib/nodes/html-input-element/HTMLInputElement.js +112 -27
  393. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  394. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js +7 -7
  395. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js.map +1 -1
  396. package/lib/nodes/html-label-element/HTMLLabelElement.js +1 -1
  397. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  398. package/lib/nodes/html-label-element/HTMLLabelElementUtility.d.ts.map +1 -1
  399. package/lib/nodes/html-label-element/HTMLLabelElementUtility.js +3 -2
  400. package/lib/nodes/html-label-element/HTMLLabelElementUtility.js.map +1 -1
  401. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +6 -2
  402. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  403. package/lib/nodes/html-link-element/HTMLLinkElement.js +15 -8
  404. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  405. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -1
  406. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js +7 -6
  407. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js.map +1 -1
  408. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.d.ts.map +1 -1
  409. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.js +8 -5
  410. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.js.map +1 -1
  411. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +86 -12
  412. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  413. package/lib/nodes/html-media-element/HTMLMediaElement.js +132 -54
  414. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  415. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +1 -1
  416. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  417. package/lib/nodes/html-option-element/HTMLOptionElement.js +4 -4
  418. package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
  419. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js +3 -3
  420. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js.map +1 -1
  421. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
  422. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  423. package/lib/nodes/html-script-element/HTMLScriptElement.js +12 -11
  424. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  425. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js +4 -4
  426. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js.map +1 -1
  427. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.d.ts.map +1 -1
  428. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.js +8 -8
  429. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.js.map +1 -1
  430. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +30 -5
  431. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  432. package/lib/nodes/html-select-element/HTMLSelectElement.js +63 -32
  433. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  434. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js +7 -7
  435. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js.map +1 -1
  436. package/lib/nodes/html-style-element/HTMLStyleElement.d.ts +1 -1
  437. package/lib/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
  438. package/lib/nodes/html-style-element/HTMLStyleElement.js +6 -6
  439. package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
  440. package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts +8 -1
  441. package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
  442. package/lib/nodes/html-template-element/HTMLTemplateElement.js +29 -13
  443. package/lib/nodes/html-template-element/HTMLTemplateElement.js.map +1 -1
  444. package/lib/nodes/html-template-element/IHTMLTemplateElement.d.ts +1 -1
  445. package/lib/nodes/html-template-element/IHTMLTemplateElement.d.ts.map +1 -1
  446. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +16 -3
  447. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  448. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +27 -9
  449. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  450. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js +7 -7
  451. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js.map +1 -1
  452. package/lib/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  453. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js +24 -17
  454. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js.map +1 -1
  455. package/lib/nodes/node/INode.d.ts +2 -2
  456. package/lib/nodes/node/INode.d.ts.map +1 -1
  457. package/lib/nodes/node/Node.d.ts +44 -20
  458. package/lib/nodes/node/Node.d.ts.map +1 -1
  459. package/lib/nodes/node/Node.js +95 -56
  460. package/lib/nodes/node/Node.js.map +1 -1
  461. package/lib/nodes/node/NodeUtility.d.ts.map +1 -1
  462. package/lib/nodes/node/NodeUtility.js +37 -37
  463. package/lib/nodes/node/NodeUtility.js.map +1 -1
  464. package/lib/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
  465. package/lib/nodes/parent-node/ParentNodeUtility.js +8 -5
  466. package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
  467. package/lib/nodes/processing-instruction/ProcessingInstruction.d.ts +9 -2
  468. package/lib/nodes/processing-instruction/ProcessingInstruction.d.ts.map +1 -1
  469. package/lib/nodes/processing-instruction/ProcessingInstruction.js +14 -2
  470. package/lib/nodes/processing-instruction/ProcessingInstruction.js.map +1 -1
  471. package/lib/nodes/shadow-root/IShadowRoot.d.ts +2 -0
  472. package/lib/nodes/shadow-root/IShadowRoot.d.ts.map +1 -1
  473. package/lib/nodes/shadow-root/ShadowRoot.d.ts +28 -3
  474. package/lib/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
  475. package/lib/nodes/shadow-root/ShadowRoot.js +46 -8
  476. package/lib/nodes/shadow-root/ShadowRoot.js.map +1 -1
  477. package/lib/nodes/svg-element/SVGElement.d.ts +2 -2
  478. package/lib/nodes/svg-element/SVGElement.d.ts.map +1 -1
  479. package/lib/nodes/svg-element/SVGElement.js +7 -6
  480. package/lib/nodes/svg-element/SVGElement.js.map +1 -1
  481. package/lib/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -1
  482. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js +4 -3
  483. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js.map +1 -1
  484. package/lib/nodes/text/Text.d.ts +2 -1
  485. package/lib/nodes/text/Text.d.ts.map +1 -1
  486. package/lib/nodes/text/Text.js +7 -6
  487. package/lib/nodes/text/Text.js.map +1 -1
  488. package/lib/query-selector/QuerySelector.js +2 -2
  489. package/lib/query-selector/QuerySelector.js.map +1 -1
  490. package/lib/query-selector/SelectorItem.d.ts.map +1 -1
  491. package/lib/query-selector/SelectorItem.js +16 -16
  492. package/lib/query-selector/SelectorItem.js.map +1 -1
  493. package/lib/range/Range.d.ts.map +1 -1
  494. package/lib/range/Range.js +91 -79
  495. package/lib/range/Range.js.map +1 -1
  496. package/lib/range/RangeUtility.d.ts.map +1 -1
  497. package/lib/range/RangeUtility.js +5 -4
  498. package/lib/range/RangeUtility.js.map +1 -1
  499. package/lib/selection/Selection.js +15 -15
  500. package/lib/selection/Selection.js.map +1 -1
  501. package/lib/tree-walker/TreeWalker.d.ts.map +1 -1
  502. package/lib/tree-walker/TreeWalker.js +12 -6
  503. package/lib/tree-walker/TreeWalker.js.map +1 -1
  504. package/lib/validity-state/ValidityState.js +1 -1
  505. package/lib/validity-state/ValidityState.js.map +1 -1
  506. package/lib/version.js +1 -1
  507. package/lib/window/BrowserWindow.js +2 -2
  508. package/lib/window/BrowserWindow.js.map +1 -1
  509. package/lib/window/WindowErrorUtility.d.ts.map +1 -1
  510. package/lib/window/WindowErrorUtility.js +1 -1
  511. package/lib/window/WindowErrorUtility.js.map +1 -1
  512. package/lib/xml-http-request/XMLHttpRequest.js +1 -1
  513. package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
  514. package/lib/xml-parser/XMLParser.d.ts.map +1 -1
  515. package/lib/xml-parser/XMLParser.js +16 -12
  516. package/lib/xml-parser/XMLParser.js.map +1 -1
  517. package/lib/xml-serializer/XMLSerializer.d.ts +8 -1
  518. package/lib/xml-serializer/XMLSerializer.d.ts.map +1 -1
  519. package/lib/xml-serializer/XMLSerializer.js +37 -37
  520. package/lib/xml-serializer/XMLSerializer.js.map +1 -1
  521. package/package.json +1 -1
  522. package/src/PropertySymbol.ts +67 -1
  523. package/src/browser/utilities/BrowserFrameNavigator.ts +1 -1
  524. package/src/css/declaration/AbstractCSSStyleDeclaration.ts +17 -16
  525. package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +64 -28
  526. package/src/dom-implementation/DOMImplementation.ts +6 -6
  527. package/src/dom-parser/DOMParser.ts +2 -2
  528. package/src/event/Event.ts +3 -3
  529. package/src/event/EventTarget.ts +4 -4
  530. package/src/fetch/Request.ts +7 -5
  531. package/src/form-data/FormData.ts +9 -9
  532. package/src/mutation-observer/MutationObserver.ts +3 -3
  533. package/src/named-node-map/NamedNodeMap.ts +12 -8
  534. package/src/nodes/attr/Attr.ts +59 -11
  535. package/src/nodes/character-data/CharacterData.ts +2 -2
  536. package/src/nodes/child-node/ChildNodeUtility.ts +8 -8
  537. package/src/nodes/child-node/NonDocumentChildNodeUtility.ts +4 -3
  538. package/src/nodes/comment/Comment.ts +3 -2
  539. package/src/nodes/document/Document.ts +106 -46
  540. package/src/nodes/document/IDocument.ts +2 -1
  541. package/src/nodes/document-fragment/DocumentFragment.ts +8 -4
  542. package/src/nodes/document-type/DocumentType.ts +36 -7
  543. package/src/nodes/element/Dataset.ts +23 -17
  544. package/src/nodes/element/Element.ts +166 -61
  545. package/src/nodes/element/ElementNamedNodeMap.ts +58 -33
  546. package/src/nodes/element/ElementUtility.ts +26 -19
  547. package/src/nodes/element/IElement.ts +3 -3
  548. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +5 -3
  549. package/src/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.ts +11 -5
  550. package/src/nodes/html-base-element/HTMLBaseElement.ts +2 -1
  551. package/src/nodes/html-button-element/HTMLButtonElement.ts +29 -6
  552. package/src/nodes/html-button-element/HTMLButtonElementNamedNodeMap.ts +7 -7
  553. package/src/nodes/html-dialog-element/HTMLDialogElement.ts +21 -1
  554. package/src/nodes/html-document/HTMLDocument.ts +2 -1
  555. package/src/nodes/html-element/HTMLElement.ts +161 -33
  556. package/src/nodes/html-element/HTMLElementNamedNodeMap.ts +6 -3
  557. package/src/nodes/html-element/HTMLElementUtility.ts +17 -10
  558. package/src/nodes/html-element/IHTMLElement.ts +3 -0
  559. package/src/nodes/html-form-element/HTMLFormElement.ts +67 -27
  560. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +6 -5
  561. package/src/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.ts +6 -1
  562. package/src/nodes/html-iframe-element/HTMLIFrameElementPageLoader.ts +2 -2
  563. package/src/nodes/html-image-element/HTMLImageElement.ts +115 -28
  564. package/src/nodes/html-input-element/HTMLInputElement.ts +125 -30
  565. package/src/nodes/html-input-element/HTMLInputElementNamedNodeMap.ts +7 -7
  566. package/src/nodes/html-label-element/HTMLLabelElement.ts +1 -1
  567. package/src/nodes/html-label-element/HTMLLabelElementUtility.ts +3 -2
  568. package/src/nodes/html-link-element/HTMLLinkElement.ts +15 -5
  569. package/src/nodes/html-link-element/HTMLLinkElementNamedNodeMap.ts +9 -6
  570. package/src/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.ts +13 -5
  571. package/src/nodes/html-media-element/HTMLMediaElement.ts +142 -42
  572. package/src/nodes/html-option-element/HTMLOptionElement.ts +3 -1
  573. package/src/nodes/html-option-element/HTMLOptionElementNamedNodeMap.ts +3 -3
  574. package/src/nodes/html-script-element/HTMLScriptElement.ts +19 -12
  575. package/src/nodes/html-script-element/HTMLScriptElementNamedNodeMap.ts +4 -4
  576. package/src/nodes/html-script-element/HTMLScriptElementScriptLoader.ts +13 -9
  577. package/src/nodes/html-select-element/HTMLSelectElement.ts +69 -31
  578. package/src/nodes/html-select-element/HTMLSelectElementNamedNodeMap.ts +7 -7
  579. package/src/nodes/html-style-element/HTMLStyleElement.ts +6 -6
  580. package/src/nodes/html-template-element/HTMLTemplateElement.ts +28 -12
  581. package/src/nodes/html-template-element/IHTMLTemplateElement.ts +1 -1
  582. package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +29 -6
  583. package/src/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.ts +7 -7
  584. package/src/nodes/html-unknown-element/HTMLUnknownElement.ts +38 -17
  585. package/src/nodes/node/INode.ts +2 -2
  586. package/src/nodes/node/Node.ts +129 -56
  587. package/src/nodes/node/NodeUtility.ts +44 -37
  588. package/src/nodes/parent-node/ParentNodeUtility.ts +10 -5
  589. package/src/nodes/processing-instruction/ProcessingInstruction.ts +12 -2
  590. package/src/nodes/shadow-root/IShadowRoot.ts +2 -0
  591. package/src/nodes/shadow-root/ShadowRoot.ts +50 -8
  592. package/src/nodes/svg-element/SVGElement.ts +6 -5
  593. package/src/nodes/svg-element/SVGElementNamedNodeMap.ts +6 -3
  594. package/src/nodes/text/Text.ts +5 -5
  595. package/src/query-selector/QuerySelector.ts +2 -2
  596. package/src/query-selector/SelectorItem.ts +20 -16
  597. package/src/range/Range.ts +109 -82
  598. package/src/range/RangeUtility.ts +7 -4
  599. package/src/selection/Selection.ts +15 -15
  600. package/src/tree-walker/TreeWalker.ts +22 -6
  601. package/src/validity-state/ValidityState.ts +1 -1
  602. package/src/window/BrowserWindow.ts +2 -2
  603. package/src/window/WindowErrorUtility.ts +3 -1
  604. package/src/xml-http-request/XMLHttpRequest.ts +1 -1
  605. package/src/xml-parser/XMLParser.ts +18 -12
  606. package/src/xml-serializer/XMLSerializer.ts +22 -20
@@ -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
  }
@@ -1,4 +1,4 @@
1
- import Element from '../element/Element.js';
1
+ import Element from './Element.js';
2
2
  import * as PropertySymbol from '../../PropertySymbol.js';
3
3
  import HTMLElementNamedNodeMap from '../html-element/HTMLElementNamedNodeMap.js';
4
4
 
@@ -23,11 +23,11 @@ export default class Dataset {
23
23
  // Build the initial dataset record from all data attributes.
24
24
  const dataset: DatasetRecord = {};
25
25
 
26
- for (let i = 0, max = element.attributes.length; i < max; i++) {
27
- const attribute = element.attributes[i];
28
- if (attribute.name.startsWith('data-')) {
29
- const key = Dataset.kebabToCamelCase(attribute.name.replace('data-', ''));
30
- dataset[key] = attribute.value;
26
+ for (let i = 0, max = element[PropertySymbol.attributes].length; i < max; i++) {
27
+ const attribute = element[PropertySymbol.attributes][i];
28
+ if (attribute[PropertySymbol.name].startsWith('data-')) {
29
+ const key = Dataset.kebabToCamelCase(attribute[PropertySymbol.name].replace('data-', ''));
30
+ dataset[key] = attribute[PropertySymbol.value];
31
31
  }
32
32
  }
33
33
 
@@ -35,9 +35,11 @@ export default class Dataset {
35
35
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
36
36
  this.proxy = new Proxy(dataset, {
37
37
  get(dataset: DatasetRecord, key: string): string {
38
- const attribute = element.attributes.getNamedItem('data-' + Dataset.camelCaseToKebab(key));
38
+ const attribute = element[PropertySymbol.attributes].getNamedItem(
39
+ 'data-' + Dataset.camelCaseToKebab(key)
40
+ );
39
41
  if (attribute) {
40
- return (dataset[key] = attribute.value);
42
+ return (dataset[key] = attribute[PropertySymbol.value]);
41
43
  }
42
44
  delete dataset[key];
43
45
  return undefined;
@@ -48,9 +50,9 @@ export default class Dataset {
48
50
  return true;
49
51
  },
50
52
  deleteProperty(dataset: DatasetRecord, key: string): boolean {
51
- (<HTMLElementNamedNodeMap>element.attributes)[PropertySymbol.removeNamedItem](
52
- 'data-' + Dataset.camelCaseToKebab(key)
53
- );
53
+ (<HTMLElementNamedNodeMap>element[PropertySymbol.attributes])[
54
+ PropertySymbol.removeNamedItem
55
+ ]('data-' + Dataset.camelCaseToKebab(key));
54
56
  return delete dataset[key];
55
57
  },
56
58
  ownKeys(dataset: DatasetRecord): string[] {
@@ -59,12 +61,14 @@ export default class Dataset {
59
61
  // "The result List must contain the keys of all non-configurable own properties of the target object."
60
62
  const keys = [];
61
63
  const deleteKeys = [];
62
- for (let i = 0, max = element.attributes.length; i < max; i++) {
63
- const attribute = element.attributes[i];
64
- if (attribute.name.startsWith('data-')) {
65
- const key = Dataset.kebabToCamelCase(attribute.name.replace('data-', ''));
64
+ for (let i = 0, max = element[PropertySymbol.attributes].length; i < max; i++) {
65
+ const attribute = element[PropertySymbol.attributes][i];
66
+ if (attribute[PropertySymbol.name].startsWith('data-')) {
67
+ const key = Dataset.kebabToCamelCase(
68
+ attribute[PropertySymbol.name].replace('data-', '')
69
+ );
66
70
  keys.push(key);
67
- dataset[key] = attribute.value;
71
+ dataset[key] = attribute[PropertySymbol.value];
68
72
  if (!dataset[key]) {
69
73
  deleteKeys.push(key);
70
74
  }
@@ -76,7 +80,9 @@ export default class Dataset {
76
80
  return keys;
77
81
  },
78
82
  has(_dataset: DatasetRecord, key: string): boolean {
79
- return !!element.attributes.getNamedItem('data-' + Dataset.camelCaseToKebab(key));
83
+ return !!element[PropertySymbol.attributes].getNamedItem(
84
+ 'data-' + Dataset.camelCaseToKebab(key)
85
+ );
80
86
  }
81
87
  });
82
88
  }