happy-dom 15.0.0 → 15.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 (804) hide show
  1. package/cjs/ClassMethodBinder.cjs +8 -6
  2. package/cjs/ClassMethodBinder.cjs.map +1 -1
  3. package/cjs/ClassMethodBinder.d.ts +4 -2
  4. package/cjs/ClassMethodBinder.d.ts.map +1 -1
  5. package/cjs/PropertySymbol.cjs +20 -9
  6. package/cjs/PropertySymbol.cjs.map +1 -1
  7. package/cjs/PropertySymbol.d.ts +15 -4
  8. package/cjs/PropertySymbol.d.ts.map +1 -1
  9. package/cjs/async-task-manager/AsyncTaskManager.cjs +64 -35
  10. package/cjs/async-task-manager/AsyncTaskManager.cjs.map +1 -1
  11. package/cjs/async-task-manager/AsyncTaskManager.d.ts +11 -1
  12. package/cjs/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  13. package/cjs/browser/Browser.cjs +30 -0
  14. package/cjs/browser/Browser.cjs.map +1 -1
  15. package/cjs/browser/Browser.d.ts +3 -0
  16. package/cjs/browser/Browser.d.ts.map +1 -1
  17. package/cjs/browser/BrowserFrame.cjs +3 -7
  18. package/cjs/browser/BrowserFrame.cjs.map +1 -1
  19. package/cjs/browser/BrowserFrame.d.ts +1 -4
  20. package/cjs/browser/BrowserFrame.d.ts.map +1 -1
  21. package/cjs/browser/DefaultBrowserSettings.cjs +2 -1
  22. package/cjs/browser/DefaultBrowserSettings.cjs.map +1 -1
  23. package/cjs/browser/DefaultBrowserSettings.d.ts.map +1 -1
  24. package/cjs/browser/detached-browser/DetachedBrowser.cjs +30 -0
  25. package/cjs/browser/detached-browser/DetachedBrowser.cjs.map +1 -1
  26. package/cjs/browser/detached-browser/DetachedBrowser.d.ts +3 -0
  27. package/cjs/browser/detached-browser/DetachedBrowser.d.ts.map +1 -1
  28. package/cjs/browser/detached-browser/DetachedBrowserFrame.cjs +3 -7
  29. package/cjs/browser/detached-browser/DetachedBrowserFrame.cjs.map +1 -1
  30. package/cjs/browser/detached-browser/DetachedBrowserFrame.d.ts +1 -4
  31. package/cjs/browser/detached-browser/DetachedBrowserFrame.d.ts.map +1 -1
  32. package/cjs/browser/types/IBrowser.cjs +24 -0
  33. package/cjs/browser/types/IBrowser.cjs.map +1 -1
  34. package/cjs/browser/types/IBrowser.d.ts +3 -0
  35. package/cjs/browser/types/IBrowser.d.ts.map +1 -1
  36. package/cjs/browser/types/IBrowserFrame.d.ts +0 -3
  37. package/cjs/browser/types/IBrowserFrame.d.ts.map +1 -1
  38. package/cjs/browser/types/IBrowserSettings.d.ts +1 -0
  39. package/cjs/browser/types/IBrowserSettings.d.ts.map +1 -1
  40. package/cjs/browser/utilities/BrowserExceptionObserver.cjs +100 -0
  41. package/cjs/browser/utilities/BrowserExceptionObserver.cjs.map +1 -0
  42. package/{lib/browser/utilities/BrowserFrameExceptionObserver.d.ts → cjs/browser/utilities/BrowserExceptionObserver.d.ts} +9 -7
  43. package/cjs/browser/utilities/BrowserExceptionObserver.d.ts.map +1 -0
  44. package/cjs/browser/utilities/BrowserFrameFactory.cjs +27 -35
  45. package/cjs/browser/utilities/BrowserFrameFactory.cjs.map +1 -1
  46. package/cjs/browser/utilities/BrowserFrameFactory.d.ts.map +1 -1
  47. package/cjs/browser/utilities/BrowserFrameNavigator.cjs +52 -29
  48. package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
  49. package/cjs/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
  50. package/cjs/clipboard/Clipboard.cjs +18 -15
  51. package/cjs/clipboard/Clipboard.cjs.map +1 -1
  52. package/cjs/clipboard/Clipboard.d.ts +2 -2
  53. package/cjs/clipboard/Clipboard.d.ts.map +1 -1
  54. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs +27 -4
  55. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs.map +1 -1
  56. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs +6 -5
  57. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs.map +1 -1
  58. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  59. package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.cjs +5 -5
  60. package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.cjs.map +1 -1
  61. package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts +2 -2
  62. package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts.map +1 -1
  63. package/cjs/custom-element/CustomElementRegistry.cjs +37 -17
  64. package/cjs/custom-element/CustomElementRegistry.cjs.map +1 -1
  65. package/cjs/custom-element/CustomElementRegistry.d.ts +2 -3
  66. package/cjs/custom-element/CustomElementRegistry.d.ts.map +1 -1
  67. package/cjs/dom-implementation/DOMImplementation.cjs +12 -7
  68. package/cjs/dom-implementation/DOMImplementation.cjs.map +1 -1
  69. package/cjs/dom-implementation/DOMImplementation.d.ts +7 -3
  70. package/cjs/dom-implementation/DOMImplementation.d.ts.map +1 -1
  71. package/cjs/dom-parser/DOMParser.cjs +6 -15
  72. package/cjs/dom-parser/DOMParser.cjs.map +1 -1
  73. package/cjs/dom-parser/DOMParser.d.ts +2 -6
  74. package/cjs/dom-parser/DOMParser.d.ts.map +1 -1
  75. package/cjs/event/Event.cjs +76 -18
  76. package/cjs/event/Event.cjs.map +1 -1
  77. package/cjs/event/Event.d.ts +49 -7
  78. package/cjs/event/Event.d.ts.map +1 -1
  79. package/cjs/event/EventTarget.cjs +153 -141
  80. package/cjs/event/EventTarget.cjs.map +1 -1
  81. package/cjs/event/EventTarget.d.ts +12 -8
  82. package/cjs/event/EventTarget.d.ts.map +1 -1
  83. package/cjs/event/MessagePort.cjs.map +1 -1
  84. package/cjs/event/MessagePort.d.ts +1 -2
  85. package/cjs/event/MessagePort.d.ts.map +1 -1
  86. package/cjs/event/{IEventListener.cjs → TEventListener.cjs} +1 -1
  87. package/cjs/event/TEventListener.cjs.map +1 -0
  88. package/cjs/event/TEventListener.d.ts +5 -0
  89. package/cjs/event/TEventListener.d.ts.map +1 -0
  90. package/cjs/event/TEventListenerFunction.cjs +3 -0
  91. package/cjs/event/TEventListenerFunction.cjs.map +1 -0
  92. package/cjs/event/TEventListenerFunction.d.ts +4 -0
  93. package/cjs/event/TEventListenerFunction.d.ts.map +1 -0
  94. package/cjs/event/{IMessagePort.cjs → TEventListenerObject.cjs} +1 -1
  95. package/cjs/event/TEventListenerObject.cjs.map +1 -0
  96. package/cjs/event/TEventListenerObject.d.ts +6 -0
  97. package/cjs/event/TEventListenerObject.d.ts.map +1 -0
  98. package/cjs/event/events/CustomEvent.cjs +38 -6
  99. package/cjs/event/events/CustomEvent.cjs.map +1 -1
  100. package/cjs/event/events/CustomEvent.d.ts +8 -1
  101. package/cjs/event/events/CustomEvent.d.ts.map +1 -1
  102. package/cjs/event/events/IErrorEventInit.d.ts.map +1 -1
  103. package/cjs/event/events/IMessageEventInit.d.ts +2 -2
  104. package/cjs/event/events/IMessageEventInit.d.ts.map +1 -1
  105. package/cjs/event/events/MessageEvent.cjs.map +1 -1
  106. package/cjs/event/events/MessageEvent.d.ts +2 -2
  107. package/cjs/event/events/MessageEvent.d.ts.map +1 -1
  108. package/cjs/fetch/AbortController.cjs +2 -11
  109. package/cjs/fetch/AbortController.cjs.map +1 -1
  110. package/cjs/fetch/AbortController.d.ts +3 -4
  111. package/cjs/fetch/AbortController.d.ts.map +1 -1
  112. package/cjs/fetch/AbortSignal.cjs +14 -4
  113. package/cjs/fetch/AbortSignal.cjs.map +1 -1
  114. package/cjs/fetch/AbortSignal.d.ts +7 -0
  115. package/cjs/fetch/AbortSignal.d.ts.map +1 -1
  116. package/cjs/fetch/Fetch.cjs +24 -14
  117. package/cjs/fetch/Fetch.cjs.map +1 -1
  118. package/cjs/fetch/Fetch.d.ts.map +1 -1
  119. package/cjs/fetch/Request.cjs +62 -45
  120. package/cjs/fetch/Request.cjs.map +1 -1
  121. package/cjs/fetch/Request.d.ts +3 -14
  122. package/cjs/fetch/Request.d.ts.map +1 -1
  123. package/cjs/fetch/ResourceFetch.cjs +2 -3
  124. package/cjs/fetch/ResourceFetch.cjs.map +1 -1
  125. package/cjs/fetch/ResourceFetch.d.ts.map +1 -1
  126. package/cjs/fetch/Response.cjs +63 -40
  127. package/cjs/fetch/Response.cjs.map +1 -1
  128. package/cjs/fetch/Response.d.ts +3 -10
  129. package/cjs/fetch/Response.d.ts.map +1 -1
  130. package/cjs/fetch/SyncFetch.cjs +12 -13
  131. package/cjs/fetch/SyncFetch.cjs.map +1 -1
  132. package/cjs/fetch/SyncFetch.d.ts.map +1 -1
  133. package/cjs/fetch/multipart/MultipartFormDataParser.cjs +12 -6
  134. package/cjs/fetch/multipart/MultipartFormDataParser.cjs.map +1 -1
  135. package/cjs/fetch/multipart/MultipartFormDataParser.d.ts +3 -1
  136. package/cjs/fetch/multipart/MultipartFormDataParser.d.ts.map +1 -1
  137. package/cjs/fetch/multipart/MultipartReader.cjs +5 -3
  138. package/cjs/fetch/multipart/MultipartReader.cjs.map +1 -1
  139. package/cjs/fetch/multipart/MultipartReader.d.ts +4 -1
  140. package/cjs/fetch/multipart/MultipartReader.d.ts.map +1 -1
  141. package/cjs/fetch/utilities/FetchBodyUtility.cjs +10 -5
  142. package/cjs/fetch/utilities/FetchBodyUtility.cjs.map +1 -1
  143. package/cjs/fetch/utilities/FetchBodyUtility.d.ts +5 -2
  144. package/cjs/fetch/utilities/FetchBodyUtility.d.ts.map +1 -1
  145. package/cjs/file/FileReader.cjs +11 -11
  146. package/cjs/file/FileReader.cjs.map +1 -1
  147. package/cjs/file/FileReader.d.ts +1 -4
  148. package/cjs/file/FileReader.d.ts.map +1 -1
  149. package/cjs/history/History.cjs +28 -14
  150. package/cjs/history/History.cjs.map +1 -1
  151. package/cjs/history/History.d.ts +2 -2
  152. package/cjs/history/History.d.ts.map +1 -1
  153. package/cjs/index.d.ts +2 -2
  154. package/cjs/location/Location.cjs +43 -22
  155. package/cjs/location/Location.cjs.map +1 -1
  156. package/cjs/location/Location.d.ts +4 -0
  157. package/cjs/location/Location.d.ts.map +1 -1
  158. package/cjs/match-media/MediaQueryItem.cjs +26 -26
  159. package/cjs/match-media/MediaQueryItem.cjs.map +1 -1
  160. package/cjs/match-media/MediaQueryItem.d.ts +3 -3
  161. package/cjs/match-media/MediaQueryItem.d.ts.map +1 -1
  162. package/cjs/match-media/MediaQueryList.cjs +7 -7
  163. package/cjs/match-media/MediaQueryList.cjs.map +1 -1
  164. package/cjs/match-media/MediaQueryList.d.ts +5 -5
  165. package/cjs/match-media/MediaQueryList.d.ts.map +1 -1
  166. package/cjs/match-media/MediaQueryParser.cjs +4 -4
  167. package/cjs/match-media/MediaQueryParser.cjs.map +1 -1
  168. package/cjs/match-media/MediaQueryParser.d.ts +2 -2
  169. package/cjs/match-media/MediaQueryParser.d.ts.map +1 -1
  170. package/cjs/mutation-observer/MutationObserver.cjs +17 -15
  171. package/cjs/mutation-observer/MutationObserver.cjs.map +1 -1
  172. package/cjs/mutation-observer/MutationObserver.d.ts +3 -0
  173. package/cjs/mutation-observer/MutationObserver.d.ts.map +1 -1
  174. package/cjs/navigator/Navigator.cjs +13 -10
  175. package/cjs/navigator/Navigator.cjs.map +1 -1
  176. package/cjs/navigator/Navigator.d.ts +2 -2
  177. package/cjs/navigator/Navigator.d.ts.map +1 -1
  178. package/cjs/nodes/NodeFactory.cjs +1 -1
  179. package/cjs/nodes/NodeFactory.cjs.map +1 -1
  180. package/cjs/nodes/document/Document.cjs +69 -51
  181. package/cjs/nodes/document/Document.cjs.map +1 -1
  182. package/cjs/nodes/document/Document.d.ts +9 -16
  183. package/cjs/nodes/document/Document.d.ts.map +1 -1
  184. package/cjs/nodes/document/DocumentReadyStateManager.cjs +12 -10
  185. package/cjs/nodes/document/DocumentReadyStateManager.cjs.map +1 -1
  186. package/cjs/nodes/document/DocumentReadyStateManager.d.ts.map +1 -1
  187. package/cjs/nodes/element/Element.cjs +33 -20
  188. package/cjs/nodes/element/Element.cjs.map +1 -1
  189. package/cjs/nodes/element/Element.d.ts +7 -3
  190. package/cjs/nodes/element/Element.d.ts.map +1 -1
  191. package/cjs/nodes/element/HTMLCollection.cjs +1 -4
  192. package/cjs/nodes/element/HTMLCollection.cjs.map +1 -1
  193. package/cjs/nodes/element/HTMLCollection.d.ts.map +1 -1
  194. package/cjs/nodes/element/NamedNodeMap.cjs +4 -0
  195. package/cjs/nodes/element/NamedNodeMap.cjs.map +1 -1
  196. package/cjs/nodes/element/NamedNodeMap.d.ts.map +1 -1
  197. package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs +0 -9
  198. package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs.map +1 -1
  199. package/cjs/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
  200. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +5 -5
  201. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
  202. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  203. package/cjs/nodes/html-area-element/HTMLAreaElement.cjs +7 -8
  204. package/cjs/nodes/html-area-element/HTMLAreaElement.cjs.map +1 -1
  205. package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
  206. package/cjs/nodes/html-audio-element/Audio.cjs +28 -0
  207. package/cjs/nodes/html-audio-element/Audio.cjs.map +1 -1
  208. package/cjs/nodes/html-audio-element/Audio.d.ts +4 -0
  209. package/cjs/nodes/html-audio-element/Audio.d.ts.map +1 -1
  210. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +63 -35
  211. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
  212. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +27 -3
  213. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  214. package/cjs/nodes/html-canvas-element/HTMLCanvasElement.cjs +2 -4
  215. package/cjs/nodes/html-canvas-element/HTMLCanvasElement.cjs.map +1 -1
  216. package/cjs/nodes/html-canvas-element/HTMLCanvasElement.d.ts.map +1 -1
  217. package/cjs/nodes/html-document/HTMLDocument.cjs +2 -6
  218. package/cjs/nodes/html-document/HTMLDocument.cjs.map +1 -1
  219. package/cjs/nodes/html-document/HTMLDocument.d.ts +1 -10
  220. package/cjs/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  221. package/cjs/nodes/html-element/HTMLElement.cjs +130 -89
  222. package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
  223. package/cjs/nodes/html-element/HTMLElement.d.ts +14 -2
  224. package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
  225. package/cjs/nodes/html-form-element/HTMLFormElement.cjs +6 -7
  226. package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
  227. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts +1 -3
  228. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  229. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +30 -38
  230. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
  231. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +0 -6
  232. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  233. package/cjs/nodes/html-image-element/Image.cjs +28 -0
  234. package/cjs/nodes/html-image-element/Image.cjs.map +1 -1
  235. package/cjs/nodes/html-image-element/Image.d.ts +4 -0
  236. package/cjs/nodes/html-image-element/Image.d.ts.map +1 -1
  237. package/cjs/nodes/html-input-element/HTMLInputElement.cjs +88 -56
  238. package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
  239. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +25 -0
  240. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  241. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +4 -3
  242. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
  243. package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts +8 -1
  244. package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
  245. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +10 -16
  246. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
  247. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +0 -6
  248. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  249. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +12 -16
  250. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
  251. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  252. package/cjs/nodes/html-media-element/MediaStream.cjs +3 -0
  253. package/cjs/nodes/html-media-element/MediaStream.cjs.map +1 -1
  254. package/cjs/nodes/html-media-element/MediaStream.d.ts.map +1 -1
  255. package/cjs/nodes/html-media-element/MediaStreamTrack.cjs +3 -0
  256. package/cjs/nodes/html-media-element/MediaStreamTrack.cjs.map +1 -1
  257. package/cjs/nodes/html-media-element/MediaStreamTrack.d.ts.map +1 -1
  258. package/cjs/nodes/html-media-element/TextTrack.cjs +3 -0
  259. package/cjs/nodes/html-media-element/TextTrack.cjs.map +1 -1
  260. package/cjs/nodes/html-media-element/TextTrack.d.ts.map +1 -1
  261. package/cjs/nodes/html-media-element/TextTrackCue.cjs +3 -0
  262. package/cjs/nodes/html-media-element/TextTrackCue.cjs.map +1 -1
  263. package/cjs/nodes/html-media-element/TextTrackCue.d.ts.map +1 -1
  264. package/cjs/nodes/html-media-element/VTTCue.cjs +7 -8
  265. package/cjs/nodes/html-media-element/VTTCue.cjs.map +1 -1
  266. package/cjs/nodes/html-media-element/VTTCue.d.ts +1 -4
  267. package/cjs/nodes/html-media-element/VTTCue.d.ts.map +1 -1
  268. package/cjs/nodes/html-meter-element/HTMLMeterElement.cjs +30 -6
  269. package/cjs/nodes/html-meter-element/HTMLMeterElement.cjs.map +1 -1
  270. package/cjs/nodes/html-meter-element/HTMLMeterElement.d.ts.map +1 -1
  271. package/cjs/nodes/html-progress-element/HTMLProgressElement.cjs +26 -2
  272. package/cjs/nodes/html-progress-element/HTMLProgressElement.cjs.map +1 -1
  273. package/cjs/nodes/html-progress-element/HTMLProgressElement.d.ts.map +1 -1
  274. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +21 -27
  275. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  276. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +0 -6
  277. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  278. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +5 -5
  279. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
  280. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  281. package/cjs/nodes/html-table-element/HTMLTableElement.cjs +8 -9
  282. package/cjs/nodes/html-table-element/HTMLTableElement.cjs.map +1 -1
  283. package/cjs/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
  284. package/cjs/nodes/html-table-row-element/HTMLTableRowElement.cjs +5 -6
  285. package/cjs/nodes/html-table-row-element/HTMLTableRowElement.cjs.map +1 -1
  286. package/cjs/nodes/html-table-row-element/HTMLTableRowElement.d.ts.map +1 -1
  287. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +1 -2
  288. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
  289. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  290. package/cjs/nodes/html-track-element/HTMLTrackElement.cjs +1 -2
  291. package/cjs/nodes/html-track-element/HTMLTrackElement.cjs.map +1 -1
  292. package/cjs/nodes/node/Node.cjs +23 -22
  293. package/cjs/nodes/node/Node.cjs.map +1 -1
  294. package/cjs/nodes/node/Node.d.ts +1 -2
  295. package/cjs/nodes/node/Node.d.ts.map +1 -1
  296. package/cjs/nodes/node/NodeList.cjs +4 -6
  297. package/cjs/nodes/node/NodeList.cjs.map +1 -1
  298. package/cjs/nodes/node/NodeList.d.ts.map +1 -1
  299. package/cjs/nodes/text/Text.cjs +1 -2
  300. package/cjs/nodes/text/Text.cjs.map +1 -1
  301. package/cjs/nodes/text/Text.d.ts.map +1 -1
  302. package/cjs/permissions/Permissions.cjs +13 -2
  303. package/cjs/permissions/Permissions.cjs.map +1 -1
  304. package/cjs/permissions/Permissions.d.ts +7 -0
  305. package/cjs/permissions/Permissions.d.ts.map +1 -1
  306. package/cjs/query-selector/QuerySelector.cjs +12 -10
  307. package/cjs/query-selector/QuerySelector.cjs.map +1 -1
  308. package/cjs/query-selector/QuerySelector.d.ts.map +1 -1
  309. package/cjs/range/Range.cjs +26 -23
  310. package/cjs/range/Range.cjs.map +1 -1
  311. package/cjs/range/Range.d.ts +2 -2
  312. package/cjs/range/Range.d.ts.map +1 -1
  313. package/cjs/selection/Selection.cjs +16 -17
  314. package/cjs/selection/Selection.cjs.map +1 -1
  315. package/cjs/selection/Selection.d.ts.map +1 -1
  316. package/cjs/window/BrowserWindow.cjs +136 -266
  317. package/cjs/window/BrowserWindow.cjs.map +1 -1
  318. package/cjs/window/BrowserWindow.d.ts +115 -117
  319. package/cjs/window/BrowserWindow.d.ts.map +1 -1
  320. package/cjs/window/VMGlobalPropertyScript.cjs +0 -1
  321. package/cjs/window/VMGlobalPropertyScript.cjs.map +1 -1
  322. package/cjs/window/VMGlobalPropertyScript.d.ts.map +1 -1
  323. package/cjs/window/WindowBrowserContext.cjs +117 -0
  324. package/cjs/window/WindowBrowserContext.cjs.map +1 -0
  325. package/cjs/window/WindowBrowserContext.d.ts +75 -0
  326. package/cjs/window/WindowBrowserContext.d.ts.map +1 -0
  327. package/cjs/window/WindowClassExtender.cjs +332 -0
  328. package/cjs/window/WindowClassExtender.cjs.map +1 -0
  329. package/cjs/window/WindowClassExtender.d.ts +15 -0
  330. package/cjs/window/WindowClassExtender.d.ts.map +1 -0
  331. package/cjs/window/WindowPageOpenUtility.cjs +11 -1
  332. package/cjs/window/WindowPageOpenUtility.cjs.map +1 -1
  333. package/cjs/window/WindowPageOpenUtility.d.ts.map +1 -1
  334. package/cjs/xml-http-request/XMLHttpRequest.cjs +33 -33
  335. package/cjs/xml-http-request/XMLHttpRequest.cjs.map +1 -1
  336. package/cjs/xml-http-request/XMLHttpRequest.d.ts +2 -11
  337. package/cjs/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
  338. package/lib/ClassMethodBinder.d.ts +4 -2
  339. package/lib/ClassMethodBinder.d.ts.map +1 -1
  340. package/lib/ClassMethodBinder.js +8 -6
  341. package/lib/ClassMethodBinder.js.map +1 -1
  342. package/lib/PropertySymbol.d.ts +15 -4
  343. package/lib/PropertySymbol.d.ts.map +1 -1
  344. package/lib/PropertySymbol.js +15 -4
  345. package/lib/PropertySymbol.js.map +1 -1
  346. package/lib/async-task-manager/AsyncTaskManager.d.ts +11 -1
  347. package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  348. package/lib/async-task-manager/AsyncTaskManager.js +64 -35
  349. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
  350. package/lib/browser/Browser.d.ts +3 -0
  351. package/lib/browser/Browser.d.ts.map +1 -1
  352. package/lib/browser/Browser.js +7 -0
  353. package/lib/browser/Browser.js.map +1 -1
  354. package/lib/browser/BrowserFrame.d.ts +1 -4
  355. package/lib/browser/BrowserFrame.d.ts.map +1 -1
  356. package/lib/browser/BrowserFrame.js +3 -7
  357. package/lib/browser/BrowserFrame.js.map +1 -1
  358. package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
  359. package/lib/browser/DefaultBrowserSettings.js +2 -1
  360. package/lib/browser/DefaultBrowserSettings.js.map +1 -1
  361. package/lib/browser/detached-browser/DetachedBrowser.d.ts +3 -0
  362. package/lib/browser/detached-browser/DetachedBrowser.d.ts.map +1 -1
  363. package/lib/browser/detached-browser/DetachedBrowser.js +7 -0
  364. package/lib/browser/detached-browser/DetachedBrowser.js.map +1 -1
  365. package/lib/browser/detached-browser/DetachedBrowserFrame.d.ts +1 -4
  366. package/lib/browser/detached-browser/DetachedBrowserFrame.d.ts.map +1 -1
  367. package/lib/browser/detached-browser/DetachedBrowserFrame.js +3 -7
  368. package/lib/browser/detached-browser/DetachedBrowserFrame.js.map +1 -1
  369. package/lib/browser/types/IBrowser.d.ts +3 -0
  370. package/lib/browser/types/IBrowser.d.ts.map +1 -1
  371. package/lib/browser/types/IBrowser.js +1 -1
  372. package/lib/browser/types/IBrowser.js.map +1 -1
  373. package/lib/browser/types/IBrowserFrame.d.ts +0 -3
  374. package/lib/browser/types/IBrowserFrame.d.ts.map +1 -1
  375. package/lib/browser/types/IBrowserSettings.d.ts +1 -0
  376. package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
  377. package/{cjs/browser/utilities/BrowserFrameExceptionObserver.d.ts → lib/browser/utilities/BrowserExceptionObserver.d.ts} +9 -7
  378. package/lib/browser/utilities/BrowserExceptionObserver.d.ts.map +1 -0
  379. package/lib/browser/utilities/BrowserExceptionObserver.js +97 -0
  380. package/lib/browser/utilities/BrowserExceptionObserver.js.map +1 -0
  381. package/lib/browser/utilities/BrowserFrameFactory.d.ts.map +1 -1
  382. package/lib/browser/utilities/BrowserFrameFactory.js +27 -35
  383. package/lib/browser/utilities/BrowserFrameFactory.js.map +1 -1
  384. package/lib/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
  385. package/lib/browser/utilities/BrowserFrameNavigator.js +52 -29
  386. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  387. package/lib/clipboard/Clipboard.d.ts +2 -2
  388. package/lib/clipboard/Clipboard.d.ts.map +1 -1
  389. package/lib/clipboard/Clipboard.js +18 -15
  390. package/lib/clipboard/Clipboard.js.map +1 -1
  391. package/lib/css/declaration/AbstractCSSStyleDeclaration.js +4 -4
  392. package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
  393. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  394. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +6 -5
  395. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
  396. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts +2 -2
  397. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts.map +1 -1
  398. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js +5 -5
  399. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js.map +1 -1
  400. package/lib/custom-element/CustomElementRegistry.d.ts +2 -3
  401. package/lib/custom-element/CustomElementRegistry.d.ts.map +1 -1
  402. package/lib/custom-element/CustomElementRegistry.js +37 -17
  403. package/lib/custom-element/CustomElementRegistry.js.map +1 -1
  404. package/lib/dom-implementation/DOMImplementation.d.ts +7 -3
  405. package/lib/dom-implementation/DOMImplementation.d.ts.map +1 -1
  406. package/lib/dom-implementation/DOMImplementation.js +12 -7
  407. package/lib/dom-implementation/DOMImplementation.js.map +1 -1
  408. package/lib/dom-parser/DOMParser.d.ts +2 -6
  409. package/lib/dom-parser/DOMParser.d.ts.map +1 -1
  410. package/lib/dom-parser/DOMParser.js +6 -15
  411. package/lib/dom-parser/DOMParser.js.map +1 -1
  412. package/lib/event/Event.d.ts +49 -7
  413. package/lib/event/Event.d.ts.map +1 -1
  414. package/lib/event/Event.js +76 -18
  415. package/lib/event/Event.js.map +1 -1
  416. package/lib/event/EventTarget.d.ts +12 -8
  417. package/lib/event/EventTarget.d.ts.map +1 -1
  418. package/lib/event/EventTarget.js +153 -141
  419. package/lib/event/EventTarget.js.map +1 -1
  420. package/lib/event/MessagePort.d.ts +1 -2
  421. package/lib/event/MessagePort.d.ts.map +1 -1
  422. package/lib/event/MessagePort.js.map +1 -1
  423. package/lib/event/TEventListener.d.ts +5 -0
  424. package/lib/event/TEventListener.d.ts.map +1 -0
  425. package/lib/event/TEventListener.js +2 -0
  426. package/lib/event/TEventListener.js.map +1 -0
  427. package/lib/event/TEventListenerFunction.d.ts +4 -0
  428. package/lib/event/TEventListenerFunction.d.ts.map +1 -0
  429. package/lib/event/TEventListenerFunction.js +2 -0
  430. package/lib/event/TEventListenerFunction.js.map +1 -0
  431. package/lib/event/TEventListenerObject.d.ts +6 -0
  432. package/lib/event/TEventListenerObject.d.ts.map +1 -0
  433. package/lib/event/TEventListenerObject.js +2 -0
  434. package/lib/event/TEventListenerObject.js.map +1 -0
  435. package/lib/event/events/CustomEvent.d.ts +8 -1
  436. package/lib/event/events/CustomEvent.d.ts.map +1 -1
  437. package/lib/event/events/CustomEvent.js +15 -6
  438. package/lib/event/events/CustomEvent.js.map +1 -1
  439. package/lib/event/events/IErrorEventInit.d.ts.map +1 -1
  440. package/lib/event/events/IMessageEventInit.d.ts +2 -2
  441. package/lib/event/events/IMessageEventInit.d.ts.map +1 -1
  442. package/lib/event/events/MessageEvent.d.ts +2 -2
  443. package/lib/event/events/MessageEvent.d.ts.map +1 -1
  444. package/lib/event/events/MessageEvent.js.map +1 -1
  445. package/lib/fetch/AbortController.d.ts +3 -4
  446. package/lib/fetch/AbortController.d.ts.map +1 -1
  447. package/lib/fetch/AbortController.js +2 -8
  448. package/lib/fetch/AbortController.js.map +1 -1
  449. package/lib/fetch/AbortSignal.d.ts +7 -0
  450. package/lib/fetch/AbortSignal.d.ts.map +1 -1
  451. package/lib/fetch/AbortSignal.js +14 -4
  452. package/lib/fetch/AbortSignal.js.map +1 -1
  453. package/lib/fetch/Fetch.d.ts.map +1 -1
  454. package/lib/fetch/Fetch.js +24 -14
  455. package/lib/fetch/Fetch.js.map +1 -1
  456. package/lib/fetch/Request.d.ts +3 -14
  457. package/lib/fetch/Request.d.ts.map +1 -1
  458. package/lib/fetch/Request.js +62 -45
  459. package/lib/fetch/Request.js.map +1 -1
  460. package/lib/fetch/ResourceFetch.d.ts.map +1 -1
  461. package/lib/fetch/ResourceFetch.js +2 -3
  462. package/lib/fetch/ResourceFetch.js.map +1 -1
  463. package/lib/fetch/Response.d.ts +3 -10
  464. package/lib/fetch/Response.d.ts.map +1 -1
  465. package/lib/fetch/Response.js +63 -40
  466. package/lib/fetch/Response.js.map +1 -1
  467. package/lib/fetch/SyncFetch.d.ts.map +1 -1
  468. package/lib/fetch/SyncFetch.js +12 -13
  469. package/lib/fetch/SyncFetch.js.map +1 -1
  470. package/lib/fetch/multipart/MultipartFormDataParser.d.ts +3 -1
  471. package/lib/fetch/multipart/MultipartFormDataParser.d.ts.map +1 -1
  472. package/lib/fetch/multipart/MultipartFormDataParser.js +12 -6
  473. package/lib/fetch/multipart/MultipartFormDataParser.js.map +1 -1
  474. package/lib/fetch/multipart/MultipartReader.d.ts +4 -1
  475. package/lib/fetch/multipart/MultipartReader.d.ts.map +1 -1
  476. package/lib/fetch/multipart/MultipartReader.js +5 -3
  477. package/lib/fetch/multipart/MultipartReader.js.map +1 -1
  478. package/lib/fetch/utilities/FetchBodyUtility.d.ts +5 -2
  479. package/lib/fetch/utilities/FetchBodyUtility.d.ts.map +1 -1
  480. package/lib/fetch/utilities/FetchBodyUtility.js +10 -5
  481. package/lib/fetch/utilities/FetchBodyUtility.js.map +1 -1
  482. package/lib/file/FileReader.d.ts +1 -4
  483. package/lib/file/FileReader.d.ts.map +1 -1
  484. package/lib/file/FileReader.js +11 -11
  485. package/lib/file/FileReader.js.map +1 -1
  486. package/lib/history/History.d.ts +2 -2
  487. package/lib/history/History.d.ts.map +1 -1
  488. package/lib/history/History.js +28 -14
  489. package/lib/history/History.js.map +1 -1
  490. package/lib/index.d.ts +2 -2
  491. package/lib/location/Location.d.ts +4 -0
  492. package/lib/location/Location.d.ts.map +1 -1
  493. package/lib/location/Location.js +43 -22
  494. package/lib/location/Location.js.map +1 -1
  495. package/lib/match-media/MediaQueryItem.d.ts +3 -3
  496. package/lib/match-media/MediaQueryItem.d.ts.map +1 -1
  497. package/lib/match-media/MediaQueryItem.js +26 -26
  498. package/lib/match-media/MediaQueryItem.js.map +1 -1
  499. package/lib/match-media/MediaQueryList.d.ts +5 -5
  500. package/lib/match-media/MediaQueryList.d.ts.map +1 -1
  501. package/lib/match-media/MediaQueryList.js +7 -7
  502. package/lib/match-media/MediaQueryList.js.map +1 -1
  503. package/lib/match-media/MediaQueryParser.d.ts +2 -2
  504. package/lib/match-media/MediaQueryParser.d.ts.map +1 -1
  505. package/lib/match-media/MediaQueryParser.js +4 -4
  506. package/lib/match-media/MediaQueryParser.js.map +1 -1
  507. package/lib/mutation-observer/MutationObserver.d.ts +3 -0
  508. package/lib/mutation-observer/MutationObserver.d.ts.map +1 -1
  509. package/lib/mutation-observer/MutationObserver.js +17 -15
  510. package/lib/mutation-observer/MutationObserver.js.map +1 -1
  511. package/lib/navigator/Navigator.d.ts +2 -2
  512. package/lib/navigator/Navigator.d.ts.map +1 -1
  513. package/lib/navigator/Navigator.js +13 -10
  514. package/lib/navigator/Navigator.js.map +1 -1
  515. package/lib/nodes/NodeFactory.js +1 -1
  516. package/lib/nodes/NodeFactory.js.map +1 -1
  517. package/lib/nodes/document/Document.d.ts +9 -16
  518. package/lib/nodes/document/Document.d.ts.map +1 -1
  519. package/lib/nodes/document/Document.js +69 -51
  520. package/lib/nodes/document/Document.js.map +1 -1
  521. package/lib/nodes/document/DocumentReadyStateManager.d.ts.map +1 -1
  522. package/lib/nodes/document/DocumentReadyStateManager.js +12 -10
  523. package/lib/nodes/document/DocumentReadyStateManager.js.map +1 -1
  524. package/lib/nodes/element/Element.d.ts +7 -3
  525. package/lib/nodes/element/Element.d.ts.map +1 -1
  526. package/lib/nodes/element/Element.js +33 -20
  527. package/lib/nodes/element/Element.js.map +1 -1
  528. package/lib/nodes/element/HTMLCollection.d.ts.map +1 -1
  529. package/lib/nodes/element/HTMLCollection.js +1 -4
  530. package/lib/nodes/element/HTMLCollection.js.map +1 -1
  531. package/lib/nodes/element/NamedNodeMap.d.ts.map +1 -1
  532. package/lib/nodes/element/NamedNodeMap.js +4 -0
  533. package/lib/nodes/element/NamedNodeMap.js.map +1 -1
  534. package/lib/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
  535. package/lib/nodes/element/NamedNodeMapProxyFactory.js +0 -6
  536. package/lib/nodes/element/NamedNodeMapProxyFactory.js.map +1 -1
  537. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  538. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +5 -5
  539. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  540. package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
  541. package/lib/nodes/html-area-element/HTMLAreaElement.js +7 -8
  542. package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
  543. package/lib/nodes/html-audio-element/Audio.d.ts +4 -0
  544. package/lib/nodes/html-audio-element/Audio.d.ts.map +1 -1
  545. package/lib/nodes/html-audio-element/Audio.js +5 -0
  546. package/lib/nodes/html-audio-element/Audio.js.map +1 -1
  547. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +27 -3
  548. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  549. package/lib/nodes/html-button-element/HTMLButtonElement.js +63 -35
  550. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  551. package/lib/nodes/html-canvas-element/HTMLCanvasElement.d.ts.map +1 -1
  552. package/lib/nodes/html-canvas-element/HTMLCanvasElement.js +2 -4
  553. package/lib/nodes/html-canvas-element/HTMLCanvasElement.js.map +1 -1
  554. package/lib/nodes/html-document/HTMLDocument.d.ts +1 -10
  555. package/lib/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  556. package/lib/nodes/html-document/HTMLDocument.js +2 -6
  557. package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
  558. package/lib/nodes/html-element/HTMLElement.d.ts +14 -2
  559. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  560. package/lib/nodes/html-element/HTMLElement.js +130 -89
  561. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  562. package/lib/nodes/html-form-element/HTMLFormElement.d.ts +1 -3
  563. package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  564. package/lib/nodes/html-form-element/HTMLFormElement.js +6 -7
  565. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  566. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +0 -6
  567. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  568. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +30 -38
  569. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  570. package/lib/nodes/html-image-element/Image.d.ts +4 -0
  571. package/lib/nodes/html-image-element/Image.d.ts.map +1 -1
  572. package/lib/nodes/html-image-element/Image.js +5 -0
  573. package/lib/nodes/html-image-element/Image.js.map +1 -1
  574. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +25 -0
  575. package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  576. package/lib/nodes/html-input-element/HTMLInputElement.js +88 -56
  577. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  578. package/lib/nodes/html-label-element/HTMLLabelElement.d.ts +8 -1
  579. package/lib/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
  580. package/lib/nodes/html-label-element/HTMLLabelElement.js +4 -3
  581. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  582. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +0 -6
  583. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  584. package/lib/nodes/html-link-element/HTMLLinkElement.js +10 -16
  585. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  586. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  587. package/lib/nodes/html-media-element/HTMLMediaElement.js +12 -16
  588. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  589. package/lib/nodes/html-media-element/MediaStream.d.ts.map +1 -1
  590. package/lib/nodes/html-media-element/MediaStream.js +3 -0
  591. package/lib/nodes/html-media-element/MediaStream.js.map +1 -1
  592. package/lib/nodes/html-media-element/MediaStreamTrack.d.ts.map +1 -1
  593. package/lib/nodes/html-media-element/MediaStreamTrack.js +3 -0
  594. package/lib/nodes/html-media-element/MediaStreamTrack.js.map +1 -1
  595. package/lib/nodes/html-media-element/TextTrack.d.ts.map +1 -1
  596. package/lib/nodes/html-media-element/TextTrack.js +3 -0
  597. package/lib/nodes/html-media-element/TextTrack.js.map +1 -1
  598. package/lib/nodes/html-media-element/TextTrackCue.d.ts.map +1 -1
  599. package/lib/nodes/html-media-element/TextTrackCue.js +3 -0
  600. package/lib/nodes/html-media-element/TextTrackCue.js.map +1 -1
  601. package/lib/nodes/html-media-element/VTTCue.d.ts +1 -4
  602. package/lib/nodes/html-media-element/VTTCue.d.ts.map +1 -1
  603. package/lib/nodes/html-media-element/VTTCue.js +7 -8
  604. package/lib/nodes/html-media-element/VTTCue.js.map +1 -1
  605. package/lib/nodes/html-meter-element/HTMLMeterElement.d.ts.map +1 -1
  606. package/lib/nodes/html-meter-element/HTMLMeterElement.js +7 -6
  607. package/lib/nodes/html-meter-element/HTMLMeterElement.js.map +1 -1
  608. package/lib/nodes/html-progress-element/HTMLProgressElement.d.ts.map +1 -1
  609. package/lib/nodes/html-progress-element/HTMLProgressElement.js +3 -2
  610. package/lib/nodes/html-progress-element/HTMLProgressElement.js.map +1 -1
  611. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +0 -6
  612. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  613. package/lib/nodes/html-script-element/HTMLScriptElement.js +21 -27
  614. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  615. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  616. package/lib/nodes/html-select-element/HTMLSelectElement.js +5 -5
  617. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  618. package/lib/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
  619. package/lib/nodes/html-table-element/HTMLTableElement.js +8 -9
  620. package/lib/nodes/html-table-element/HTMLTableElement.js.map +1 -1
  621. package/lib/nodes/html-table-row-element/HTMLTableRowElement.d.ts.map +1 -1
  622. package/lib/nodes/html-table-row-element/HTMLTableRowElement.js +5 -6
  623. package/lib/nodes/html-table-row-element/HTMLTableRowElement.js.map +1 -1
  624. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  625. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +1 -2
  626. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  627. package/lib/nodes/html-track-element/HTMLTrackElement.js +1 -2
  628. package/lib/nodes/html-track-element/HTMLTrackElement.js.map +1 -1
  629. package/lib/nodes/node/Node.d.ts +1 -2
  630. package/lib/nodes/node/Node.d.ts.map +1 -1
  631. package/lib/nodes/node/Node.js +23 -22
  632. package/lib/nodes/node/Node.js.map +1 -1
  633. package/lib/nodes/node/NodeList.d.ts.map +1 -1
  634. package/lib/nodes/node/NodeList.js +4 -6
  635. package/lib/nodes/node/NodeList.js.map +1 -1
  636. package/lib/nodes/text/Text.d.ts.map +1 -1
  637. package/lib/nodes/text/Text.js +1 -2
  638. package/lib/nodes/text/Text.js.map +1 -1
  639. package/lib/permissions/Permissions.d.ts +7 -0
  640. package/lib/permissions/Permissions.d.ts.map +1 -1
  641. package/lib/permissions/Permissions.js +13 -2
  642. package/lib/permissions/Permissions.js.map +1 -1
  643. package/lib/query-selector/QuerySelector.d.ts.map +1 -1
  644. package/lib/query-selector/QuerySelector.js +12 -10
  645. package/lib/query-selector/QuerySelector.js.map +1 -1
  646. package/lib/range/Range.d.ts +2 -2
  647. package/lib/range/Range.d.ts.map +1 -1
  648. package/lib/range/Range.js +26 -23
  649. package/lib/range/Range.js.map +1 -1
  650. package/lib/selection/Selection.d.ts.map +1 -1
  651. package/lib/selection/Selection.js +16 -17
  652. package/lib/selection/Selection.js.map +1 -1
  653. package/lib/window/BrowserWindow.d.ts +115 -117
  654. package/lib/window/BrowserWindow.d.ts.map +1 -1
  655. package/lib/window/BrowserWindow.js +140 -270
  656. package/lib/window/BrowserWindow.js.map +1 -1
  657. package/lib/window/VMGlobalPropertyScript.d.ts.map +1 -1
  658. package/lib/window/VMGlobalPropertyScript.js +0 -1
  659. package/lib/window/VMGlobalPropertyScript.js.map +1 -1
  660. package/lib/window/WindowBrowserContext.d.ts +75 -0
  661. package/lib/window/WindowBrowserContext.d.ts.map +1 -0
  662. package/lib/window/WindowBrowserContext.js +91 -0
  663. package/lib/window/WindowBrowserContext.js.map +1 -0
  664. package/lib/window/WindowClassExtender.d.ts +15 -0
  665. package/lib/window/WindowClassExtender.d.ts.map +1 -0
  666. package/lib/window/WindowClassExtender.js +303 -0
  667. package/lib/window/WindowClassExtender.js.map +1 -0
  668. package/lib/window/WindowPageOpenUtility.d.ts.map +1 -1
  669. package/lib/window/WindowPageOpenUtility.js +11 -1
  670. package/lib/window/WindowPageOpenUtility.js.map +1 -1
  671. package/lib/xml-http-request/XMLHttpRequest.d.ts +2 -11
  672. package/lib/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
  673. package/lib/xml-http-request/XMLHttpRequest.js +33 -33
  674. package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
  675. package/package.json +1 -1
  676. package/src/ClassMethodBinder.ts +10 -7
  677. package/src/PropertySymbol.ts +15 -4
  678. package/src/async-task-manager/AsyncTaskManager.ts +71 -39
  679. package/src/browser/Browser.ts +7 -0
  680. package/src/browser/BrowserFrame.ts +3 -7
  681. package/src/browser/DefaultBrowserSettings.ts +2 -1
  682. package/src/browser/detached-browser/DetachedBrowser.ts +7 -0
  683. package/src/browser/detached-browser/DetachedBrowserFrame.ts +3 -7
  684. package/src/browser/types/IBrowser.ts +3 -0
  685. package/src/browser/types/IBrowserFrame.ts +0 -3
  686. package/src/browser/types/IBrowserSettings.ts +1 -0
  687. package/src/browser/utilities/BrowserExceptionObserver.ts +125 -0
  688. package/src/browser/utilities/BrowserFrameFactory.ts +29 -33
  689. package/src/browser/utilities/BrowserFrameNavigator.ts +60 -38
  690. package/src/clipboard/Clipboard.ts +20 -14
  691. package/src/css/declaration/AbstractCSSStyleDeclaration.ts +4 -4
  692. package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +6 -7
  693. package/src/css/declaration/measurement-converter/CSSMeasurementConverter.ts +6 -8
  694. package/src/custom-element/CustomElementRegistry.ts +45 -17
  695. package/src/dom-implementation/DOMImplementation.ts +15 -10
  696. package/src/dom-parser/DOMParser.ts +11 -16
  697. package/src/event/Event.ts +85 -18
  698. package/src/event/EventTarget.ts +200 -185
  699. package/src/event/MessagePort.ts +1 -2
  700. package/src/event/TEventListener.ts +6 -0
  701. package/src/event/TEventListenerFunction.ts +5 -0
  702. package/src/event/TEventListenerObject.ts +7 -0
  703. package/src/event/events/CustomEvent.ts +16 -6
  704. package/src/event/events/IErrorEventInit.ts +0 -1
  705. package/src/event/events/IMessageEventInit.ts +2 -2
  706. package/src/event/events/MessageEvent.ts +2 -2
  707. package/src/fetch/AbortController.ts +5 -7
  708. package/src/fetch/AbortSignal.ts +30 -4
  709. package/src/fetch/Fetch.ts +44 -16
  710. package/src/fetch/Request.ts +83 -55
  711. package/src/fetch/ResourceFetch.ts +2 -3
  712. package/src/fetch/Response.ts +80 -45
  713. package/src/fetch/SyncFetch.ts +20 -14
  714. package/src/fetch/multipart/MultipartFormDataParser.ts +16 -5
  715. package/src/fetch/multipart/MultipartReader.ts +6 -3
  716. package/src/fetch/utilities/FetchBodyUtility.ts +23 -8
  717. package/src/file/FileReader.ts +16 -12
  718. package/src/history/History.ts +31 -14
  719. package/src/index.ts +2 -2
  720. package/src/location/Location.ts +46 -22
  721. package/src/match-media/MediaQueryItem.ts +27 -30
  722. package/src/match-media/MediaQueryList.ts +11 -21
  723. package/src/match-media/MediaQueryParser.ts +5 -5
  724. package/src/mutation-observer/MutationObserver.ts +25 -17
  725. package/src/navigator/Navigator.ts +14 -12
  726. package/src/nodes/NodeFactory.ts +1 -1
  727. package/src/nodes/document/Document.ts +67 -62
  728. package/src/nodes/document/DocumentReadyStateManager.ts +13 -10
  729. package/src/nodes/element/Element.ts +44 -29
  730. package/src/nodes/element/HTMLCollection.ts +1 -4
  731. package/src/nodes/element/NamedNodeMap.ts +4 -0
  732. package/src/nodes/element/NamedNodeMapProxyFactory.ts +0 -6
  733. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +4 -8
  734. package/src/nodes/html-area-element/HTMLAreaElement.ts +7 -11
  735. package/src/nodes/html-audio-element/Audio.ts +6 -0
  736. package/src/nodes/html-button-element/HTMLButtonElement.ts +67 -37
  737. package/src/nodes/html-canvas-element/HTMLCanvasElement.ts +5 -3
  738. package/src/nodes/html-document/HTMLDocument.ts +2 -8
  739. package/src/nodes/html-element/HTMLElement.ts +151 -129
  740. package/src/nodes/html-form-element/HTMLFormElement.ts +7 -9
  741. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +31 -42
  742. package/src/nodes/html-image-element/Image.ts +6 -0
  743. package/src/nodes/html-input-element/HTMLInputElement.ts +96 -61
  744. package/src/nodes/html-label-element/HTMLLabelElement.ts +21 -6
  745. package/src/nodes/html-link-element/HTMLLinkElement.ts +12 -19
  746. package/src/nodes/html-media-element/HTMLMediaElement.ts +15 -12
  747. package/src/nodes/html-media-element/MediaStream.ts +6 -0
  748. package/src/nodes/html-media-element/MediaStreamTrack.ts +6 -0
  749. package/src/nodes/html-media-element/TextTrack.ts +6 -0
  750. package/src/nodes/html-media-element/TextTrackCue.ts +6 -0
  751. package/src/nodes/html-media-element/VTTCue.ts +10 -9
  752. package/src/nodes/html-meter-element/HTMLMeterElement.ts +8 -6
  753. package/src/nodes/html-progress-element/HTMLProgressElement.ts +4 -2
  754. package/src/nodes/html-script-element/HTMLScriptElement.ts +25 -45
  755. package/src/nodes/html-select-element/HTMLSelectElement.ts +6 -5
  756. package/src/nodes/html-table-element/HTMLTableElement.ts +8 -9
  757. package/src/nodes/html-table-row-element/HTMLTableRowElement.ts +5 -6
  758. package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +1 -2
  759. package/src/nodes/html-track-element/HTMLTrackElement.ts +1 -1
  760. package/src/nodes/node/Node.ts +28 -26
  761. package/src/nodes/node/NodeList.ts +10 -11
  762. package/src/nodes/text/Text.ts +1 -2
  763. package/src/permissions/Permissions.ts +17 -1
  764. package/src/query-selector/QuerySelector.ts +15 -10
  765. package/src/range/Range.ts +39 -23
  766. package/src/selection/Selection.ts +27 -17
  767. package/src/window/BrowserWindow.ts +308 -335
  768. package/src/window/VMGlobalPropertyScript.ts +0 -1
  769. package/src/window/WindowBrowserContext.ts +114 -0
  770. package/src/window/WindowClassExtender.ts +306 -0
  771. package/src/window/WindowPageOpenUtility.ts +11 -1
  772. package/src/xml-http-request/XMLHttpRequest.ts +39 -36
  773. package/cjs/browser/utilities/BrowserFrameExceptionObserver.cjs +0 -80
  774. package/cjs/browser/utilities/BrowserFrameExceptionObserver.cjs.map +0 -1
  775. package/cjs/browser/utilities/BrowserFrameExceptionObserver.d.ts.map +0 -1
  776. package/cjs/event/IEventListener.cjs.map +0 -1
  777. package/cjs/event/IEventListener.d.ts +0 -13
  778. package/cjs/event/IEventListener.d.ts.map +0 -1
  779. package/cjs/event/IMessagePort.cjs.map +0 -1
  780. package/cjs/event/IMessagePort.d.ts +0 -24
  781. package/cjs/event/IMessagePort.d.ts.map +0 -1
  782. package/cjs/window/WindowBrowserSettingsReader.cjs +0 -72
  783. package/cjs/window/WindowBrowserSettingsReader.cjs.map +0 -1
  784. package/cjs/window/WindowBrowserSettingsReader.d.ts +0 -29
  785. package/cjs/window/WindowBrowserSettingsReader.d.ts.map +0 -1
  786. package/lib/browser/utilities/BrowserFrameExceptionObserver.d.ts.map +0 -1
  787. package/lib/browser/utilities/BrowserFrameExceptionObserver.js +0 -77
  788. package/lib/browser/utilities/BrowserFrameExceptionObserver.js.map +0 -1
  789. package/lib/event/IEventListener.d.ts +0 -13
  790. package/lib/event/IEventListener.d.ts.map +0 -1
  791. package/lib/event/IEventListener.js +0 -2
  792. package/lib/event/IEventListener.js.map +0 -1
  793. package/lib/event/IMessagePort.d.ts +0 -24
  794. package/lib/event/IMessagePort.d.ts.map +0 -1
  795. package/lib/event/IMessagePort.js +0 -2
  796. package/lib/event/IMessagePort.js.map +0 -1
  797. package/lib/window/WindowBrowserSettingsReader.d.ts +0 -29
  798. package/lib/window/WindowBrowserSettingsReader.d.ts.map +0 -1
  799. package/lib/window/WindowBrowserSettingsReader.js +0 -46
  800. package/lib/window/WindowBrowserSettingsReader.js.map +0 -1
  801. package/src/browser/utilities/BrowserFrameExceptionObserver.ts +0 -111
  802. package/src/event/IEventListener.ts +0 -13
  803. package/src/event/IMessagePort.ts +0 -26
  804. package/src/window/WindowBrowserSettingsReader.ts +0 -55
