happy-dom 15.0.0 → 15.2.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 +48 -4
  113. package/cjs/fetch/AbortSignal.cjs.map +1 -1
  114. package/cjs/fetch/AbortSignal.d.ts +19 -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 +19 -0
  450. package/lib/fetch/AbortSignal.d.ts.map +1 -1
  451. package/lib/fetch/AbortSignal.js +48 -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 +69 -4
  709. package/src/fetch/Fetch.ts +39 -15
  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 +15 -13
  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
@@ -37,11 +37,8 @@ const PropertySymbol = __importStar(require("../PropertySymbol.cjs"));
37
37
  const Base64_js_1 = __importDefault(require("../base64/Base64.cjs"));
38
38
  const BrowserErrorCaptureEnum_js_1 = __importDefault(require("../browser/enums/BrowserErrorCaptureEnum.cjs"));
39
39
  const Clipboard_js_1 = __importDefault(require("../clipboard/Clipboard.cjs"));
40
- const ClipboardItem_js_1 = __importDefault(require("../clipboard/ClipboardItem.cjs"));
41
40
  const CSS_js_1 = __importDefault(require("../css/CSS.cjs"));
42
41
  const CSSRule_js_1 = __importDefault(require("../css/CSSRule.cjs"));
43
- const CSSStyleSheet_js_1 = __importDefault(require("../css/CSSStyleSheet.cjs"));
44
- const CSSUnitValue_js_1 = __importDefault(require("../css/CSSUnitValue.cjs"));
45
42
  const CSSStyleDeclaration_js_1 = __importDefault(require("../css/declaration/CSSStyleDeclaration.cjs"));
46
43
  const CSSContainerRule_js_1 = __importDefault(require("../css/rules/CSSContainerRule.cjs"));
47
44
  const CSSFontFaceRule_js_1 = __importDefault(require("../css/rules/CSSFontFaceRule.cjs"));
@@ -51,13 +48,8 @@ const CSSMediaRule_js_1 = __importDefault(require("../css/rules/CSSMediaRule.cjs
51
48
  const CSSStyleRule_js_1 = __importDefault(require("../css/rules/CSSStyleRule.cjs"));
52
49
  const CSSSupportsRule_js_1 = __importDefault(require("../css/rules/CSSSupportsRule.cjs"));
53
50
  const CustomElementRegistry_js_1 = __importDefault(require("../custom-element/CustomElementRegistry.cjs"));
54
- const DOMParser_js_1 = __importDefault(require("../dom-parser/DOMParser.cjs"));
55
- const DataTransfer_js_1 = __importDefault(require("../event/DataTransfer.cjs"));
56
- const DataTransferItem_js_1 = __importDefault(require("../event/DataTransferItem.cjs"));
57
- const DataTransferItemList_js_1 = __importDefault(require("../event/DataTransferItemList.cjs"));
58
51
  const Event_js_1 = __importDefault(require("../event/Event.cjs"));
59
52
  const EventTarget_js_1 = __importDefault(require("../event/EventTarget.cjs"));
60
- const MessagePort_js_1 = __importDefault(require("../event/MessagePort.cjs"));
61
53
  const Touch_js_1 = __importDefault(require("../event/Touch.cjs"));
62
54
  const UIEvent_js_1 = __importDefault(require("../event/UIEvent.cjs"));
63
55
  const AnimationEvent_js_1 = __importDefault(require("../event/events/AnimationEvent.cjs"));
@@ -77,24 +69,15 @@ const StorageEvent_js_1 = __importDefault(require("../event/events/StorageEvent.
77
69
  const SubmitEvent_js_1 = __importDefault(require("../event/events/SubmitEvent.cjs"));
78
70
  const TouchEvent_js_1 = __importDefault(require("../event/events/TouchEvent.cjs"));
79
71
  const WheelEvent_js_1 = __importDefault(require("../event/events/WheelEvent.cjs"));
80
- const DOMException_js_1 = __importDefault(require("../exception/DOMException.cjs"));
81
72
  const DOMExceptionNameEnum_js_1 = __importDefault(require("../exception/DOMExceptionNameEnum.cjs"));
82
- const AbortController_js_1 = __importDefault(require("../fetch/AbortController.cjs"));
83
- const AbortSignal_js_1 = __importDefault(require("../fetch/AbortSignal.cjs"));
84
73
  const Fetch_js_1 = __importDefault(require("../fetch/Fetch.cjs"));
85
- const Headers_js_1 = __importDefault(require("../fetch/Headers.cjs"));
86
- const Request_js_1 = __importDefault(require("../fetch/Request.cjs"));
87
- const Response_js_1 = __importDefault(require("../fetch/Response.cjs"));
88
74
  const Blob_js_1 = __importDefault(require("../file/Blob.cjs"));
89
75
  const File_js_1 = __importDefault(require("../file/File.cjs"));
90
- const FileReader_js_1 = __importDefault(require("../file/FileReader.cjs"));
91
- const FormData_js_1 = __importDefault(require("../form-data/FormData.cjs"));
92
76
  const History_js_1 = __importDefault(require("../history/History.cjs"));
93
77
  const IntersectionObserver_js_1 = __importDefault(require("../intersection-observer/IntersectionObserver.cjs"));
94
78
  const IntersectionObserverEntry_js_1 = __importDefault(require("../intersection-observer/IntersectionObserverEntry.cjs"));
95
79
  const Location_js_1 = __importDefault(require("../location/Location.cjs"));
96
80
  const MediaQueryList_js_1 = __importDefault(require("../match-media/MediaQueryList.cjs"));
97
- const MutationObserver_js_1 = __importDefault(require("../mutation-observer/MutationObserver.cjs"));
98
81
  const MutationRecord_js_1 = __importDefault(require("../mutation-observer/MutationRecord.cjs"));
99
82
  const MimeType_js_1 = __importDefault(require("../navigator/MimeType.cjs"));
100
83
  const MimeTypeArray_js_1 = __importDefault(require("../navigator/MimeTypeArray.cjs"));
@@ -103,20 +86,15 @@ const Plugin_js_1 = __importDefault(require("../navigator/Plugin.cjs"));
103
86
  const PluginArray_js_1 = __importDefault(require("../navigator/PluginArray.cjs"));
104
87
  const Attr_js_1 = __importDefault(require("../nodes/attr/Attr.cjs"));
105
88
  const CharacterData_js_1 = __importDefault(require("../nodes/character-data/CharacterData.cjs"));
106
- const Comment_js_1 = __importDefault(require("../nodes/comment/Comment.cjs"));
107
- const DocumentFragment_js_1 = __importDefault(require("../nodes/document-fragment/DocumentFragment.cjs"));
108
89
  const DocumentType_js_1 = __importDefault(require("../nodes/document-type/DocumentType.cjs"));
109
- const Document_js_1 = __importDefault(require("../nodes/document/Document.cjs"));
110
90
  const DocumentReadyStateEnum_js_1 = __importDefault(require("../nodes/document/DocumentReadyStateEnum.cjs"));
111
91
  const DocumentReadyStateManager_js_1 = __importDefault(require("../nodes/document/DocumentReadyStateManager.cjs"));
112
92
  const DOMRect_js_1 = __importDefault(require("../nodes/element/DOMRect.cjs"));
113
93
  const DOMRectReadOnly_js_1 = __importDefault(require("../nodes/element/DOMRectReadOnly.cjs"));
114
94
  const Element_js_1 = __importDefault(require("../nodes/element/Element.cjs"));
115
95
  const HTMLCollection_js_1 = __importDefault(require("../nodes/element/HTMLCollection.cjs"));
116
- const NamedNodeMap_js_1 = __importDefault(require("../nodes/element/NamedNodeMap.cjs"));
117
96
  const HTMLAnchorElement_js_1 = __importDefault(require("../nodes/html-anchor-element/HTMLAnchorElement.cjs"));
118
97
  const HTMLAreaElement_js_1 = __importDefault(require("../nodes/html-area-element/HTMLAreaElement.cjs"));
119
- const Audio_js_1 = __importDefault(require("../nodes/html-audio-element/Audio.cjs"));
120
98
  const HTMLAudioElement_js_1 = __importDefault(require("../nodes/html-audio-element/HTMLAudioElement.cjs"));
121
99
  const HTMLBaseElement_js_1 = __importDefault(require("../nodes/html-base-element/HTMLBaseElement.cjs"));
122
100
  const HTMLBodyElement_js_1 = __importDefault(require("../nodes/html-body-element/HTMLBodyElement.cjs"));
@@ -129,7 +107,6 @@ const HTMLDataListElement_js_1 = __importDefault(require("../nodes/html-data-lis
129
107
  const HTMLDetailsElement_js_1 = __importDefault(require("../nodes/html-details-element/HTMLDetailsElement.cjs"));
130
108
  const HTMLDialogElement_js_1 = __importDefault(require("../nodes/html-dialog-element/HTMLDialogElement.cjs"));
131
109
  const HTMLDivElement_js_1 = __importDefault(require("../nodes/html-div-element/HTMLDivElement.cjs"));
132
- const HTMLDocument_js_1 = __importDefault(require("../nodes/html-document/HTMLDocument.cjs"));
133
110
  const HTMLElement_js_1 = __importDefault(require("../nodes/html-element/HTMLElement.cjs"));
134
111
  const HTMLEmbedElement_js_1 = __importDefault(require("../nodes/html-embed-element/HTMLEmbedElement.cjs"));
135
112
  const HTMLFieldSetElement_js_1 = __importDefault(require("../nodes/html-field-set-element/HTMLFieldSetElement.cjs"));
@@ -142,7 +119,6 @@ const HTMLHRElement_js_1 = __importDefault(require("../nodes/html-hr-element/HTM
142
119
  const HTMLHtmlElement_js_1 = __importDefault(require("../nodes/html-html-element/HTMLHtmlElement.cjs"));
143
120
  const HTMLIFrameElement_js_1 = __importDefault(require("../nodes/html-iframe-element/HTMLIFrameElement.cjs"));
144
121
  const HTMLImageElement_js_1 = __importDefault(require("../nodes/html-image-element/HTMLImageElement.cjs"));
145
- const Image_js_1 = __importDefault(require("../nodes/html-image-element/Image.cjs"));
146
122
  const FileList_js_1 = __importDefault(require("../nodes/html-input-element/FileList.cjs"));
147
123
  const HTMLInputElement_js_1 = __importDefault(require("../nodes/html-input-element/HTMLInputElement.cjs"));
148
124
  const HTMLLabelElement_js_1 = __importDefault(require("../nodes/html-label-element/HTMLLabelElement.cjs"));
@@ -151,15 +127,8 @@ const HTMLLIElement_js_1 = __importDefault(require("../nodes/html-li-element/HTM
151
127
  const HTMLLinkElement_js_1 = __importDefault(require("../nodes/html-link-element/HTMLLinkElement.cjs"));
152
128
  const HTMLMapElement_js_1 = __importDefault(require("../nodes/html-map-element/HTMLMapElement.cjs"));
153
129
  const HTMLMediaElement_js_1 = __importDefault(require("../nodes/html-media-element/HTMLMediaElement.cjs"));
154
- const MediaStream_js_1 = __importDefault(require("../nodes/html-media-element/MediaStream.cjs"));
155
- const MediaStreamTrack_js_1 = __importDefault(require("../nodes/html-media-element/MediaStreamTrack.cjs"));
156
- const RemotePlayback_js_1 = __importDefault(require("../nodes/html-media-element/RemotePlayback.cjs"));
157
- const TextTrack_js_1 = __importDefault(require("../nodes/html-media-element/TextTrack.cjs"));
158
- const TextTrackCue_js_1 = __importDefault(require("../nodes/html-media-element/TextTrackCue.cjs"));
159
130
  const TextTrackCueList_js_1 = __importDefault(require("../nodes/html-media-element/TextTrackCueList.cjs"));
160
- const TextTrackList_js_1 = __importDefault(require("../nodes/html-media-element/TextTrackList.cjs"));
161
131
  const TimeRanges_js_1 = __importDefault(require("../nodes/html-media-element/TimeRanges.cjs"));
162
- const VTTCue_js_1 = __importDefault(require("../nodes/html-media-element/VTTCue.cjs"));
163
132
  const HTMLMenuElement_js_1 = __importDefault(require("../nodes/html-menu-element/HTMLMenuElement.cjs"));
164
133
  const HTMLMetaElement_js_1 = __importDefault(require("../nodes/html-meta-element/HTMLMetaElement.cjs"));
165
134
  const HTMLMeterElement_js_1 = __importDefault(require("../nodes/html-meter-element/HTMLMeterElement.cjs"));
@@ -199,32 +168,24 @@ const Node_js_1 = __importDefault(require("../nodes/node/Node.cjs"));
199
168
  const NodeList_js_1 = __importDefault(require("../nodes/node/NodeList.cjs"));
200
169
  const ProcessingInstruction_js_1 = __importDefault(require("../nodes/processing-instruction/ProcessingInstruction.cjs"));
201
170
  const ShadowRoot_js_1 = __importDefault(require("../nodes/shadow-root/ShadowRoot.cjs"));
202
- const SVGDocument_js_1 = __importDefault(require("../nodes/svg-document/SVGDocument.cjs"));
203
171
  const SVGElement_js_1 = __importDefault(require("../nodes/svg-element/SVGElement.cjs"));
204
172
  const SVGGraphicsElement_js_1 = __importDefault(require("../nodes/svg-element/SVGGraphicsElement.cjs"));
205
173
  const SVGSVGElement_js_1 = __importDefault(require("../nodes/svg-element/SVGSVGElement.cjs"));
206
- const Text_js_1 = __importDefault(require("../nodes/text/Text.cjs"));
207
- const XMLDocument_js_1 = __importDefault(require("../nodes/xml-document/XMLDocument.cjs"));
208
- const PermissionStatus_js_1 = __importDefault(require("../permissions/PermissionStatus.cjs"));
209
174
  const Permissions_js_1 = __importDefault(require("../permissions/Permissions.cjs"));
210
- const Range_js_1 = __importDefault(require("../range/Range.cjs"));
211
175
  const ResizeObserver_js_1 = __importDefault(require("../resize-observer/ResizeObserver.cjs"));
212
176
  const Screen_js_1 = __importDefault(require("../screen/Screen.cjs"));
213
- const Selection_js_1 = __importDefault(require("../selection/Selection.cjs"));
214
177
  const Storage_js_1 = __importDefault(require("../storage/Storage.cjs"));
215
178
  const NodeFilter_js_1 = __importDefault(require("../tree-walker/NodeFilter.cjs"));
216
- const NodeIterator_js_1 = __importDefault(require("../tree-walker/NodeIterator.cjs"));
217
- const TreeWalker_js_1 = __importDefault(require("../tree-walker/TreeWalker.cjs"));
218
179
  const URL_js_1 = __importDefault(require("../url/URL.cjs"));
219
180
  const ValidityState_js_1 = __importDefault(require("../validity-state/ValidityState.cjs"));
220
- const XMLHttpRequest_js_1 = __importDefault(require("../xml-http-request/XMLHttpRequest.cjs"));
221
- const XMLHttpRequestEventTarget_js_1 = __importDefault(require("../xml-http-request/XMLHttpRequestEventTarget.cjs"));
222
- const XMLHttpRequestUpload_js_1 = __importDefault(require("../xml-http-request/XMLHttpRequestUpload.cjs"));
223
- const XMLSerializer_js_1 = __importDefault(require("../xml-serializer/XMLSerializer.cjs"));
224
181
  const VMGlobalPropertyScript_js_1 = __importDefault(require("./VMGlobalPropertyScript.cjs"));
225
- const WindowBrowserSettingsReader_js_1 = __importDefault(require("./WindowBrowserSettingsReader.cjs"));
226
182
  const WindowErrorUtility_js_1 = __importDefault(require("./WindowErrorUtility.cjs"));
227
183
  const WindowPageOpenUtility_js_1 = __importDefault(require("./WindowPageOpenUtility.cjs"));
184
+ const node_perf_hooks_1 = require("node:perf_hooks");
185
+ const EventPhaseEnum_js_1 = __importDefault(require("../event/EventPhaseEnum.cjs"));
186
+ const HTMLOptionsCollection_js_1 = __importDefault(require("../nodes/html-select-element/HTMLOptionsCollection.cjs"));
187
+ const WindowClassExtender_js_1 = __importDefault(require("./WindowClassExtender.cjs"));
188
+ const WindowBrowserContext_js_1 = __importDefault(require("./WindowBrowserContext.cjs"));
228
189
  const TIMER = {
229
190
  setTimeout: globalThis.setTimeout.bind(globalThis),
230
191
  clearTimeout: globalThis.clearTimeout.bind(globalThis),
@@ -235,6 +196,17 @@ const TIMER = {
235
196
  clearImmediate: globalThis.clearImmediate.bind(globalThis)
236
197
  };
237
198
  const IS_NODE_JS_TIMEOUT_ENVIRONMENT = setTimeout.toString().includes('new Timeout');
199
+ /**
200
+ * Class for PerformanceObserverEntryList as it is only available as an interface from Node.js.
201
+ */
202
+ class PerformanceObserverEntryList {
203
+ /**
204
+ * Constructor.
205
+ */
206
+ constructor() {
207
+ throw new TypeError('Illegal constructor');
208
+ }
209
+ }
238
210
  /**
239
211
  * Zero Timeout.
240
212
  */
@@ -266,15 +238,6 @@ class BrowserWindow extends EventTarget_js_1.default {
266
238
  Element = Element_js_1.default;
267
239
  CharacterData = CharacterData_js_1.default;
268
240
  DocumentType = DocumentType_js_1.default;
269
- Document;
270
- HTMLDocument;
271
- XMLDocument;
272
- SVGDocument;
273
- Text;
274
- Comment;
275
- Image;
276
- DocumentFragment;
277
- Audio;
278
241
  // Element classes
279
242
  HTMLAnchorElement = HTMLAnchorElement_js_1.default;
280
243
  HTMLButtonElement = HTMLButtonElement_js_1.default;
@@ -296,10 +259,10 @@ class BrowserWindow extends EventTarget_js_1.default {
296
259
  HTMLVideoElement = HTMLVideoElement_js_1.default;
297
260
  HTMLBaseElement = HTMLBaseElement_js_1.default;
298
261
  HTMLDialogElement = HTMLDialogElement_js_1.default;
299
- HTMLScriptElement;
300
- HTMLLinkElement;
301
- HTMLIFrameElement;
302
- HTMLFormElement;
262
+ HTMLScriptElement = HTMLScriptElement_js_1.default;
263
+ HTMLLinkElement = HTMLLinkElement_js_1.default;
264
+ HTMLIFrameElement = HTMLIFrameElement_js_1.default;
265
+ HTMLFormElement = HTMLFormElement_js_1.default;
303
266
  HTMLUListElement = HTMLUListElement_js_1.default;
304
267
  HTMLTrackElement = HTMLTrackElement_js_1.default;
305
268
  HTMLTableRowElement = HTMLTableRowElement_js_1.default;
@@ -402,39 +365,17 @@ class BrowserWindow extends EventTarget_js_1.default {
402
365
  UserProximityEvent = Event_js_1.default;
403
366
  WebGLContextEvent = Event_js_1.default;
404
367
  TextEvent = Event_js_1.default;
405
- // Other classes
406
- NamedNodeMap = NamedNodeMap_js_1.default;
407
- NodeFilter = NodeFilter_js_1.default;
408
- NodeIterator = NodeIterator_js_1.default;
409
- TreeWalker = TreeWalker_js_1.default;
410
- MutationObserver = MutationObserver_js_1.default;
368
+ // Other classes that don't have to be bound to the Window context
369
+ Permissions = Permissions_js_1.default;
370
+ History = History_js_1.default;
371
+ Navigator = Navigator_js_1.default;
372
+ Clipboard = Clipboard_js_1.default;
373
+ TimeRanges = TimeRanges_js_1.default;
374
+ TextTrackCueList = TextTrackCueList_js_1.default;
375
+ ValidityState = ValidityState_js_1.default;
376
+ MutationRecord = MutationRecord_js_1.default;
411
377
  IntersectionObserver = IntersectionObserver_js_1.default;
412
378
  IntersectionObserverEntry = IntersectionObserverEntry_js_1.default;
413
- MutationRecord = MutationRecord_js_1.default;
414
- CSSStyleDeclaration = CSSStyleDeclaration_js_1.default;
415
- EventTarget = EventTarget_js_1.default;
416
- MessagePort = MessagePort_js_1.default;
417
- DataTransfer = DataTransfer_js_1.default;
418
- DataTransferItem = DataTransferItem_js_1.default;
419
- DataTransferItemList = DataTransferItemList_js_1.default;
420
- URL = URL_js_1.default;
421
- Location = Location_js_1.default;
422
- CustomElementRegistry = CustomElementRegistry_js_1.default;
423
- Window = this.constructor;
424
- XMLSerializer = XMLSerializer_js_1.default;
425
- ResizeObserver = ResizeObserver_js_1.default;
426
- CSSStyleSheet = CSSStyleSheet_js_1.default;
427
- Blob = Blob_js_1.default;
428
- File = File_js_1.default;
429
- DOMException = DOMException_js_1.default;
430
- History = History_js_1.default;
431
- Screen = Screen_js_1.default;
432
- Storage = Storage_js_1.default;
433
- URLSearchParams = url_1.URLSearchParams;
434
- HTMLCollection = HTMLCollection_js_1.default;
435
- HTMLFormControlsCollection = HTMLFormControlsCollection_js_1.default;
436
- NodeList = NodeList_js_1.default;
437
- CSSUnitValue = CSSUnitValue_js_1.default;
438
379
  CSSRule = CSSRule_js_1.default;
439
380
  CSSContainerRule = CSSContainerRule_js_1.default;
440
381
  CSSFontFaceRule = CSSFontFaceRule_js_1.default;
@@ -443,51 +384,42 @@ class BrowserWindow extends EventTarget_js_1.default {
443
384
  CSSMediaRule = CSSMediaRule_js_1.default;
444
385
  CSSStyleRule = CSSStyleRule_js_1.default;
445
386
  CSSSupportsRule = CSSSupportsRule_js_1.default;
446
- Selection = Selection_js_1.default;
447
- Navigator = Navigator_js_1.default;
448
- MimeType = MimeType_js_1.default;
449
- MimeTypeArray = MimeTypeArray_js_1.default;
450
- Plugin = Plugin_js_1.default;
451
- PluginArray = PluginArray_js_1.default;
452
- FileList = FileList_js_1.default;
453
387
  DOMRect = DOMRect_js_1.default;
454
388
  DOMRectReadOnly = DOMRectReadOnly_js_1.default;
389
+ Plugin = Plugin_js_1.default;
390
+ PluginArray = PluginArray_js_1.default;
391
+ Location = Location_js_1.default;
392
+ CustomElementRegistry = CustomElementRegistry_js_1.default;
393
+ ResizeObserver = ResizeObserver_js_1.default;
394
+ URL = URL_js_1.default;
395
+ Blob = Blob_js_1.default;
396
+ File = File_js_1.default;
397
+ Storage = Storage_js_1.default;
398
+ MimeType = MimeType_js_1.default;
399
+ MimeTypeArray = MimeTypeArray_js_1.default;
400
+ NodeFilter = NodeFilter_js_1.default;
401
+ HTMLCollection = HTMLCollection_js_1.default;
402
+ HTMLFormControlCollection = HTMLFormControlsCollection_js_1.default;
403
+ HTMLOptionsCollection = HTMLOptionsCollection_js_1.default;
404
+ NodeList = NodeList_js_1.default;
455
405
  RadioNodeList = RadioNodeList_js_1.default;
456
- ValidityState = ValidityState_js_1.default;
457
- Headers = Headers_js_1.default;
458
- Request;
459
- Response;
460
- XMLHttpRequestUpload = XMLHttpRequestUpload_js_1.default;
461
- XMLHttpRequestEventTarget = XMLHttpRequestEventTarget_js_1.default;
462
- ReadableStream = web_1.ReadableStream;
406
+ FileList = FileList_js_1.default;
407
+ Screen = Screen_js_1.default;
408
+ Window = this.constructor;
409
+ // Node.js Classes
410
+ URLSearchParams = url_1.URLSearchParams;
463
411
  WritableStream = stream_1.default.Writable;
412
+ ReadableStream = web_1.ReadableStream;
464
413
  TransformStream = stream_1.default.Transform;
465
- AbortController = AbortController_js_1.default;
466
- AbortSignal = AbortSignal_js_1.default;
467
- FormData = FormData_js_1.default;
468
- Permissions = Permissions_js_1.default;
469
- PermissionStatus = PermissionStatus_js_1.default;
470
- Clipboard = Clipboard_js_1.default;
471
- ClipboardItem = ClipboardItem_js_1.default;
472
- XMLHttpRequest;
473
- DOMParser;
474
- Range;
475
- VTTCue;
476
- TextTrack = TextTrack_js_1.default;
477
- TextTrackCue = TextTrackCue_js_1.default;
478
- TextTrackCueList = TextTrackCueList_js_1.default;
479
- FileReader;
480
- TimeRanges = TimeRanges_js_1.default;
481
- RemotePlayback = RemotePlayback_js_1.default;
482
- MediaStream = MediaStream_js_1.default;
483
- MediaStreamTrack = MediaStreamTrack_js_1.default;
484
- TextTrackList = TextTrackList_js_1.default;
414
+ PerformanceObserver = node_perf_hooks_1.PerformanceObserver;
415
+ PerformanceEntry = node_perf_hooks_1.PerformanceEntry;
416
+ PerformanceObserverEntryList = PerformanceObserverEntryList;
485
417
  // Events
486
418
  onload = null;
487
419
  onerror = null;
488
420
  // Public properties.
489
421
  document;
490
- customElements;
422
+ customElements = new CustomElementRegistry_js_1.default(this);
491
423
  window = this;
492
424
  globalThis = this;
493
425
  performance = performance;
@@ -503,10 +435,8 @@ class BrowserWindow extends EventTarget_js_1.default {
503
435
  // Public internal properties
504
436
  // Used for tracking capture event listeners to improve performance when they are not used.
505
437
  // See EventTarget class.
506
- [PropertySymbol.captureEventListenerCount] = {};
507
438
  [PropertySymbol.mutationObservers] = [];
508
439
  [PropertySymbol.readyStateManager] = new DocumentReadyStateManager_js_1.default(this);
509
- [PropertySymbol.asyncTaskManager] = null;
510
440
  [PropertySymbol.location];
511
441
  [PropertySymbol.history];
512
442
  [PropertySymbol.navigator];
@@ -516,6 +446,8 @@ class BrowserWindow extends EventTarget_js_1.default {
516
446
  [PropertySymbol.self] = this;
517
447
  [PropertySymbol.top] = this;
518
448
  [PropertySymbol.parent] = this;
449
+ [PropertySymbol.window] = this;
450
+ [PropertySymbol.internalId] = -1;
519
451
  // Private properties
520
452
  #browserFrame;
521
453
  #innerWidth = null;
@@ -524,6 +456,7 @@ class BrowserWindow extends EventTarget_js_1.default {
524
456
  #outerHeight = null;
525
457
  #devicePixelRatio = null;
526
458
  #zeroDelayTimeout = { timeouts: null };
459
+ #timerLoopStacks = [];
527
460
  /**
528
461
  * Constructor.
529
462
  *
@@ -533,144 +466,33 @@ class BrowserWindow extends EventTarget_js_1.default {
533
466
  */
534
467
  constructor(browserFrame, options) {
535
468
  super();
536
- const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
537
469
  this.#browserFrame = browserFrame;
538
- this.customElements = new CustomElementRegistry_js_1.default(this);
470
+ this.console = browserFrame.page.console;
539
471
  this[PropertySymbol.navigator] = new Navigator_js_1.default(this);
540
472
  this[PropertySymbol.screen] = new Screen_js_1.default();
541
473
  this[PropertySymbol.sessionStorage] = new Storage_js_1.default();
542
474
  this[PropertySymbol.localStorage] = new Storage_js_1.default();
543
475
  this[PropertySymbol.location] = new Location_js_1.default(this.#browserFrame, options?.url ?? 'about:blank');
544
476
  this[PropertySymbol.history] = new History_js_1.default(this.#browserFrame, this);
545
- this[PropertySymbol.asyncTaskManager] = asyncTaskManager;
546
- this.console = browserFrame.page.console;
547
- WindowBrowserSettingsReader_js_1.default.setSettings(this, this.#browserFrame.page.context.browser.settings);
548
- const window = this;
477
+ WindowBrowserContext_js_1.default.setWindowBrowserFrameRelation(this, this.#browserFrame);
549
478
  this[PropertySymbol.setupVMContext]();
550
- // Class overrides
551
- // For classes that need to be bound to the correct context to be instantiable using the "new" keyword.
552
- /* eslint-disable jsdoc/require-jsdoc */
553
- class Request extends Request_js_1.default {
554
- constructor(input, init) {
555
- super({ window, asyncTaskManager }, input, init);
556
- }
557
- }
558
- class Response extends Response_js_1.default {
559
- static [PropertySymbol.window] = window;
560
- constructor(body, init) {
561
- super({ window, browserFrame }, body, init);
562
- }
563
- }
564
- class XMLHttpRequest extends XMLHttpRequest_js_1.default {
565
- constructor() {
566
- super({ window, browserFrame });
567
- }
568
- }
569
- class FileReader extends FileReader_js_1.default {
570
- constructor() {
571
- super(window);
572
- }
573
- }
574
- class DOMParser extends DOMParser_js_1.default {
575
- constructor() {
576
- super(window);
577
- }
578
- }
579
- class Range extends Range_js_1.default {
580
- constructor() {
581
- super(window);
582
- }
583
- }
584
- class VTTCue extends VTTCue_js_1.default {
585
- constructor(startTime, endTime, text) {
586
- super(window, startTime, endTime, text);
587
- }
588
- }
589
- class HTMLScriptElement extends HTMLScriptElement_js_1.default {
590
- constructor() {
591
- super(browserFrame);
592
- }
593
- }
594
- class HTMLLinkElement extends HTMLLinkElement_js_1.default {
595
- constructor() {
596
- super(browserFrame);
597
- }
598
- }
599
- class HTMLIFrameElement extends HTMLIFrameElement_js_1.default {
600
- constructor() {
601
- super(browserFrame);
602
- }
603
- }
604
- class HTMLFormElement extends HTMLFormElement_js_1.default {
605
- constructor() {
606
- super(browserFrame);
607
- }
608
- }
609
- class Document extends Document_js_1.default {
610
- constructor() {
611
- super({ window, browserFrame });
612
- }
613
- }
614
- class HTMLDocument extends HTMLDocument_js_1.default {
615
- constructor() {
616
- super({ window, browserFrame });
617
- }
618
- }
619
- class XMLDocument extends XMLDocument_js_1.default {
620
- constructor() {
621
- super({ window, browserFrame });
622
- }
623
- }
624
- class SVGDocument extends SVGDocument_js_1.default {
625
- constructor() {
626
- super({ window, browserFrame });
627
- }
628
- }
629
- class Audio extends Audio_js_1.default {
630
- }
631
- class Image extends Image_js_1.default {
632
- }
633
- class DocumentFragment extends DocumentFragment_js_1.default {
634
- }
635
- class Text extends Text_js_1.default {
636
- }
637
- class Comment extends Comment_js_1.default {
638
- }
639
- /* eslint-enable jsdoc/require-jsdoc */
640
- this.Response = Response;
641
- this.Request = Request;
642
- this.Image = Image;
643
- this.Text = Text;
644
- this.Comment = Comment;
645
- this.DocumentFragment = DocumentFragment;
646
- this.FileReader = FileReader;
647
- this.DOMParser = DOMParser;
648
- this.VTTCue = VTTCue;
649
- this.XMLHttpRequest = XMLHttpRequest;
650
- this.Range = Range;
651
- this.Audio = Audio;
652
- this.HTMLScriptElement = HTMLScriptElement;
653
- this.HTMLLinkElement = HTMLLinkElement;
654
- this.HTMLIFrameElement = HTMLIFrameElement;
655
- this.HTMLFormElement = HTMLFormElement;
656
- this.Document = Document;
657
- this.HTMLDocument = HTMLDocument;
658
- this.XMLDocument = XMLDocument;
659
- this.SVGDocument = SVGDocument;
479
+ WindowClassExtender_js_1.default.extendClass(this);
660
480
  // Document
661
- this.document = new HTMLDocument();
481
+ this.document = new this.HTMLDocument();
662
482
  this.document[PropertySymbol.defaultView] = this;
663
- // Override owner document
664
- this.Audio[PropertySymbol.ownerDocument] = this.document;
665
- this.Image[PropertySymbol.ownerDocument] = this.document;
666
- this.DocumentFragment[PropertySymbol.ownerDocument] = this.document;
667
- this.Text[PropertySymbol.ownerDocument] = this.document;
668
- this.Comment[PropertySymbol.ownerDocument] = this.document;
669
483
  // Ready state manager
670
484
  this[PropertySymbol.readyStateManager].waitUntilComplete().then(() => {
671
485
  this.document[PropertySymbol.readyState] = DocumentReadyStateEnum_js_1.default.complete;
672
486
  this.document.dispatchEvent(new Event_js_1.default('readystatechange'));
673
- this.document.dispatchEvent(new Event_js_1.default('load', { bubbles: true }));
487
+ // Not sure why target is set to document here, but this is how it works in the browser
488
+ const loadEvent = new Event_js_1.default('load');
489
+ loadEvent[PropertySymbol.currentTarget] = this.document;
490
+ loadEvent[PropertySymbol.target] = this.document;
491
+ loadEvent[PropertySymbol.eventPhase] = EventPhaseEnum_js_1.default.atTarget;
492
+ this.dispatchEvent(loadEvent);
493
+ loadEvent[PropertySymbol.target] = null;
494
+ loadEvent[PropertySymbol.currentTarget] = null;
495
+ loadEvent[PropertySymbol.eventPhase] = EventPhaseEnum_js_1.default.none;
674
496
  });
675
497
  ClassMethodBinder_js_1.default.bindMethods(this, [EventTarget_js_1.default, BrowserWindow]);
676
498
  }
@@ -1009,7 +831,7 @@ class BrowserWindow extends EventTarget_js_1.default {
1009
831
  * @returns A new MediaQueryList.
1010
832
  */
1011
833
  matchMedia(mediaQueryString) {
1012
- return new MediaQueryList_js_1.default({ ownerWindow: this, media: mediaQueryString });
834
+ return new MediaQueryList_js_1.default({ window: this, media: mediaQueryString });
1013
835
  }
1014
836
  /**
1015
837
  * Sets a timer which executes a function once the timer expires.
@@ -1020,17 +842,30 @@ class BrowserWindow extends EventTarget_js_1.default {
1020
842
  * @returns Timeout ID.
1021
843
  */
1022
844
  setTimeout(callback, delay = 0, ...args) {
845
+ if (this.closed) {
846
+ return;
847
+ }
848
+ const settings = this.#browserFrame.page?.context?.browser?.settings;
849
+ if (settings.timer.preventTimerLoops) {
850
+ const stack = new Error().stack;
851
+ const timerLoopStacks = this.#timerLoopStacks;
852
+ if (timerLoopStacks.includes(stack)) {
853
+ return;
854
+ }
855
+ timerLoopStacks.push(stack);
856
+ }
1023
857
  // We can group timeouts with a delay of 0 into one timeout to improve performance.
1024
858
  // Grouping timeouts will also improve the performance of the async task manager.
1025
859
  // It also makes the async task manager more stable as many timeouts may cause waitUntilComplete() to be resolved too early.
1026
860
  if (!delay) {
1027
861
  const zeroDelayTimeout = this.#zeroDelayTimeout;
1028
862
  if (!zeroDelayTimeout.timeouts) {
1029
- const settings = this.#browserFrame.page?.context?.browser?.settings;
1030
863
  const useTryCatch = !settings ||
1031
864
  (!settings.disableErrorCapturing &&
1032
865
  settings.errorCapture === BrowserErrorCaptureEnum_js_1.default.tryAndCatch);
1033
866
  const id = TIMER.setTimeout(() => {
867
+ // We need to call endTimer() before the callback as the callback might throw an error.
868
+ this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
1034
869
  const timeouts = zeroDelayTimeout.timeouts;
1035
870
  zeroDelayTimeout.timeouts = null;
1036
871
  for (const timeout of timeouts) {
@@ -1041,7 +876,6 @@ class BrowserWindow extends EventTarget_js_1.default {
1041
876
  timeout.callback();
1042
877
  }
1043
878
  }
1044
- this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
1045
879
  });
1046
880
  zeroDelayTimeout.timeouts = [];
1047
881
  this.#browserFrame[PropertySymbol.asyncTaskManager].startTimer(id);
@@ -1050,18 +884,18 @@ class BrowserWindow extends EventTarget_js_1.default {
1050
884
  zeroDelayTimeout.timeouts.push(timeout);
1051
885
  return timeout;
1052
886
  }
1053
- const settings = this.#browserFrame.page?.context?.browser?.settings;
1054
887
  const useTryCatch = !settings ||
1055
888
  (!settings.disableErrorCapturing &&
1056
889
  settings.errorCapture === BrowserErrorCaptureEnum_js_1.default.tryAndCatch);
1057
890
  const id = TIMER.setTimeout(() => {
891
+ // We need to call endTimer() before the callback as the callback might throw an error.
892
+ this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
1058
893
  if (useTryCatch) {
1059
894
  WindowErrorUtility_js_1.default.captureError(this, () => callback(...args));
1060
895
  }
1061
896
  else {
1062
897
  callback(...args);
1063
898
  }
1064
- this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
1065
899
  }, settings?.timer.maxTimeout !== -1 && delay && delay > settings?.timer.maxTimeout
1066
900
  ? settings?.timer.maxTimeout
1067
901
  : delay);
@@ -1102,6 +936,9 @@ class BrowserWindow extends EventTarget_js_1.default {
1102
936
  * @returns Interval ID.
1103
937
  */
1104
938
  setInterval(callback, delay = 0, ...args) {
939
+ if (this.closed) {
940
+ return;
941
+ }
1105
942
  const settings = this.#browserFrame.page?.context?.browser?.settings;
1106
943
  const useTryCatch = !settings ||
1107
944
  (!settings.disableErrorCapturing &&
@@ -1147,18 +984,30 @@ class BrowserWindow extends EventTarget_js_1.default {
1147
984
  * @returns ID.
1148
985
  */
1149
986
  requestAnimationFrame(callback) {
987
+ if (this.closed) {
988
+ return;
989
+ }
1150
990
  const settings = this.#browserFrame.page?.context?.browser?.settings;
991
+ if (settings.timer.preventTimerLoops) {
992
+ const stack = new Error().stack;
993
+ const timerLoopStacks = this.#timerLoopStacks;
994
+ if (timerLoopStacks.includes(stack)) {
995
+ return;
996
+ }
997
+ timerLoopStacks.push(stack);
998
+ }
1151
999
  const useTryCatch = !settings ||
1152
1000
  (!settings.disableErrorCapturing &&
1153
1001
  settings.errorCapture === BrowserErrorCaptureEnum_js_1.default.tryAndCatch);
1154
1002
  const id = TIMER.setImmediate(() => {
1003
+ // We need to call endImmediate() before the callback as the callback might throw an error.
1004
+ this.#browserFrame[PropertySymbol.asyncTaskManager].endImmediate(id);
1155
1005
  if (useTryCatch) {
1156
1006
  WindowErrorUtility_js_1.default.captureError(this, () => callback(this.performance.now()));
1157
1007
  }
1158
1008
  else {
1159
1009
  callback(this.performance.now());
1160
1010
  }
1161
- this.#browserFrame[PropertySymbol.asyncTaskManager].endImmediate(id);
1162
1011
  });
1163
1012
  this.#browserFrame[PropertySymbol.asyncTaskManager].startImmediate(id);
1164
1013
  return id;
@@ -1183,6 +1032,9 @@ class BrowserWindow extends EventTarget_js_1.default {
1183
1032
  * @param callback Function to be executed.
1184
1033
  */
1185
1034
  queueMicrotask(callback) {
1035
+ if (this.closed) {
1036
+ return;
1037
+ }
1186
1038
  let isAborted = false;
1187
1039
  const taskId = this.#browserFrame[PropertySymbol.asyncTaskManager].startTask(() => (isAborted = true));
1188
1040
  const settings = this.#browserFrame.page?.context?.browser?.settings;
@@ -1191,13 +1043,14 @@ class BrowserWindow extends EventTarget_js_1.default {
1191
1043
  settings.errorCapture === BrowserErrorCaptureEnum_js_1.default.tryAndCatch);
1192
1044
  TIMER.queueMicrotask(() => {
1193
1045
  if (!isAborted) {
1046
+ // We need to call endTask() before the callback as the callback might throw an error.
1047
+ this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskId);
1194
1048
  if (useTryCatch) {
1195
1049
  WindowErrorUtility_js_1.default.captureError(this, callback);
1196
1050
  }
1197
1051
  else {
1198
1052
  callback();
1199
1053
  }
1200
- this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskId);
1201
1054
  }
1202
1055
  });
1203
1056
  }
@@ -1209,6 +1062,9 @@ class BrowserWindow extends EventTarget_js_1.default {
1209
1062
  * @returns Promise.
1210
1063
  */
1211
1064
  async fetch(url, init) {
1065
+ if (this.closed) {
1066
+ return Promise.reject(new this.DOMException("Failed to execute 'fetch' on 'Window': The window is closed.", DOMExceptionNameEnum_js_1.default.invalidStateError));
1067
+ }
1212
1068
  return await new Fetch_js_1.default({
1213
1069
  browserFrame: this.#browserFrame,
1214
1070
  window: this,
@@ -1247,14 +1103,17 @@ class BrowserWindow extends EventTarget_js_1.default {
1247
1103
  */
1248
1104
  postMessage(message, targetOrigin = '*', _transfer) {
1249
1105
  // TODO: Implement transfer.
1106
+ if (this.closed) {
1107
+ return;
1108
+ }
1250
1109
  if (targetOrigin && targetOrigin !== '*' && this.location.origin !== targetOrigin) {
1251
- throw new DOMException_js_1.default(`Failed to execute 'postMessage' on 'Window': The target origin provided ('${targetOrigin}') does not match the recipient window\'s origin ('${this.location.origin}').`, DOMExceptionNameEnum_js_1.default.securityError);
1110
+ throw new this.DOMException(`Failed to execute 'postMessage' on 'Window': The target origin provided ('${targetOrigin}') does not match the recipient window\'s origin ('${this.location.origin}').`, DOMExceptionNameEnum_js_1.default.securityError);
1252
1111
  }
1253
1112
  try {
1254
1113
  JSON.stringify(message);
1255
1114
  }
1256
1115
  catch (error) {
1257
- throw new DOMException_js_1.default(`Failed to execute 'postMessage' on 'Window': The provided message cannot be serialized.`, DOMExceptionNameEnum_js_1.default.invalidStateError);
1116
+ throw new this.DOMException(`Failed to execute 'postMessage' on 'Window': The provided message cannot be serialized.`, DOMExceptionNameEnum_js_1.default.invalidStateError);
1258
1117
  }
1259
1118
  this.setTimeout(() => this.dispatchEvent(new MessageEvent_js_1.default('message', {
1260
1119
  data: message,
@@ -1274,8 +1133,11 @@ class BrowserWindow extends EventTarget_js_1.default {
1274
1133
  * @param height Height.
1275
1134
  */
1276
1135
  resizeTo(width, height) {
1136
+ if (this.closed) {
1137
+ return;
1138
+ }
1277
1139
  if (!width || !height) {
1278
- throw new DOMException_js_1.default(`Failed to execute 'resizeTo' on 'Window': 2 arguments required, but only ${arguments.length} present.`);
1140
+ throw new this.DOMException(`Failed to execute 'resizeTo' on 'Window': 2 arguments required, but only ${arguments.length} present.`);
1279
1141
  }
1280
1142
  // We can only resize the window if it is a popup.
1281
1143
  if (this.#browserFrame[PropertySymbol.popup]) {
@@ -1289,8 +1151,11 @@ class BrowserWindow extends EventTarget_js_1.default {
1289
1151
  * @param height Height.
1290
1152
  */
1291
1153
  resizeBy(width, height) {
1154
+ if (this.closed) {
1155
+ return;
1156
+ }
1292
1157
  if (!width || !height) {
1293
- throw new DOMException_js_1.default(`Failed to execute 'resizeBy' on 'Window': 2 arguments required, but only ${arguments.length} present.`);
1158
+ throw new this.DOMException(`Failed to execute 'resizeBy' on 'Window': 2 arguments required, but only ${arguments.length} present.`);
1294
1159
  }
1295
1160
  // We can only resize the window if it is a popup.
1296
1161
  if (this.#browserFrame[PropertySymbol.popup]) {
@@ -1327,11 +1192,6 @@ class BrowserWindow extends EventTarget_js_1.default {
1327
1192
  this[PropertySymbol.mutationObservers] = [];
1328
1193
  this[PropertySymbol.asyncTaskManager] = null;
1329
1194
  this[PropertySymbol.mutationObservers] = [];
1330
- this.Audio[PropertySymbol.ownerDocument] = null;
1331
- this.Image[PropertySymbol.ownerDocument] = null;
1332
- this.DocumentFragment[PropertySymbol.ownerDocument] = null;
1333
- this.Text[PropertySymbol.ownerDocument] = null;
1334
- this.Comment[PropertySymbol.ownerDocument] = null;
1335
1195
  // Disconnects nodes from the document, so that they can be garbage collected.
1336
1196
  const childNodes = this.document[PropertySymbol.nodeArray];
1337
1197
  while (childNodes.length > 0) {
@@ -1341,6 +1201,16 @@ class BrowserWindow extends EventTarget_js_1.default {
1341
1201
  }
1342
1202
  this.document.removeChild(childNodes[0]);
1343
1203
  }
1204
+ // Create some empty elements for scripts that are still running.
1205
+ const htmlElement = this.document.createElement('html');
1206
+ const headElement = this.document.createElement('head');
1207
+ const bodyElement = this.document.createElement('body');
1208
+ htmlElement.appendChild(headElement);
1209
+ htmlElement.appendChild(bodyElement);
1210
+ this.document.appendChild(htmlElement);
1211
+ if (this.location[PropertySymbol.destroy]) {
1212
+ this.location[PropertySymbol.destroy]();
1213
+ }
1344
1214
  if (this.customElements[PropertySymbol.destroy]) {
1345
1215
  this.customElements[PropertySymbol.destroy]();
1346
1216
  }
@@ -1351,7 +1221,7 @@ class BrowserWindow extends EventTarget_js_1.default {
1351
1221
  this.document[PropertySymbol.nextActiveElement] = null;
1352
1222
  this.document[PropertySymbol.currentScript] = null;
1353
1223
  this.document[PropertySymbol.selection] = null;
1354
- WindowBrowserSettingsReader_js_1.default.removeSettings(this);
1224
+ WindowBrowserContext_js_1.default.removeWindowBrowserFrameRelation(this);
1355
1225
  }
1356
1226
  }
1357
1227
  exports.default = BrowserWindow;