@@ -2,6 +2,8 @@ import HTMLElement from '../html-element/HTMLElement.js';
2
2
  import HTMLLabelElement from '../html-label-element/HTMLLabelElement.js';
3
3
  import HTMLLabelElementUtility from '../html-label-element/HTMLLabelElementUtility.js';
4
4
  import NodeList from '../node/NodeList.js';
5
+ import * as PropertySymbol from '../../PropertySymbol.js';
6
+
5
7
  /**
6
8
  * HTMLMeterElement
7
9
  *
@@ -31,7 +33,7 @@ export default class HTMLMeterElement extends HTMLElement {
31
33
  */
32
34
  public set high(high: number) {
33
35
  if (typeof high !== 'number') {
34
- throw new TypeError(
36
+ throw new this[PropertySymbol.window].TypeError(
35
37
  "Failed to set the 'high' property on 'HTMLMeterElement': The provided double value is non-finite."
36
38
  );
37
39
  }
@@ -62,7 +64,7 @@ export default class HTMLMeterElement extends HTMLElement {
62
64
  */
63
65
  public set low(low: number) {
64
66
  if (typeof low !== 'number') {
65
- throw new TypeError(
67
+ throw new this[PropertySymbol.window].TypeError(
66
68
  "Failed to set the 'low' property on 'HTMLMeterElement': The provided double value is non-finite."
67
69
  );
68
70
  }
@@ -93,7 +95,7 @@ export default class HTMLMeterElement extends HTMLElement {
93
95
  */
94
96
  public set max(max: number) {
95
97
  if (typeof max !== 'number') {
96
- throw new TypeError(
98
+ throw new this[PropertySymbol.window].TypeError(
97
99
  "Failed to set the 'max' property on 'HTMLMeterElement': The provided double value is non-finite."
98
100
  );
99
101
  }
@@ -124,7 +126,7 @@ export default class HTMLMeterElement extends HTMLElement {
124
126
  */
125
127
  public set min(min: number) {
126
128
  if (typeof min !== 'number') {
127
- throw new TypeError(
129
+ throw new this[PropertySymbol.window].TypeError(
128
130
  "Failed to set the 'min' property on 'HTMLMeterElement': The provided double value is non-finite."
129
131
  );
130
132
  }
@@ -158,7 +160,7 @@ export default class HTMLMeterElement extends HTMLElement {
158
160
  */
159
161
  public set optimum(optimum: number) {
160
162
  if (typeof optimum !== 'number') {
161
- throw new TypeError(
163
+ throw new this[PropertySymbol.window].TypeError(
162
164
  "Failed to set the 'optimum' property on 'HTMLMeterElement': The provided double value is non-finite."
163
165
  );
164
166
  }
@@ -189,7 +191,7 @@ export default class HTMLMeterElement extends HTMLElement {
189
191
  */
190
192
  public set value(value: number) {
191
193
  if (typeof value !== 'number') {
192
- throw new TypeError(
194
+ throw new this[PropertySymbol.window].TypeError(
193
195
  "Failed to set the 'value' property on 'HTMLMeterElement': The provided double value is non-finite."
194
196
  );
195
197
  }
@@ -2,6 +2,8 @@ import HTMLElement from '../html-element/HTMLElement.js';
2
2
  import HTMLLabelElement from '../html-label-element/HTMLLabelElement.js';
3
3
  import HTMLLabelElementUtility from '../html-label-element/HTMLLabelElementUtility.js';
4
4
  import NodeList from '../node/NodeList.js';
5
+ import * as PropertySymbol from '../../PropertySymbol.js';
6
+
5
7
  /**
6
8
  * HTMLProgressElement
7
9
  *
@@ -31,7 +33,7 @@ export default class HTMLProgressElement extends HTMLElement {
31
33
  */
32
34
  public set max(max: number) {
33
35
  if (typeof max !== 'number') {
34
- throw new TypeError(
36
+ throw new this[PropertySymbol.window].TypeError(
35
37
  "Failed to set the 'max' property on 'HTMLProgressElement': The provided double value is non-finite."
36
38
  );
37
39
  }
@@ -62,7 +64,7 @@ export default class HTMLProgressElement extends HTMLElement {
62
64
  */
63
65
  public set value(value: number) {
64
66
  if (typeof value !== 'number') {
65
- throw new TypeError(
67
+ throw new this[PropertySymbol.window].TypeError(
66
68
  "Failed to set the 'value' property on 'HTMLProgressElement': The provided double value is non-finite."
67
69
  );
68
70
  }
@@ -3,11 +3,9 @@ import * as PropertySymbol from '../../PropertySymbol.js';
3
3
  import Event from '../../event/Event.js';
4
4
  import ErrorEvent from '../../event/events/ErrorEvent.js';
5
5
  import WindowErrorUtility from '../../window/WindowErrorUtility.js';
6
- import WindowBrowserSettingsReader from '../../window/WindowBrowserSettingsReader.js';
7
- import IBrowserFrame from '../../browser/types/IBrowserFrame.js';
6
+ import WindowBrowserContext from '../../window/WindowBrowserContext.js';
8
7
  import BrowserErrorCaptureEnum from '../../browser/enums/BrowserErrorCaptureEnum.js';
9
8
  import Attr from '../attr/Attr.js';
10
- import DOMException from '../../exception/DOMException.js';
11
9
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
12
10
  import ResourceFetch from '../../fetch/ResourceFetch.js';
13
11
  import DocumentReadyStateManager from '../document/DocumentReadyStateManager.js';
@@ -30,20 +28,7 @@ export default class HTMLScriptElement extends HTMLElement {
30
28
  public [PropertySymbol.evaluateScript] = true;
31
29
 
32
30
  // Private properties
33
- #browserFrame: IBrowserFrame;
34
31
  #loadedScriptURL: string | null = null;
35
-
36
- /**
37
- * Constructor.
38
- *
39
- * @param browserFrame Browser frame.
40
- */
41
- constructor(browserFrame) {
42
- super();
43
-
44
- this.#browserFrame = browserFrame;
45
- }
46
-
47
32
  /**
48
33
  * Returns type.
49
34
  *
@@ -198,9 +183,7 @@ export default class HTMLScriptElement extends HTMLElement {
198
183
  * @override
199
184
  */
200
185
  public override [PropertySymbol.connectedToDocument](): void {
201
- const browserSettings = WindowBrowserSettingsReader.getSettings(
202
- this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow]
203
- );
186
+ const browserSettings = new WindowBrowserContext(this[PropertySymbol.window]).getSettings();
204
187
 
205
188
  super[PropertySymbol.connectedToDocument]();
206
189
 
@@ -209,7 +192,7 @@ export default class HTMLScriptElement extends HTMLElement {
209
192
 
210
193
  if (src !== null) {
211
194
  this.#loadScript(src);
212
- } else if (!browserSettings.disableJavaScriptEvaluation) {
195
+ } else if (browserSettings && !browserSettings.disableJavaScriptEvaluation) {
213
196
  const textContent = this.textContent;
214
197
  const type = this.getAttribute('type');
215
198
  if (
@@ -221,20 +204,16 @@ export default class HTMLScriptElement extends HTMLElement {
221
204
  ) {
222
205
  this[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = this;
223
206
 
224
- const code =
225
- `//# sourceURL=${
226
- this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].location.href
227
- }\n` + textContent;
207
+ const code = `//# sourceURL=${this[PropertySymbol.window].location.href}\n` + textContent;
228
208
 
229
209
  if (
230
210
  browserSettings.disableErrorCapturing ||
231
211
  browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
232
212
  ) {
233
- this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].eval(code);
213
+ this[PropertySymbol.window].eval(code);
234
214
  } else {
235
- WindowErrorUtility.captureError(
236
- this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow],
237
- () => this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].eval(code)
215
+ WindowErrorUtility.captureError(this[PropertySymbol.window], () =>
216
+ this[PropertySymbol.window].eval(code)
238
217
  );
239
218
  }
240
219
 
@@ -268,19 +247,23 @@ export default class HTMLScriptElement extends HTMLElement {
268
247
  * @param url URL.
269
248
  */
270
249
  async #loadScript(url: string): Promise<void> {
271
- const browserSettings = this.#browserFrame.page.context.browser.settings;
250
+ const window = this[PropertySymbol.window];
251
+ const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
272
252
  const async = this.getAttribute('async') !== null;
273
253
 
254
+ if (!browserFrame) {
255
+ return;
256
+ }
257
+
258
+ const browserSettings = browserFrame.page?.context?.browser?.settings;
259
+
274
260
  if (!url || !this[PropertySymbol.isConnected]) {
275
261
  return;
276
262
  }
277
263
 
278
264
  let absoluteURL: string;
279
265
  try {
280
- absoluteURL = new URL(
281
- url,
282
- this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].location.href
283
- ).href;
266
+ absoluteURL = new URL(url, this[PropertySymbol.window].location.href).href;
284
267
  } catch (error) {
285
268
  return;
286
269
  }
@@ -290,15 +273,15 @@ export default class HTMLScriptElement extends HTMLElement {
290
273
  }
291
274
 
292
275
  if (
293
- browserSettings.disableJavaScriptFileLoading ||
294
- browserSettings.disableJavaScriptEvaluation
276
+ browserSettings &&
277
+ (browserSettings.disableJavaScriptFileLoading || browserSettings.disableJavaScriptEvaluation)
295
278
  ) {
296
279
  if (browserSettings.handleDisabledFileLoadingAsSuccess) {
297
280
  this.dispatchEvent(new Event('load'));
298
281
  } else {
299
282
  WindowErrorUtility.dispatchError(
300
283
  this,
301
- new DOMException(
284
+ new window.DOMException(
302
285
  `Failed to load external script "${absoluteURL}". JavaScript file loading is disabled.`,
303
286
  DOMExceptionNameEnum.notSupportedError
304
287
  )
@@ -308,8 +291,8 @@ export default class HTMLScriptElement extends HTMLElement {
308
291
  }
309
292
 
310
293
  const resourceFetch = new ResourceFetch({
311
- browserFrame: this.#browserFrame,
312
- window: this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow]
294
+ browserFrame,
295
+ window: this[PropertySymbol.window]
313
296
  });
314
297
  let code: string | null = null;
315
298
  let error: Error | null = null;
@@ -319,9 +302,7 @@ export default class HTMLScriptElement extends HTMLElement {
319
302
  if (async) {
320
303
  const readyStateManager = (<
321
304
  { [PropertySymbol.readyStateManager]: DocumentReadyStateManager }
322
- >(<unknown>this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow]))[
323
- PropertySymbol.readyStateManager
324
- ];
305
+ >(<unknown>this[PropertySymbol.window]))[PropertySymbol.readyStateManager];
325
306
 
326
307
  readyStateManager.startTask();
327
308
 
@@ -350,11 +331,10 @@ export default class HTMLScriptElement extends HTMLElement {
350
331
  browserSettings.disableErrorCapturing ||
351
332
  browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
352
333
  ) {
353
- this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].eval(code);
334
+ this[PropertySymbol.window].eval(code);
354
335
  } else {
355
- WindowErrorUtility.captureError(
356
- this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow],
357
- () => this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].eval(code)
336
+ WindowErrorUtility.captureError(this[PropertySymbol.window], () =>
337
+ this[PropertySymbol.window].eval(code)
358
338
  );
359
339
  }
360
340
  this[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = null;
@@ -11,7 +11,6 @@ import HTMLCollection from '../element/HTMLCollection.js';
11
11
  import NodeTypeEnum from '../node/NodeTypeEnum.js';
12
12
  import QuerySelector from '../../query-selector/QuerySelector.js';
13
13
  import NodeList from '../node/NodeList.js';
14
- import DOMException from '../../exception/DOMException.js';
15
14
  import ClassMethodBinder from '../../ClassMethodBinder.js';
16
15
  import Element from '../element/Element.js';
17
16
  import Node from '../node/Node.js';
@@ -74,7 +73,7 @@ export default class HTMLSelectElement extends HTMLElement {
74
73
  }
75
74
 
76
75
  if (!newValue || !(newValue instanceof HTMLOptionElement)) {
77
- throw new Error(
76
+ throw new this[PropertySymbol.window].Error(
78
77
  `TypeError: Failed to set an indexed property [${index}] on 'HTMLSelectElement': parameter 2 is not of type 'HTMLOptionElement'.`
79
78
  );
80
79
  }
@@ -136,7 +135,7 @@ export default class HTMLSelectElement extends HTMLElement {
136
135
  }
137
136
 
138
137
  if (!descriptor.value || !(descriptor.value instanceof HTMLOptionElement)) {
139
- throw new Error(
138
+ throw new this[PropertySymbol.window].Error(
140
139
  `TypeError: Failed to set an indexed property [${index}] on 'HTMLSelectElement': parameter 2 is not of type 'HTMLOptionElement'.`
141
140
  );
142
141
  }
@@ -553,9 +552,11 @@ export default class HTMLSelectElement extends HTMLElement {
553
552
  return;
554
553
  }
555
554
 
555
+ const window = this[PropertySymbol.window];
556
+
556
557
  if (typeof before !== 'number') {
557
558
  if (!(before instanceof HTMLOptionElement)) {
558
- throw new DOMException(
559
+ throw new window.DOMException(
559
560
  "Failed to execute 'add' on 'HTMLFormElement': The node before which the new node is to be inserted before is not an 'HTMLOptionElement'."
560
561
  );
561
562
  }
@@ -566,7 +567,7 @@ export default class HTMLSelectElement extends HTMLElement {
566
567
  const optionsElement = options[before];
567
568
 
568
569
  if (!optionsElement) {
569
- throw new DOMException(
570
+ throw new window.DOMException(
570
571
  "Failed to execute 'add' on 'HTMLFormElement': The node before which the new node is to be inserted before is not a child of this node."
571
572
  );
572
573
  }
@@ -5,7 +5,6 @@ import * as PropertySymbol from '../../PropertySymbol.js';
5
5
  import QuerySelector from '../../query-selector/QuerySelector.js';
6
6
  import HTMLTableCaptionElement from '../html-table-caption-element/HTMLTableCaptionElement.js';
7
7
  import HTMLTableSectionElement from '../html-table-section-element/HTMLTableSectionElement.js';
8
- import DOMException from '../../exception/DOMException.js';
9
8
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
10
9
 
11
10
  /**
@@ -34,7 +33,7 @@ export default class HTMLTableElement extends HTMLElement {
34
33
  public set caption(caption: HTMLTableCaptionElement | null) {
35
34
  if (caption) {
36
35
  if (!(caption instanceof HTMLTableCaptionElement)) {
37
- throw new TypeError(
36
+ throw new this[PropertySymbol.window].TypeError(
38
37
  "Failed to set the 'caption' property on 'HTMLTableElement': Failed to convert value to 'HTMLTableCaptionElement'."
39
38
  );
40
39
  }
@@ -63,7 +62,7 @@ export default class HTMLTableElement extends HTMLElement {
63
62
  public set tHead(tHead: HTMLTableSectionElement | null) {
64
63
  if (tHead) {
65
64
  if (!(tHead instanceof HTMLTableSectionElement)) {
66
- throw new TypeError(
65
+ throw new this[PropertySymbol.window].TypeError(
67
66
  "Failed to set the 'tHead' property on 'HTMLTableElement': Failed to convert value to 'HTMLTableSectionElement'."
68
67
  );
69
68
  }
@@ -109,7 +108,7 @@ export default class HTMLTableElement extends HTMLElement {
109
108
  public set tFoot(tFoot: HTMLTableSectionElement | null) {
110
109
  if (tFoot) {
111
110
  if (!(tFoot instanceof HTMLTableSectionElement)) {
112
- throw new TypeError(
111
+ throw new this[PropertySymbol.window].TypeError(
113
112
  "Failed to set the 'tFoot' property on 'HTMLTableElement': Failed to convert value to 'HTMLTableSectionElement'."
114
113
  );
115
114
  }
@@ -271,14 +270,14 @@ export default class HTMLTableElement extends HTMLElement {
271
270
  const rows = QuerySelector.querySelectorAll(this, 'tr')[PropertySymbol.items];
272
271
 
273
272
  if (index < -1) {
274
- throw new DOMException(
273
+ throw new this[PropertySymbol.window].DOMException(
275
274
  `Failed to execute 'insertRow' on 'HTMLTableElement': The index provided (${index}) is less than -1.`,
276
275
  DOMExceptionNameEnum.indexSizeError
277
276
  );
278
277
  }
279
278
 
280
279
  if (index > rows.length) {
281
- throw new DOMException(
280
+ throw new this[PropertySymbol.window].DOMException(
282
281
  `Failed to execute 'insertRow' on 'HTMLTableElement': The index provided (${index}) is greater than the number of rows (${rows.length}).`,
283
282
  DOMExceptionNameEnum.indexSizeError
284
283
  );
@@ -303,7 +302,7 @@ export default class HTMLTableElement extends HTMLElement {
303
302
  */
304
303
  public deleteRow(index: number): void {
305
304
  if (arguments.length === 0) {
306
- throw new TypeError(
305
+ throw new this[PropertySymbol.window].TypeError(
307
306
  "Failed to execute 'deleteRow' on 'HTMLTableElement': 1 argument required, but only 0 present."
308
307
  );
309
308
  }
@@ -313,7 +312,7 @@ export default class HTMLTableElement extends HTMLElement {
313
312
  }
314
313
 
315
314
  if (index < -1) {
316
- throw new DOMException(
315
+ throw new this[PropertySymbol.window].DOMException(
317
316
  `Failed to execute 'deleteRow' on 'HTMLTableElement': The index provided (${index}) is less than -1.`,
318
317
  DOMExceptionNameEnum.indexSizeError
319
318
  );
@@ -322,7 +321,7 @@ export default class HTMLTableElement extends HTMLElement {
322
321
  const rows = QuerySelector.querySelectorAll(this, 'tr')[PropertySymbol.items];
323
322
 
324
323
  if (index >= rows.length) {
325
- throw new DOMException(
324
+ throw new this[PropertySymbol.window].DOMException(
326
325
  `Failed to execute 'deleteRow' on 'HTMLTableElement': The index provided (${index}) is greater than the number of rows in the table (${rows.length}).`,
327
326
  DOMExceptionNameEnum.indexSizeError
328
327
  );
@@ -4,7 +4,6 @@ import HTMLTableCellElement from '../html-table-cell-element/HTMLTableCellElemen
4
4
  import * as PropertySymbol from '../../PropertySymbol.js';
5
5
  import QuerySelector from '../../query-selector/QuerySelector.js';
6
6
  import HTMLTableSectionElement from '../html-table-section-element/HTMLTableSectionElement.js';
7
- import DOMException from '../../exception/DOMException.js';
8
7
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
9
8
 
10
9
  /**
@@ -83,14 +82,14 @@ export default class HTMLTableRowElement extends HTMLElement {
83
82
  const cells = QuerySelector.querySelectorAll(this, 'td,th')[PropertySymbol.items];
84
83
 
85
84
  if (index < -1) {
86
- throw new DOMException(
85
+ throw new this[PropertySymbol.window].DOMException(
87
86
  `Failed to execute 'insertCell' on 'HTMLTableRowElement': The index provided (${index}) is less than -1.`,
88
87
  DOMExceptionNameEnum.indexSizeError
89
88
  );
90
89
  }
91
90
 
92
91
  if (index > cells.length) {
93
- throw new DOMException(
92
+ throw new this[PropertySymbol.window].DOMException(
94
93
  `Failed to execute 'insertCell' on 'HTMLTableRowElement': The index provided (${index}) is greater than the number of cells (${cells.length}).`,
95
94
  DOMExceptionNameEnum.indexSizeError
96
95
  );
@@ -115,7 +114,7 @@ export default class HTMLTableRowElement extends HTMLElement {
115
114
  */
116
115
  public deleteCell(index: number): void {
117
116
  if (arguments.length === 0) {
118
- throw new TypeError(
117
+ throw new this[PropertySymbol.window].TypeError(
119
118
  "Failed to execute 'deleteCell' on 'HTMLTableRowElement': 1 argument required, but only 0 present."
120
119
  );
121
120
  }
@@ -125,7 +124,7 @@ export default class HTMLTableRowElement extends HTMLElement {
125
124
  }
126
125
 
127
126
  if (index < -1) {
128
- throw new DOMException(
127
+ throw new this[PropertySymbol.window].DOMException(
129
128
  `Failed to execute 'deleteCell' on 'HTMLTableRowElement': The index provided (${index}) is less than -1.`,
130
129
  DOMExceptionNameEnum.indexSizeError
131
130
  );
@@ -134,7 +133,7 @@ export default class HTMLTableRowElement extends HTMLElement {
134
133
  const cells = QuerySelector.querySelectorAll(this, 'td,th')[PropertySymbol.items];
135
134
 
136
135
  if (index >= cells.length) {
137
- throw new DOMException(
136
+ throw new this[PropertySymbol.window].DOMException(
138
137
  `Failed to execute 'deleteCell' on 'HTMLTableRowElement': The index provided (${index}) is greater than the number of cells in the row (${cells.length}).`,
139
138
  DOMExceptionNameEnum.indexSizeError
140
139
  );
@@ -1,6 +1,5 @@
1
1
  import Event from '../../event/Event.js';
2
2
  import * as PropertySymbol from '../../PropertySymbol.js';
3
- import DOMException from '../../exception/DOMException.js';
4
3
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
5
4
  import HTMLElement from '../html-element/HTMLElement.js';
6
5
  import HTMLFormElement from '../html-form-element/HTMLFormElement.js';
@@ -494,7 +493,7 @@ export default class HTMLTextAreaElement extends HTMLElement {
494
493
  }
495
494
 
496
495
  if (start > end) {
497
- throw new DOMException(
496
+ throw new this[PropertySymbol.window].DOMException(
498
497
  'The index is not in the allowed range.',
499
498
  DOMExceptionNameEnum.invalidStateError
500
499
  );
@@ -140,7 +140,7 @@ export default class HTMLTrackElement extends HTMLElement {
140
140
  * @returns TextTrack
141
141
  */
142
142
  public get track(): TextTrack {
143
- const textTrack = new TextTrack(PropertySymbol.illegalConstructor);
143
+ const textTrack = new this[PropertySymbol.window].TextTrack(PropertySymbol.illegalConstructor);
144
144
  textTrack[PropertySymbol.kind] = <TextTrackKindEnum>this.kind;
145
145
  textTrack[PropertySymbol.label] = this.label;
146
146
  textTrack[PropertySymbol.language] = this.srclang;
@@ -9,7 +9,6 @@ import Attr from '../attr/Attr.js';
9
9
  import NodeList from './NodeList.js';
10
10
  import MutationRecord from '../../mutation-observer/MutationRecord.js';
11
11
  import MutationTypeEnum from '../../mutation-observer/MutationTypeEnum.js';
12
- import DOMException from '../../exception/DOMException.js';
13
12
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
14
13
  import IMutationListener from '../../mutation-observer/IMutationListener.js';
15
14
  import ICachedQuerySelectorAllResult from './ICachedQuerySelectorAllResult.js';
@@ -26,14 +25,15 @@ import HTMLFormElement from '../html-form-element/HTMLFormElement.js';
26
25
  import HTMLSelectElement from '../html-select-element/HTMLSelectElement.js';
27
26
  import HTMLTextAreaElement from '../html-text-area-element/HTMLTextAreaElement.js';
28
27
  import HTMLSlotElement from '../html-slot-element/HTMLSlotElement.js';
28
+ import WindowBrowserContext from '../../window/WindowBrowserContext.js';
29
29
  import NodeFactory from '../NodeFactory.js';
30
30
 
31
31
  /**
32
32
  * Node.
33
33
  */
34
34
  export default class Node extends EventTarget {
35
- // This is used when overriding a Node class and set it in a owner document context (used in BrowserWindow.constructor()).
36
- public static [PropertySymbol.ownerDocument]: Document | null;
35
+ // Can be injected by CustomElementRegistry or a sub-class
36
+ public declare [PropertySymbol.ownerDocument]: Document;
37
37
 
38
38
  // Public properties
39
39
  public static readonly ELEMENT_NODE = NodeTypeEnum.elementNode;
@@ -72,7 +72,6 @@ export default class Node extends EventTarget {
72
72
 
73
73
  // Internal properties
74
74
  public [PropertySymbol.isConnected] = false;
75
- public [PropertySymbol.ownerDocument]: Document;
76
75
  public [PropertySymbol.parentNode]: Node | null = null;
77
76
  public [PropertySymbol.nodeType]: NodeTypeEnum;
78
77
  public [PropertySymbol.rootNode]: Node = null;
@@ -114,17 +113,18 @@ export default class Node extends EventTarget {
114
113
  constructor() {
115
114
  super();
116
115
 
117
- const definedOwnerDocument = (<typeof Node>this.constructor)[PropertySymbol.ownerDocument];
118
-
119
- if (definedOwnerDocument) {
120
- this[PropertySymbol.ownerDocument] = definedOwnerDocument;
116
+ // Window injected by WindowClassExtender (used when the Node can be created using "new" keyword)
117
+ if (this[PropertySymbol.window]) {
118
+ this[PropertySymbol.ownerDocument] = this[PropertySymbol.window].document;
121
119
  } else {
122
120
  const ownerDocument = NodeFactory.pullOwnerDocument();
123
121
 
124
122
  if (!ownerDocument) {
125
123
  throw new TypeError('Illegal constructor');
126
124
  }
125
+
127
126
  this[PropertySymbol.ownerDocument] = ownerDocument;
127
+ this[PropertySymbol.window] = ownerDocument[PropertySymbol.window];
128
128
  }
129
129
  }
130
130
 
@@ -314,7 +314,7 @@ export default class Node extends EventTarget {
314
314
  if (base) {
315
315
  return base.href;
316
316
  }
317
- return this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].location.href;
317
+ return this[PropertySymbol.window].location.href;
318
318
  }
319
319
 
320
320
  /**
@@ -386,7 +386,7 @@ export default class Node extends EventTarget {
386
386
  */
387
387
  public appendChild(node: Node): Node {
388
388
  if (arguments.length < 1) {
389
- throw new TypeError(
389
+ throw new this[PropertySymbol.window].TypeError(
390
390
  `Failed to execute 'appendChild' on 'Node': 1 argument required, but only 0 present`
391
391
  );
392
392
  }
@@ -401,7 +401,7 @@ export default class Node extends EventTarget {
401
401
  */
402
402
  public removeChild(node: Node): Node {
403
403
  if (arguments.length < 1) {
404
- throw new TypeError(
404
+ throw new this[PropertySymbol.window].TypeError(
405
405
  `Failed to execute 'removeChild' on 'Node': 1 argument required, but only 0 present`
406
406
  );
407
407
  }
@@ -417,7 +417,7 @@ export default class Node extends EventTarget {
417
417
  */
418
418
  public insertBefore(newNode: Node, referenceNode: Node | null): Node {
419
419
  if (arguments.length < 2) {
420
- throw new TypeError(
420
+ throw new this[PropertySymbol.window].TypeError(
421
421
  `Failed to execute 'insertBefore' on 'Node': 2 arguments required, but only ${arguments.length} present.`
422
422
  );
423
423
  }
@@ -433,7 +433,7 @@ export default class Node extends EventTarget {
433
433
  */
434
434
  public replaceChild(newChild: Node, oldChild: Node): Node {
435
435
  if (arguments.length < 2) {
436
- throw new TypeError(
436
+ throw new this[PropertySymbol.window].TypeError(
437
437
  `Failed to execute 'replaceChild' on 'Node': 2 arguments required, but only ${arguments.length} present.`
438
438
  );
439
439
  }
@@ -453,6 +453,7 @@ export default class Node extends EventTarget {
453
453
  );
454
454
 
455
455
  // Document has childNodes directly when it is created
456
+ // We need to remove them
456
457
  if (clone[PropertySymbol.nodeArray].length) {
457
458
  const childNodes = clone[PropertySymbol.nodeArray];
458
459
  while (childNodes.length) {
@@ -485,13 +486,13 @@ export default class Node extends EventTarget {
485
486
  public [PropertySymbol.appendChild](node: Node, disableValidations = false): Node {
486
487
  if (!disableValidations) {
487
488
  if (node === this) {
488
- throw new DOMException(
489
+ throw new this[PropertySymbol.window].DOMException(
489
490
  "Failed to execute 'appendChild' on 'Node': Not possible to append a node as a child of itself."
490
491
  );
491
492
  }
492
493
 
493
494
  if (NodeUtility.isInclusiveAncestor(node, this, true)) {
494
- throw new DOMException(
495
+ throw new this[PropertySymbol.window].DOMException(
495
496
  "Failed to execute 'appendChild' on 'Node': The new node is a parent of the node to insert to.",
496
497
  DOMExceptionNameEnum.domException
497
498
  );
@@ -557,7 +558,7 @@ export default class Node extends EventTarget {
557
558
  const index = this[PropertySymbol.nodeArray].indexOf(node);
558
559
 
559
560
  if (index === -1) {
560
- throw new DOMException(
561
+ throw new this[PropertySymbol.window].DOMException(
561
562
  `Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.`
562
563
  );
563
564
  }
@@ -612,7 +613,7 @@ export default class Node extends EventTarget {
612
613
  }
613
614
 
614
615
  if (NodeUtility.isInclusiveAncestor(newNode, this, true)) {
615
- throw new DOMException(
616
+ throw new this[PropertySymbol.window].DOMException(
616
617
  "Failed to execute 'insertBefore' on 'Node': The new node is a parent of the node to insert to.",
617
618
  DOMExceptionNameEnum.domException
618
619
  );
@@ -639,7 +640,7 @@ export default class Node extends EventTarget {
639
640
 
640
641
  // We need to check if the referenceNode is a child of this node before removing it from its parent, as the parent may be the same node and the index would be wrong.
641
642
  if (!nodeArray.includes(referenceNode)) {
642
- throw new DOMException(
643
+ throw new this[PropertySymbol.window].DOMException(
643
644
  "Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node."
644
645
  );
645
646
  }
@@ -1007,14 +1008,15 @@ export default class Node extends EventTarget {
1007
1008
  * @see https://github.com/capricorn86/happy-dom/issues/1442
1008
1009
  */
1009
1010
  if (result instanceof Promise) {
1010
- const asyncTaskManager =
1011
- this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow][
1012
- PropertySymbol.asyncTaskManager
1013
- ];
1014
- const taskID = asyncTaskManager.startTask();
1015
- result
1016
- .then(() => asyncTaskManager.endTask(taskID))
1017
- .catch(() => asyncTaskManager.endTask(taskID));
1011
+ const asyncTaskManager = new WindowBrowserContext(
1012
+ this[PropertySymbol.window]
1013
+ ).getAsyncTaskManager();
1014
+ if (asyncTaskManager) {
1015
+ const taskID = asyncTaskManager.startTask();
1016
+ result
1017
+ .then(() => asyncTaskManager.endTask(taskID))
1018
+ .catch(() => asyncTaskManager.endTask(taskID));
1019
+ }
1018
1020
  }
1019
1021
  }
1020
1022
  }
@@ -24,17 +24,7 @@ class NodeList<T extends Node> {
24
24
 
25
25
  this[PropertySymbol.items] = items;
26
26
 
27
- // This only works for one level of inheritance, but it should be fine as there is no collection that goes deeper according to spec.
28
- ClassMethodBinder.bindMethods(
29
- this,
30
- this.constructor !== NodeList ? [NodeList, this.constructor] : [NodeList],
31
- {
32
- bindSymbols: true,
33
- forwardToPrototype: true
34
- }
35
- );
36
-
37
- return new Proxy(this, {
27
+ const proxy = new Proxy(this, {
38
28
  get: (target, property) => {
39
29
  if (property === 'length') {
40
30
  return items.length;
@@ -106,6 +96,15 @@ class NodeList<T extends Node> {
106
96
  }
107
97
  }
108
98
  });
99
+
100
+ // This only works for one level of inheritance, but it should be fine as there is no collection that goes deeper according to spec.
101
+ ClassMethodBinder.bindMethods(
102
+ this,
103
+ this.constructor !== NodeList ? [NodeList, this.constructor] : [NodeList],
104
+ { bindSymbols: true, proxy }
105
+ );
106
+
107
+ return proxy;
109
108
  }
110
109
 
111
110
  /**