@depup/jsdom 28.1.0-depup.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/LICENSE.txt +22 -0
  2. package/README.md +38 -0
  3. package/changes.json +38 -0
  4. package/lib/api.js +373 -0
  5. package/lib/generated/event-sets.js +115 -0
  6. package/lib/generated/idl/AbortController.js +143 -0
  7. package/lib/generated/idl/AbortSignal.js +249 -0
  8. package/lib/generated/idl/AbstractRange.js +171 -0
  9. package/lib/generated/idl/AddEventListenerOptions.js +53 -0
  10. package/lib/generated/idl/AssignedNodesOptions.js +28 -0
  11. package/lib/generated/idl/Attr.js +219 -0
  12. package/lib/generated/idl/BarProp.js +117 -0
  13. package/lib/generated/idl/BeforeUnloadEvent.js +139 -0
  14. package/lib/generated/idl/BinaryType.js +12 -0
  15. package/lib/generated/idl/Blob.js +253 -0
  16. package/lib/generated/idl/BlobCallback.js +30 -0
  17. package/lib/generated/idl/BlobEvent.js +157 -0
  18. package/lib/generated/idl/BlobEventInit.js +43 -0
  19. package/lib/generated/idl/BlobPropertyBag.js +42 -0
  20. package/lib/generated/idl/CDATASection.js +109 -0
  21. package/lib/generated/idl/CanPlayTypeResult.js +12 -0
  22. package/lib/generated/idl/CharacterData.js +455 -0
  23. package/lib/generated/idl/CloseEvent.js +168 -0
  24. package/lib/generated/idl/CloseEventInit.js +65 -0
  25. package/lib/generated/idl/Comment.js +120 -0
  26. package/lib/generated/idl/CompositionEvent.js +219 -0
  27. package/lib/generated/idl/CompositionEventInit.js +32 -0
  28. package/lib/generated/idl/Crypto.js +148 -0
  29. package/lib/generated/idl/CustomElementConstructor.js +34 -0
  30. package/lib/generated/idl/CustomElementRegistry.js +269 -0
  31. package/lib/generated/idl/CustomEvent.js +206 -0
  32. package/lib/generated/idl/CustomEventInit.js +32 -0
  33. package/lib/generated/idl/DOMException.js +222 -0
  34. package/lib/generated/idl/DOMImplementation.js +237 -0
  35. package/lib/generated/idl/DOMParser.js +140 -0
  36. package/lib/generated/idl/DOMRect.js +276 -0
  37. package/lib/generated/idl/DOMRectInit.js +76 -0
  38. package/lib/generated/idl/DOMRectReadOnly.js +285 -0
  39. package/lib/generated/idl/DOMStringMap.js +299 -0
  40. package/lib/generated/idl/DOMTokenList.js +539 -0
  41. package/lib/generated/idl/DeviceMotionEvent.js +183 -0
  42. package/lib/generated/idl/DeviceMotionEventAcceleration.js +145 -0
  43. package/lib/generated/idl/DeviceMotionEventAccelerationInit.js +61 -0
  44. package/lib/generated/idl/DeviceMotionEventInit.js +70 -0
  45. package/lib/generated/idl/DeviceMotionEventRotationRate.js +145 -0
  46. package/lib/generated/idl/DeviceMotionEventRotationRateInit.js +61 -0
  47. package/lib/generated/idl/DeviceOrientationEvent.js +183 -0
  48. package/lib/generated/idl/DeviceOrientationEventInit.js +80 -0
  49. package/lib/generated/idl/Document.js +4511 -0
  50. package/lib/generated/idl/DocumentFragment.js +336 -0
  51. package/lib/generated/idl/DocumentReadyState.js +12 -0
  52. package/lib/generated/idl/DocumentType.js +254 -0
  53. package/lib/generated/idl/Element.js +3720 -0
  54. package/lib/generated/idl/ElementCreationOptions.js +26 -0
  55. package/lib/generated/idl/ElementDefinitionOptions.js +29 -0
  56. package/lib/generated/idl/ElementInternals.js +2152 -0
  57. package/lib/generated/idl/EndingType.js +12 -0
  58. package/lib/generated/idl/ErrorEvent.js +192 -0
  59. package/lib/generated/idl/ErrorEventInit.js +92 -0
  60. package/lib/generated/idl/Event.js +430 -0
  61. package/lib/generated/idl/EventHandlerNonNull.js +36 -0
  62. package/lib/generated/idl/EventInit.js +58 -0
  63. package/lib/generated/idl/EventListener.js +35 -0
  64. package/lib/generated/idl/EventListenerOptions.js +28 -0
  65. package/lib/generated/idl/EventModifierInit.js +221 -0
  66. package/lib/generated/idl/EventTarget.js +259 -0
  67. package/lib/generated/idl/External.js +130 -0
  68. package/lib/generated/idl/File.js +185 -0
  69. package/lib/generated/idl/FileList.js +298 -0
  70. package/lib/generated/idl/FilePropertyBag.js +33 -0
  71. package/lib/generated/idl/FileReader.js +468 -0
  72. package/lib/generated/idl/FocusEvent.js +144 -0
  73. package/lib/generated/idl/FocusEventInit.js +36 -0
  74. package/lib/generated/idl/FormData.js +468 -0
  75. package/lib/generated/idl/Function.js +42 -0
  76. package/lib/generated/idl/GetRootNodeOptions.js +31 -0
  77. package/lib/generated/idl/HTMLAnchorElement.js +1026 -0
  78. package/lib/generated/idl/HTMLAreaElement.js +825 -0
  79. package/lib/generated/idl/HTMLAudioElement.js +111 -0
  80. package/lib/generated/idl/HTMLBRElement.js +156 -0
  81. package/lib/generated/idl/HTMLBaseElement.js +196 -0
  82. package/lib/generated/idl/HTMLBodyElement.js +880 -0
  83. package/lib/generated/idl/HTMLButtonElement.js +525 -0
  84. package/lib/generated/idl/HTMLCanvasElement.js +307 -0
  85. package/lib/generated/idl/HTMLCollection.js +352 -0
  86. package/lib/generated/idl/HTMLDListElement.js +159 -0
  87. package/lib/generated/idl/HTMLDataElement.js +156 -0
  88. package/lib/generated/idl/HTMLDataListElement.js +126 -0
  89. package/lib/generated/idl/HTMLDetailsElement.js +159 -0
  90. package/lib/generated/idl/HTMLDialogElement.js +159 -0
  91. package/lib/generated/idl/HTMLDirectoryElement.js +159 -0
  92. package/lib/generated/idl/HTMLDivElement.js +156 -0
  93. package/lib/generated/idl/HTMLElement.js +3492 -0
  94. package/lib/generated/idl/HTMLEmbedElement.js +381 -0
  95. package/lib/generated/idl/HTMLFieldSetElement.js +332 -0
  96. package/lib/generated/idl/HTMLFontElement.js +239 -0
  97. package/lib/generated/idl/HTMLFormControlsCollection.js +318 -0
  98. package/lib/generated/idl/HTMLFormElement.js +661 -0
  99. package/lib/generated/idl/HTMLFrameElement.js +513 -0
  100. package/lib/generated/idl/HTMLFrameSetElement.js +711 -0
  101. package/lib/generated/idl/HTMLHRElement.js +323 -0
  102. package/lib/generated/idl/HTMLHeadElement.js +111 -0
  103. package/lib/generated/idl/HTMLHeadingElement.js +156 -0
  104. package/lib/generated/idl/HTMLHtmlElement.js +156 -0
  105. package/lib/generated/idl/HTMLIFrameElement.js +689 -0
  106. package/lib/generated/idl/HTMLImageElement.js +906 -0
  107. package/lib/generated/idl/HTMLInputElement.js +1931 -0
  108. package/lib/generated/idl/HTMLLIElement.js +204 -0
  109. package/lib/generated/idl/HTMLLabelElement.js +182 -0
  110. package/lib/generated/idl/HTMLLegendElement.js +169 -0
  111. package/lib/generated/idl/HTMLLinkElement.js +555 -0
  112. package/lib/generated/idl/HTMLMapElement.js +171 -0
  113. package/lib/generated/idl/HTMLMarqueeElement.js +558 -0
  114. package/lib/generated/idl/HTMLMediaElement.js +900 -0
  115. package/lib/generated/idl/HTMLMenuElement.js +159 -0
  116. package/lib/generated/idl/HTMLMetaElement.js +279 -0
  117. package/lib/generated/idl/HTMLMeterElement.js +368 -0
  118. package/lib/generated/idl/HTMLModElement.js +217 -0
  119. package/lib/generated/idl/HTMLOListElement.js +284 -0
  120. package/lib/generated/idl/HTMLObjectElement.js +945 -0
  121. package/lib/generated/idl/HTMLOptGroupElement.js +200 -0
  122. package/lib/generated/idl/HTMLOptionElement.js +379 -0
  123. package/lib/generated/idl/HTMLOptionsCollection.js +513 -0
  124. package/lib/generated/idl/HTMLOutputElement.js +395 -0
  125. package/lib/generated/idl/HTMLParagraphElement.js +156 -0
  126. package/lib/generated/idl/HTMLParamElement.js +279 -0
  127. package/lib/generated/idl/HTMLPictureElement.js +111 -0
  128. package/lib/generated/idl/HTMLPreElement.js +163 -0
  129. package/lib/generated/idl/HTMLProgressElement.js +232 -0
  130. package/lib/generated/idl/HTMLQuoteElement.js +176 -0
  131. package/lib/generated/idl/HTMLScriptElement.js +472 -0
  132. package/lib/generated/idl/HTMLSelectElement.js +993 -0
  133. package/lib/generated/idl/HTMLSlotElement.js +195 -0
  134. package/lib/generated/idl/HTMLSourceElement.js +340 -0
  135. package/lib/generated/idl/HTMLSpanElement.js +111 -0
  136. package/lib/generated/idl/HTMLStyleElement.js +210 -0
  137. package/lib/generated/idl/HTMLTableCaptionElement.js +156 -0
  138. package/lib/generated/idl/HTMLTableCellElement.js +733 -0
  139. package/lib/generated/idl/HTMLTableColElement.js +376 -0
  140. package/lib/generated/idl/HTMLTableElement.js +802 -0
  141. package/lib/generated/idl/HTMLTableRowElement.js +417 -0
  142. package/lib/generated/idl/HTMLTableSectionElement.js +349 -0
  143. package/lib/generated/idl/HTMLTemplateElement.js +124 -0
  144. package/lib/generated/idl/HTMLTextAreaElement.js +1210 -0
  145. package/lib/generated/idl/HTMLTimeElement.js +156 -0
  146. package/lib/generated/idl/HTMLTitleElement.js +155 -0
  147. package/lib/generated/idl/HTMLTrackElement.js +366 -0
  148. package/lib/generated/idl/HTMLUListElement.js +200 -0
  149. package/lib/generated/idl/HTMLUnknownElement.js +109 -0
  150. package/lib/generated/idl/HTMLVideoElement.js +344 -0
  151. package/lib/generated/idl/HashChangeEvent.js +157 -0
  152. package/lib/generated/idl/HashChangeEventInit.js +50 -0
  153. package/lib/generated/idl/Headers.js +418 -0
  154. package/lib/generated/idl/History.js +266 -0
  155. package/lib/generated/idl/InputEvent.js +168 -0
  156. package/lib/generated/idl/InputEventInit.js +68 -0
  157. package/lib/generated/idl/KeyboardEvent.js +445 -0
  158. package/lib/generated/idl/KeyboardEventInit.js +116 -0
  159. package/lib/generated/idl/Location.js +404 -0
  160. package/lib/generated/idl/MessageEvent.js +317 -0
  161. package/lib/generated/idl/MessageEventInit.js +100 -0
  162. package/lib/generated/idl/MimeType.js +156 -0
  163. package/lib/generated/idl/MimeTypeArray.js +326 -0
  164. package/lib/generated/idl/MouseEvent.js +595 -0
  165. package/lib/generated/idl/MouseEventInit.js +189 -0
  166. package/lib/generated/idl/MutationCallback.js +34 -0
  167. package/lib/generated/idl/MutationObserver.js +178 -0
  168. package/lib/generated/idl/MutationObserverInit.js +121 -0
  169. package/lib/generated/idl/MutationRecord.js +229 -0
  170. package/lib/generated/idl/NamedNodeMap.js +529 -0
  171. package/lib/generated/idl/Navigator.js +326 -0
  172. package/lib/generated/idl/Node.js +765 -0
  173. package/lib/generated/idl/NodeFilter.js +75 -0
  174. package/lib/generated/idl/NodeIterator.js +207 -0
  175. package/lib/generated/idl/NodeList.js +302 -0
  176. package/lib/generated/idl/OnBeforeUnloadEventHandlerNonNull.js +42 -0
  177. package/lib/generated/idl/OnErrorEventHandlerNonNull.js +56 -0
  178. package/lib/generated/idl/PageTransitionEvent.js +144 -0
  179. package/lib/generated/idl/PageTransitionEventInit.js +35 -0
  180. package/lib/generated/idl/Performance.js +142 -0
  181. package/lib/generated/idl/Plugin.js +359 -0
  182. package/lib/generated/idl/PluginArray.js +336 -0
  183. package/lib/generated/idl/PointerEvent.js +324 -0
  184. package/lib/generated/idl/PointerEventInit.js +241 -0
  185. package/lib/generated/idl/PopStateEvent.js +144 -0
  186. package/lib/generated/idl/PopStateEventInit.js +32 -0
  187. package/lib/generated/idl/ProcessingInstruction.js +122 -0
  188. package/lib/generated/idl/ProgressEvent.js +170 -0
  189. package/lib/generated/idl/ProgressEventInit.js +65 -0
  190. package/lib/generated/idl/PromiseRejectionEvent.js +157 -0
  191. package/lib/generated/idl/PromiseRejectionEventInit.js +42 -0
  192. package/lib/generated/idl/RadioNodeList.js +296 -0
  193. package/lib/generated/idl/Range.js +643 -0
  194. package/lib/generated/idl/SVGAnimatedPreserveAspectRatio.js +136 -0
  195. package/lib/generated/idl/SVGAnimatedRect.js +136 -0
  196. package/lib/generated/idl/SVGAnimatedString.js +149 -0
  197. package/lib/generated/idl/SVGBoundingBoxOptions.js +64 -0
  198. package/lib/generated/idl/SVGDefsElement.js +109 -0
  199. package/lib/generated/idl/SVGDescElement.js +109 -0
  200. package/lib/generated/idl/SVGElement.js +3157 -0
  201. package/lib/generated/idl/SVGGElement.js +109 -0
  202. package/lib/generated/idl/SVGGraphicsElement.js +139 -0
  203. package/lib/generated/idl/SVGMetadataElement.js +109 -0
  204. package/lib/generated/idl/SVGNumber.js +132 -0
  205. package/lib/generated/idl/SVGPreserveAspectRatio.js +196 -0
  206. package/lib/generated/idl/SVGRect.js +210 -0
  207. package/lib/generated/idl/SVGSVGElement.js +786 -0
  208. package/lib/generated/idl/SVGStringList.js +511 -0
  209. package/lib/generated/idl/SVGSwitchElement.js +109 -0
  210. package/lib/generated/idl/SVGSymbolElement.js +146 -0
  211. package/lib/generated/idl/SVGTitleElement.js +109 -0
  212. package/lib/generated/idl/Screen.js +180 -0
  213. package/lib/generated/idl/ScrollBehavior.js +12 -0
  214. package/lib/generated/idl/ScrollIntoViewOptions.js +45 -0
  215. package/lib/generated/idl/ScrollLogicalPosition.js +14 -0
  216. package/lib/generated/idl/ScrollOptions.js +30 -0
  217. package/lib/generated/idl/ScrollRestoration.js +12 -0
  218. package/lib/generated/idl/Selection.js +571 -0
  219. package/lib/generated/idl/SelectionMode.js +12 -0
  220. package/lib/generated/idl/ShadowRoot.js +189 -0
  221. package/lib/generated/idl/ShadowRootInit.js +30 -0
  222. package/lib/generated/idl/ShadowRootMode.js +12 -0
  223. package/lib/generated/idl/StaticRange.js +123 -0
  224. package/lib/generated/idl/StaticRangeInit.js +72 -0
  225. package/lib/generated/idl/Storage.js +397 -0
  226. package/lib/generated/idl/StorageEvent.js +318 -0
  227. package/lib/generated/idl/StorageEventInit.js +99 -0
  228. package/lib/generated/idl/StyleSheetList.js +300 -0
  229. package/lib/generated/idl/SubmitEvent.js +144 -0
  230. package/lib/generated/idl/SubmitEventInit.js +36 -0
  231. package/lib/generated/idl/SupportedType.js +18 -0
  232. package/lib/generated/idl/Text.js +170 -0
  233. package/lib/generated/idl/TextDecodeOptions.js +28 -0
  234. package/lib/generated/idl/TextDecoder.js +211 -0
  235. package/lib/generated/idl/TextDecoderOptions.js +43 -0
  236. package/lib/generated/idl/TextEncoder.js +176 -0
  237. package/lib/generated/idl/TextEncoderEncodeIntoResult.js +42 -0
  238. package/lib/generated/idl/TextTrackKind.js +12 -0
  239. package/lib/generated/idl/TouchEvent.js +222 -0
  240. package/lib/generated/idl/TouchEventInit.js +89 -0
  241. package/lib/generated/idl/TransitionEvent.js +170 -0
  242. package/lib/generated/idl/TransitionEventInit.js +65 -0
  243. package/lib/generated/idl/TreeWalker.js +255 -0
  244. package/lib/generated/idl/UIEvent.js +235 -0
  245. package/lib/generated/idl/UIEventInit.js +62 -0
  246. package/lib/generated/idl/ValidityState.js +249 -0
  247. package/lib/generated/idl/VisibilityState.js +12 -0
  248. package/lib/generated/idl/VoidFunction.js +26 -0
  249. package/lib/generated/idl/WebSocket.js +480 -0
  250. package/lib/generated/idl/WheelEvent.js +191 -0
  251. package/lib/generated/idl/WheelEventInit.js +71 -0
  252. package/lib/generated/idl/XMLDocument.js +109 -0
  253. package/lib/generated/idl/XMLHttpRequest.js +663 -0
  254. package/lib/generated/idl/XMLHttpRequestEventTarget.js +334 -0
  255. package/lib/generated/idl/XMLHttpRequestResponseType.js +14 -0
  256. package/lib/generated/idl/XMLHttpRequestUpload.js +109 -0
  257. package/lib/generated/idl/XMLSerializer.js +132 -0
  258. package/lib/generated/idl/utils.js +252 -0
  259. package/lib/generated/js-globals.json +332 -0
  260. package/lib/jsdom/browser/Window.js +952 -0
  261. package/lib/jsdom/browser/default-stylesheet.css +415 -0
  262. package/lib/jsdom/browser/not-implemented.js +20 -0
  263. package/lib/jsdom/browser/parser/html.js +208 -0
  264. package/lib/jsdom/browser/parser/index.js +37 -0
  265. package/lib/jsdom/browser/parser/xml.js +202 -0
  266. package/lib/jsdom/browser/resources/async-resource-queue.js +114 -0
  267. package/lib/jsdom/browser/resources/decompress-interceptor.js +184 -0
  268. package/lib/jsdom/browser/resources/jsdom-dispatcher.js +756 -0
  269. package/lib/jsdom/browser/resources/per-document-resource-loader.js +116 -0
  270. package/lib/jsdom/browser/resources/request-interceptor.js +171 -0
  271. package/lib/jsdom/browser/resources/request-manager.js +33 -0
  272. package/lib/jsdom/browser/resources/resource-queue.js +142 -0
  273. package/lib/jsdom/browser/resources/stream-handler.js +89 -0
  274. package/lib/jsdom/level2/style.js +65 -0
  275. package/lib/jsdom/level3/xpath.js +1875 -0
  276. package/lib/jsdom/living/aborting/AbortController-impl.js +17 -0
  277. package/lib/jsdom/living/aborting/AbortSignal-impl.js +131 -0
  278. package/lib/jsdom/living/attributes/Attr-impl.js +60 -0
  279. package/lib/jsdom/living/attributes/NamedNodeMap-impl.js +78 -0
  280. package/lib/jsdom/living/attributes.js +312 -0
  281. package/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js +75 -0
  282. package/lib/jsdom/living/constraint-validation/ValidityState-impl.js +66 -0
  283. package/lib/jsdom/living/crypto/Crypto-impl.js +68 -0
  284. package/lib/jsdom/living/cssom/StyleSheetList-impl.js +38 -0
  285. package/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js +279 -0
  286. package/lib/jsdom/living/custom-elements/ElementInternals-impl.js +56 -0
  287. package/lib/jsdom/living/deviceorientation/DeviceMotionEventAcceleration-impl.js +7 -0
  288. package/lib/jsdom/living/deviceorientation/DeviceMotionEventRotationRate-impl.js +7 -0
  289. package/lib/jsdom/living/documents.js +15 -0
  290. package/lib/jsdom/living/domparsing/DOMParser-impl.js +59 -0
  291. package/lib/jsdom/living/domparsing/InnerHTML-impl.js +30 -0
  292. package/lib/jsdom/living/domparsing/XMLSerializer-impl.js +18 -0
  293. package/lib/jsdom/living/domparsing/parse5-adapter-serialization.js +63 -0
  294. package/lib/jsdom/living/domparsing/serialization.js +36 -0
  295. package/lib/jsdom/living/encoding/TextDecoder-impl.js +25 -0
  296. package/lib/jsdom/living/encoding/TextEncoder-impl.js +26 -0
  297. package/lib/jsdom/living/events/BeforeUnloadEvent-impl.js +12 -0
  298. package/lib/jsdom/living/events/BlobEvent-impl.js +14 -0
  299. package/lib/jsdom/living/events/CloseEvent-impl.js +10 -0
  300. package/lib/jsdom/living/events/CompositionEvent-impl.js +20 -0
  301. package/lib/jsdom/living/events/CustomEvent-impl.js +21 -0
  302. package/lib/jsdom/living/events/DeviceMotionEvent-impl.js +49 -0
  303. package/lib/jsdom/living/events/DeviceOrientationEvent-impl.js +10 -0
  304. package/lib/jsdom/living/events/ErrorEvent-impl.js +14 -0
  305. package/lib/jsdom/living/events/Event-impl.js +195 -0
  306. package/lib/jsdom/living/events/EventModifierMixin-impl.js +24 -0
  307. package/lib/jsdom/living/events/EventTarget-impl.js +438 -0
  308. package/lib/jsdom/living/events/FocusEvent-impl.js +9 -0
  309. package/lib/jsdom/living/events/HashChangeEvent-impl.js +14 -0
  310. package/lib/jsdom/living/events/InputEvent-impl.js +11 -0
  311. package/lib/jsdom/living/events/KeyboardEvent-impl.js +29 -0
  312. package/lib/jsdom/living/events/MessageEvent-impl.js +25 -0
  313. package/lib/jsdom/living/events/MouseEvent-impl.js +72 -0
  314. package/lib/jsdom/living/events/PageTransitionEvent-impl.js +20 -0
  315. package/lib/jsdom/living/events/PointerEvent-impl.js +21 -0
  316. package/lib/jsdom/living/events/PopStateEvent-impl.js +9 -0
  317. package/lib/jsdom/living/events/ProgressEvent-impl.js +14 -0
  318. package/lib/jsdom/living/events/PromiseRejectionEvent-impl.js +14 -0
  319. package/lib/jsdom/living/events/StorageEvent-impl.js +26 -0
  320. package/lib/jsdom/living/events/SubmitEvent-impl.js +13 -0
  321. package/lib/jsdom/living/events/TouchEvent-impl.js +14 -0
  322. package/lib/jsdom/living/events/TransitionEvent-impl.js +10 -0
  323. package/lib/jsdom/living/events/UIEvent-impl.js +43 -0
  324. package/lib/jsdom/living/events/WheelEvent-impl.js +12 -0
  325. package/lib/jsdom/living/fetch/Headers-impl.js +173 -0
  326. package/lib/jsdom/living/fetch/header-list.js +158 -0
  327. package/lib/jsdom/living/fetch/header-types.js +205 -0
  328. package/lib/jsdom/living/fetch/header-utils.js +26 -0
  329. package/lib/jsdom/living/file-api/Blob-impl.js +125 -0
  330. package/lib/jsdom/living/file-api/File-impl.js +12 -0
  331. package/lib/jsdom/living/file-api/FileList-impl.js +15 -0
  332. package/lib/jsdom/living/file-api/FileReader-impl.js +148 -0
  333. package/lib/jsdom/living/geometry/DOMRect-impl.js +39 -0
  334. package/lib/jsdom/living/geometry/DOMRectReadOnly-impl.js +72 -0
  335. package/lib/jsdom/living/helpers/binary-data.js +63 -0
  336. package/lib/jsdom/living/helpers/by-id-cache.js +67 -0
  337. package/lib/jsdom/living/helpers/colors.js +245 -0
  338. package/lib/jsdom/living/helpers/create-element.js +329 -0
  339. package/lib/jsdom/living/helpers/create-event-accessor.js +209 -0
  340. package/lib/jsdom/living/helpers/custom-elements.js +272 -0
  341. package/lib/jsdom/living/helpers/dates-and-times.js +270 -0
  342. package/lib/jsdom/living/helpers/details.js +15 -0
  343. package/lib/jsdom/living/helpers/encoding.js +60 -0
  344. package/lib/jsdom/living/helpers/events.js +24 -0
  345. package/lib/jsdom/living/helpers/focusing.js +104 -0
  346. package/lib/jsdom/living/helpers/form-controls.js +309 -0
  347. package/lib/jsdom/living/helpers/html-constructor.js +78 -0
  348. package/lib/jsdom/living/helpers/internal-constants.js +12 -0
  349. package/lib/jsdom/living/helpers/is-window.js +18 -0
  350. package/lib/jsdom/living/helpers/iterable-weak-set.js +48 -0
  351. package/lib/jsdom/living/helpers/json.js +7 -0
  352. package/lib/jsdom/living/helpers/mutation-observers.js +198 -0
  353. package/lib/jsdom/living/helpers/namespaces.js +16 -0
  354. package/lib/jsdom/living/helpers/node.js +108 -0
  355. package/lib/jsdom/living/helpers/number-and-date-inputs.js +195 -0
  356. package/lib/jsdom/living/helpers/ordered-set.js +104 -0
  357. package/lib/jsdom/living/helpers/page-transition-event.js +9 -0
  358. package/lib/jsdom/living/helpers/runtime-script-errors.js +75 -0
  359. package/lib/jsdom/living/helpers/shadow-dom.js +285 -0
  360. package/lib/jsdom/living/helpers/strings.js +168 -0
  361. package/lib/jsdom/living/helpers/style-rules.js +404 -0
  362. package/lib/jsdom/living/helpers/stylesheets.js +148 -0
  363. package/lib/jsdom/living/helpers/svg/basic-types.js +41 -0
  364. package/lib/jsdom/living/helpers/svg/render.js +46 -0
  365. package/lib/jsdom/living/helpers/system-colors.js +147 -0
  366. package/lib/jsdom/living/helpers/text.js +19 -0
  367. package/lib/jsdom/living/helpers/traversal.js +72 -0
  368. package/lib/jsdom/living/helpers/validate-names.js +65 -0
  369. package/lib/jsdom/living/hr-time/Performance-impl.js +22 -0
  370. package/lib/jsdom/living/interfaces.js +252 -0
  371. package/lib/jsdom/living/mutation-observer/MutationObserver-impl.js +95 -0
  372. package/lib/jsdom/living/mutation-observer/MutationRecord-impl.js +37 -0
  373. package/lib/jsdom/living/navigator/MimeType-impl.js +3 -0
  374. package/lib/jsdom/living/navigator/MimeTypeArray-impl.js +21 -0
  375. package/lib/jsdom/living/navigator/Navigator-impl.js +29 -0
  376. package/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js +8 -0
  377. package/lib/jsdom/living/navigator/NavigatorCookies-impl.js +7 -0
  378. package/lib/jsdom/living/navigator/NavigatorID-impl.js +37 -0
  379. package/lib/jsdom/living/navigator/NavigatorLanguage-impl.js +9 -0
  380. package/lib/jsdom/living/navigator/NavigatorOnLine-impl.js +7 -0
  381. package/lib/jsdom/living/navigator/NavigatorPlugins-impl.js +8 -0
  382. package/lib/jsdom/living/navigator/Plugin-impl.js +3 -0
  383. package/lib/jsdom/living/navigator/PluginArray-impl.js +23 -0
  384. package/lib/jsdom/living/node-document-position.js +10 -0
  385. package/lib/jsdom/living/node-type.js +16 -0
  386. package/lib/jsdom/living/node.js +331 -0
  387. package/lib/jsdom/living/nodes/CDATASection-impl.js +16 -0
  388. package/lib/jsdom/living/nodes/CharacterData-impl.js +118 -0
  389. package/lib/jsdom/living/nodes/ChildNode-impl.js +80 -0
  390. package/lib/jsdom/living/nodes/Comment-impl.js +20 -0
  391. package/lib/jsdom/living/nodes/DOMImplementation-impl.js +120 -0
  392. package/lib/jsdom/living/nodes/DOMStringMap-impl.js +64 -0
  393. package/lib/jsdom/living/nodes/DOMTokenList-impl.js +171 -0
  394. package/lib/jsdom/living/nodes/Document-impl.js +1000 -0
  395. package/lib/jsdom/living/nodes/DocumentFragment-impl.js +44 -0
  396. package/lib/jsdom/living/nodes/DocumentOrShadowRoot-impl.js +28 -0
  397. package/lib/jsdom/living/nodes/DocumentType-impl.js +24 -0
  398. package/lib/jsdom/living/nodes/Element-impl.js +584 -0
  399. package/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js +22 -0
  400. package/lib/jsdom/living/nodes/ElementContentEditable-impl.js +7 -0
  401. package/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js +81 -0
  402. package/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js +50 -0
  403. package/lib/jsdom/living/nodes/HTMLAreaElement-impl.js +43 -0
  404. package/lib/jsdom/living/nodes/HTMLAudioElement-impl.js +9 -0
  405. package/lib/jsdom/living/nodes/HTMLBRElement-impl.js +9 -0
  406. package/lib/jsdom/living/nodes/HTMLBaseElement-impl.js +44 -0
  407. package/lib/jsdom/living/nodes/HTMLBodyElement-impl.js +12 -0
  408. package/lib/jsdom/living/nodes/HTMLButtonElement-impl.js +79 -0
  409. package/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js +136 -0
  410. package/lib/jsdom/living/nodes/HTMLCollection-impl.js +96 -0
  411. package/lib/jsdom/living/nodes/HTMLDListElement-impl.js +9 -0
  412. package/lib/jsdom/living/nodes/HTMLDataElement-impl.js +9 -0
  413. package/lib/jsdom/living/nodes/HTMLDataListElement-impl.js +20 -0
  414. package/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js +35 -0
  415. package/lib/jsdom/living/nodes/HTMLDialogElement-impl.js +9 -0
  416. package/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js +9 -0
  417. package/lib/jsdom/living/nodes/HTMLDivElement-impl.js +9 -0
  418. package/lib/jsdom/living/nodes/HTMLElement-impl.js +211 -0
  419. package/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js +8 -0
  420. package/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js +43 -0
  421. package/lib/jsdom/living/nodes/HTMLFontElement-impl.js +9 -0
  422. package/lib/jsdom/living/nodes/HTMLFormControlsCollection-impl.js +33 -0
  423. package/lib/jsdom/living/nodes/HTMLFormElement-impl.js +248 -0
  424. package/lib/jsdom/living/nodes/HTMLFrameElement-impl.js +266 -0
  425. package/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js +12 -0
  426. package/lib/jsdom/living/nodes/HTMLHRElement-impl.js +9 -0
  427. package/lib/jsdom/living/nodes/HTMLHeadElement-impl.js +9 -0
  428. package/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js +9 -0
  429. package/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js +9 -0
  430. package/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js +368 -0
  431. package/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js +9 -0
  432. package/lib/jsdom/living/nodes/HTMLImageElement-impl.js +127 -0
  433. package/lib/jsdom/living/nodes/HTMLInputElement-impl.js +1097 -0
  434. package/lib/jsdom/living/nodes/HTMLLIElement-impl.js +9 -0
  435. package/lib/jsdom/living/nodes/HTMLLabelElement-impl.js +94 -0
  436. package/lib/jsdom/living/nodes/HTMLLegendElement-impl.js +18 -0
  437. package/lib/jsdom/living/nodes/HTMLLinkElement-impl.js +107 -0
  438. package/lib/jsdom/living/nodes/HTMLMapElement-impl.js +13 -0
  439. package/lib/jsdom/living/nodes/HTMLMarqueeElement-impl.js +9 -0
  440. package/lib/jsdom/living/nodes/HTMLMediaElement-impl.js +138 -0
  441. package/lib/jsdom/living/nodes/HTMLMenuElement-impl.js +9 -0
  442. package/lib/jsdom/living/nodes/HTMLMetaElement-impl.js +9 -0
  443. package/lib/jsdom/living/nodes/HTMLMeterElement-impl.js +180 -0
  444. package/lib/jsdom/living/nodes/HTMLModElement-impl.js +9 -0
  445. package/lib/jsdom/living/nodes/HTMLOListElement-impl.js +22 -0
  446. package/lib/jsdom/living/nodes/HTMLObjectElement-impl.js +26 -0
  447. package/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js +9 -0
  448. package/lib/jsdom/living/nodes/HTMLOptionElement-impl.js +146 -0
  449. package/lib/jsdom/living/nodes/HTMLOptionsCollection-impl.js +110 -0
  450. package/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js +88 -0
  451. package/lib/jsdom/living/nodes/HTMLOutputElement-impl.js +88 -0
  452. package/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js +9 -0
  453. package/lib/jsdom/living/nodes/HTMLParamElement-impl.js +9 -0
  454. package/lib/jsdom/living/nodes/HTMLPictureElement-impl.js +9 -0
  455. package/lib/jsdom/living/nodes/HTMLPreElement-impl.js +9 -0
  456. package/lib/jsdom/living/nodes/HTMLProgressElement-impl.js +72 -0
  457. package/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js +9 -0
  458. package/lib/jsdom/living/nodes/HTMLScriptElement-impl.js +255 -0
  459. package/lib/jsdom/living/nodes/HTMLSelectElement-impl.js +283 -0
  460. package/lib/jsdom/living/nodes/HTMLSlotElement-impl.js +59 -0
  461. package/lib/jsdom/living/nodes/HTMLSourceElement-impl.js +8 -0
  462. package/lib/jsdom/living/nodes/HTMLSpanElement-impl.js +9 -0
  463. package/lib/jsdom/living/nodes/HTMLStyleElement-impl.js +76 -0
  464. package/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js +9 -0
  465. package/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js +73 -0
  466. package/lib/jsdom/living/nodes/HTMLTableColElement-impl.js +9 -0
  467. package/lib/jsdom/living/nodes/HTMLTableElement-impl.js +236 -0
  468. package/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js +88 -0
  469. package/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js +61 -0
  470. package/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js +67 -0
  471. package/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js +244 -0
  472. package/lib/jsdom/living/nodes/HTMLTimeElement-impl.js +9 -0
  473. package/lib/jsdom/living/nodes/HTMLTitleElement-impl.js +18 -0
  474. package/lib/jsdom/living/nodes/HTMLTrackElement-impl.js +13 -0
  475. package/lib/jsdom/living/nodes/HTMLUListElement-impl.js +9 -0
  476. package/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js +9 -0
  477. package/lib/jsdom/living/nodes/HTMLVideoElement-impl.js +17 -0
  478. package/lib/jsdom/living/nodes/LinkStyle-impl.js +2 -0
  479. package/lib/jsdom/living/nodes/Node-impl.js +1179 -0
  480. package/lib/jsdom/living/nodes/NodeList-impl.js +43 -0
  481. package/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js +28 -0
  482. package/lib/jsdom/living/nodes/NonElementParentNode-impl.js +11 -0
  483. package/lib/jsdom/living/nodes/ParentNode-impl.js +90 -0
  484. package/lib/jsdom/living/nodes/ProcessingInstruction-impl.js +22 -0
  485. package/lib/jsdom/living/nodes/RadioNodeList-impl.js +49 -0
  486. package/lib/jsdom/living/nodes/SVGDefsElement-impl.js +9 -0
  487. package/lib/jsdom/living/nodes/SVGDescElement-impl.js +9 -0
  488. package/lib/jsdom/living/nodes/SVGElement-impl.js +64 -0
  489. package/lib/jsdom/living/nodes/SVGGElement-impl.js +9 -0
  490. package/lib/jsdom/living/nodes/SVGGraphicsElement-impl.js +16 -0
  491. package/lib/jsdom/living/nodes/SVGMetadataElement-impl.js +9 -0
  492. package/lib/jsdom/living/nodes/SVGSVGElement-impl.js +40 -0
  493. package/lib/jsdom/living/nodes/SVGSwitchElement-impl.js +9 -0
  494. package/lib/jsdom/living/nodes/SVGSymbolElement-impl.js +9 -0
  495. package/lib/jsdom/living/nodes/SVGTests-impl.js +42 -0
  496. package/lib/jsdom/living/nodes/SVGTitleElement-impl.js +9 -0
  497. package/lib/jsdom/living/nodes/ShadowRoot-impl.js +41 -0
  498. package/lib/jsdom/living/nodes/Slotable-impl.js +48 -0
  499. package/lib/jsdom/living/nodes/Text-impl.js +96 -0
  500. package/lib/jsdom/living/nodes/WindowEventHandlers-impl.js +14 -0
  501. package/lib/jsdom/living/nodes/XMLDocument-impl.js +4 -0
  502. package/lib/jsdom/living/range/AbstractRange-impl.js +43 -0
  503. package/lib/jsdom/living/range/Range-impl.js +902 -0
  504. package/lib/jsdom/living/range/StaticRange-impl.js +39 -0
  505. package/lib/jsdom/living/range/boundary-point.js +47 -0
  506. package/lib/jsdom/living/selection/Selection-impl.js +358 -0
  507. package/lib/jsdom/living/svg/SVGAnimatedPreserveAspectRatio-impl.js +24 -0
  508. package/lib/jsdom/living/svg/SVGAnimatedRect-impl.js +122 -0
  509. package/lib/jsdom/living/svg/SVGAnimatedString-impl.js +42 -0
  510. package/lib/jsdom/living/svg/SVGListBase.js +195 -0
  511. package/lib/jsdom/living/svg/SVGNumber-impl.js +48 -0
  512. package/lib/jsdom/living/svg/SVGPreserveAspectRatio-impl.js +100 -0
  513. package/lib/jsdom/living/svg/SVGRect-impl.js +143 -0
  514. package/lib/jsdom/living/svg/SVGStringList-impl.js +16 -0
  515. package/lib/jsdom/living/traversal/NodeIterator-impl.js +107 -0
  516. package/lib/jsdom/living/traversal/TreeWalker-impl.js +217 -0
  517. package/lib/jsdom/living/traversal/helpers.js +44 -0
  518. package/lib/jsdom/living/webidl/DOMException-impl.js +46 -0
  519. package/lib/jsdom/living/websockets/WebSocket-impl.js +211 -0
  520. package/lib/jsdom/living/webstorage/Storage-impl.js +102 -0
  521. package/lib/jsdom/living/window/BarProp-impl.js +10 -0
  522. package/lib/jsdom/living/window/External-impl.js +9 -0
  523. package/lib/jsdom/living/window/History-impl.js +148 -0
  524. package/lib/jsdom/living/window/Location-impl.js +227 -0
  525. package/lib/jsdom/living/window/Screen-impl.js +13 -0
  526. package/lib/jsdom/living/window/SessionHistory.js +163 -0
  527. package/lib/jsdom/living/window/navigation.js +87 -0
  528. package/lib/jsdom/living/window-properties.js +241 -0
  529. package/lib/jsdom/living/xhr/FormData-impl.js +191 -0
  530. package/lib/jsdom/living/xhr/XMLHttpRequest-impl.js +1057 -0
  531. package/lib/jsdom/living/xhr/XMLHttpRequestEventTarget-impl.js +17 -0
  532. package/lib/jsdom/living/xhr/XMLHttpRequestUpload-impl.js +4 -0
  533. package/lib/jsdom/living/xhr/multipart-form-data.js +99 -0
  534. package/lib/jsdom/living/xhr/xhr-sync-worker.js +51 -0
  535. package/lib/jsdom/living/xhr/xhr-utils.js +206 -0
  536. package/lib/jsdom/utils.js +105 -0
  537. package/lib/jsdom/virtual-console.js +46 -0
  538. package/package.json +143 -0
@@ -0,0 +1,993 @@
1
+ "use strict";
2
+
3
+ const conversions = require("webidl-conversions");
4
+ const utils = require("./utils.js");
5
+
6
+ const HTMLConstructor_jsdom_living_helpers_html_constructor =
7
+ require("../../jsdom/living/helpers/html-constructor.js").HTMLConstructor;
8
+ const HTMLOptionElement = require("./HTMLOptionElement.js");
9
+ const HTMLOptGroupElement = require("./HTMLOptGroupElement.js");
10
+ const HTMLElement = require("./HTMLElement.js");
11
+ const ceReactionsPreSteps_jsdom_living_helpers_custom_elements =
12
+ require("../../jsdom/living/helpers/custom-elements.js").ceReactionsPreSteps;
13
+ const ceReactionsPostSteps_jsdom_living_helpers_custom_elements =
14
+ require("../../jsdom/living/helpers/custom-elements.js").ceReactionsPostSteps;
15
+ const parseNonNegativeInteger_jsdom_living_helpers_strings =
16
+ require("../../jsdom/living/helpers/strings.js").parseNonNegativeInteger;
17
+ const implSymbol = utils.implSymbol;
18
+ const ctorRegistrySymbol = utils.ctorRegistrySymbol;
19
+
20
+ const interfaceName = "HTMLSelectElement";
21
+
22
+ exports.is = value => {
23
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
24
+ };
25
+ exports.isImpl = value => {
26
+ return utils.isObject(value) && value instanceof Impl.implementation;
27
+ };
28
+ exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
29
+ if (exports.is(value)) {
30
+ return utils.implForWrapper(value);
31
+ }
32
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLSelectElement'.`);
33
+ };
34
+
35
+ function makeWrapper(globalObject, newTarget) {
36
+ let proto;
37
+ if (newTarget !== undefined) {
38
+ proto = newTarget.prototype;
39
+ }
40
+
41
+ if (!utils.isObject(proto)) {
42
+ proto = globalObject[ctorRegistrySymbol]["HTMLSelectElement"].prototype;
43
+ }
44
+
45
+ return Object.create(proto);
46
+ }
47
+
48
+ function makeProxy(wrapper, globalObject) {
49
+ let proxyHandler = proxyHandlerCache.get(globalObject);
50
+ if (proxyHandler === undefined) {
51
+ proxyHandler = new ProxyHandler(globalObject);
52
+ proxyHandlerCache.set(globalObject, proxyHandler);
53
+ }
54
+ return new Proxy(wrapper, proxyHandler);
55
+ }
56
+
57
+ exports.create = (globalObject, constructorArgs, privateData) => {
58
+ const wrapper = makeWrapper(globalObject);
59
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
60
+ };
61
+
62
+ exports.createImpl = (globalObject, constructorArgs, privateData) => {
63
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
64
+ return utils.implForWrapper(wrapper);
65
+ };
66
+
67
+ exports._internalSetup = (wrapper, globalObject) => {
68
+ HTMLElement._internalSetup(wrapper, globalObject);
69
+ };
70
+
71
+ exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
72
+ privateData.wrapper = wrapper;
73
+
74
+ exports._internalSetup(wrapper, globalObject);
75
+ Object.defineProperty(wrapper, implSymbol, {
76
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
77
+ configurable: true
78
+ });
79
+
80
+ wrapper = makeProxy(wrapper, globalObject);
81
+
82
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
83
+ if (Impl.init) {
84
+ Impl.init(wrapper[implSymbol]);
85
+ }
86
+ return wrapper;
87
+ };
88
+
89
+ exports.new = (globalObject, newTarget) => {
90
+ let wrapper = makeWrapper(globalObject, newTarget);
91
+
92
+ exports._internalSetup(wrapper, globalObject);
93
+ Object.defineProperty(wrapper, implSymbol, {
94
+ value: Object.create(Impl.implementation.prototype),
95
+ configurable: true
96
+ });
97
+
98
+ wrapper = makeProxy(wrapper, globalObject);
99
+
100
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
101
+ if (Impl.init) {
102
+ Impl.init(wrapper[implSymbol]);
103
+ }
104
+ return wrapper[implSymbol];
105
+ };
106
+
107
+ const exposed = new Set(["Window"]);
108
+
109
+ exports.install = (globalObject, globalNames) => {
110
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
111
+ return;
112
+ }
113
+
114
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
115
+ class HTMLSelectElement extends globalObject.HTMLElement {
116
+ constructor() {
117
+ return HTMLConstructor_jsdom_living_helpers_html_constructor(globalObject, interfaceName, new.target);
118
+ }
119
+
120
+ item(index) {
121
+ const esValue = this !== null && this !== undefined ? this : globalObject;
122
+ if (!exports.is(esValue)) {
123
+ throw new globalObject.TypeError(
124
+ "'item' called on an object that is not a valid instance of HTMLSelectElement."
125
+ );
126
+ }
127
+
128
+ if (arguments.length < 1) {
129
+ throw new globalObject.TypeError(
130
+ `Failed to execute 'item' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
131
+ );
132
+ }
133
+ const args = [];
134
+ {
135
+ let curArg = arguments[0];
136
+ curArg = conversions["unsigned long"](curArg, {
137
+ context: "Failed to execute 'item' on 'HTMLSelectElement': parameter 1",
138
+ globals: globalObject
139
+ });
140
+ args.push(curArg);
141
+ }
142
+ return utils.tryWrapperForImpl(esValue[implSymbol].item(...args));
143
+ }
144
+
145
+ namedItem(name) {
146
+ const esValue = this !== null && this !== undefined ? this : globalObject;
147
+ if (!exports.is(esValue)) {
148
+ throw new globalObject.TypeError(
149
+ "'namedItem' called on an object that is not a valid instance of HTMLSelectElement."
150
+ );
151
+ }
152
+
153
+ if (arguments.length < 1) {
154
+ throw new globalObject.TypeError(
155
+ `Failed to execute 'namedItem' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
156
+ );
157
+ }
158
+ const args = [];
159
+ {
160
+ let curArg = arguments[0];
161
+ curArg = conversions["DOMString"](curArg, {
162
+ context: "Failed to execute 'namedItem' on 'HTMLSelectElement': parameter 1",
163
+ globals: globalObject
164
+ });
165
+ args.push(curArg);
166
+ }
167
+ return utils.tryWrapperForImpl(esValue[implSymbol].namedItem(...args));
168
+ }
169
+
170
+ add(element) {
171
+ const esValue = this !== null && this !== undefined ? this : globalObject;
172
+ if (!exports.is(esValue)) {
173
+ throw new globalObject.TypeError(
174
+ "'add' called on an object that is not a valid instance of HTMLSelectElement."
175
+ );
176
+ }
177
+
178
+ if (arguments.length < 1) {
179
+ throw new globalObject.TypeError(
180
+ `Failed to execute 'add' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
181
+ );
182
+ }
183
+ const args = [];
184
+ {
185
+ let curArg = arguments[0];
186
+ if (HTMLOptionElement.is(curArg) || HTMLOptGroupElement.is(curArg)) {
187
+ curArg = utils.implForWrapper(curArg);
188
+ } else {
189
+ throw new globalObject.TypeError(
190
+ "Failed to execute 'add' on 'HTMLSelectElement': parameter 1" + " is not of any supported type."
191
+ );
192
+ }
193
+ args.push(curArg);
194
+ }
195
+ {
196
+ let curArg = arguments[1];
197
+ if (curArg !== undefined) {
198
+ if (curArg === null || curArg === undefined) {
199
+ curArg = null;
200
+ } else {
201
+ if (HTMLElement.is(curArg)) {
202
+ curArg = utils.implForWrapper(curArg);
203
+ } else if (typeof curArg === "number") {
204
+ curArg = conversions["long"](curArg, {
205
+ context: "Failed to execute 'add' on 'HTMLSelectElement': parameter 2",
206
+ globals: globalObject
207
+ });
208
+ } else {
209
+ curArg = conversions["long"](curArg, {
210
+ context: "Failed to execute 'add' on 'HTMLSelectElement': parameter 2",
211
+ globals: globalObject
212
+ });
213
+ }
214
+ }
215
+ } else {
216
+ curArg = null;
217
+ }
218
+ args.push(curArg);
219
+ }
220
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
221
+ try {
222
+ return esValue[implSymbol].add(...args);
223
+ } finally {
224
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
225
+ }
226
+ }
227
+
228
+ remove() {
229
+ const esValue = this !== null && this !== undefined ? this : globalObject;
230
+ if (!exports.is(esValue)) {
231
+ throw new globalObject.TypeError(
232
+ "'remove' called on an object that is not a valid instance of HTMLSelectElement."
233
+ );
234
+ }
235
+ const args = [];
236
+ switch (arguments.length) {
237
+ case 0:
238
+ break;
239
+ default: {
240
+ let curArg = arguments[0];
241
+ curArg = conversions["long"](curArg, {
242
+ context: "Failed to execute 'remove' on 'HTMLSelectElement': parameter 1",
243
+ globals: globalObject
244
+ });
245
+ args.push(curArg);
246
+ }
247
+ }
248
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
249
+ try {
250
+ return esValue[implSymbol].remove(...args);
251
+ } finally {
252
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
253
+ }
254
+ }
255
+
256
+ checkValidity() {
257
+ const esValue = this !== null && this !== undefined ? this : globalObject;
258
+ if (!exports.is(esValue)) {
259
+ throw new globalObject.TypeError(
260
+ "'checkValidity' called on an object that is not a valid instance of HTMLSelectElement."
261
+ );
262
+ }
263
+
264
+ return esValue[implSymbol].checkValidity();
265
+ }
266
+
267
+ reportValidity() {
268
+ const esValue = this !== null && this !== undefined ? this : globalObject;
269
+ if (!exports.is(esValue)) {
270
+ throw new globalObject.TypeError(
271
+ "'reportValidity' called on an object that is not a valid instance of HTMLSelectElement."
272
+ );
273
+ }
274
+
275
+ return esValue[implSymbol].reportValidity();
276
+ }
277
+
278
+ setCustomValidity(error) {
279
+ const esValue = this !== null && this !== undefined ? this : globalObject;
280
+ if (!exports.is(esValue)) {
281
+ throw new globalObject.TypeError(
282
+ "'setCustomValidity' called on an object that is not a valid instance of HTMLSelectElement."
283
+ );
284
+ }
285
+
286
+ if (arguments.length < 1) {
287
+ throw new globalObject.TypeError(
288
+ `Failed to execute 'setCustomValidity' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
289
+ );
290
+ }
291
+ const args = [];
292
+ {
293
+ let curArg = arguments[0];
294
+ curArg = conversions["DOMString"](curArg, {
295
+ context: "Failed to execute 'setCustomValidity' on 'HTMLSelectElement': parameter 1",
296
+ globals: globalObject
297
+ });
298
+ args.push(curArg);
299
+ }
300
+ return esValue[implSymbol].setCustomValidity(...args);
301
+ }
302
+
303
+ get autofocus() {
304
+ const esValue = this !== null && this !== undefined ? this : globalObject;
305
+
306
+ if (!exports.is(esValue)) {
307
+ throw new globalObject.TypeError(
308
+ "'get autofocus' called on an object that is not a valid instance of HTMLSelectElement."
309
+ );
310
+ }
311
+
312
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
313
+ try {
314
+ return esValue[implSymbol]._reflectGetTheContentAttribute("autofocus") !== null;
315
+ } finally {
316
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
317
+ }
318
+ }
319
+
320
+ set autofocus(V) {
321
+ const esValue = this !== null && this !== undefined ? this : globalObject;
322
+
323
+ if (!exports.is(esValue)) {
324
+ throw new globalObject.TypeError(
325
+ "'set autofocus' called on an object that is not a valid instance of HTMLSelectElement."
326
+ );
327
+ }
328
+
329
+ V = conversions["boolean"](V, {
330
+ context: "Failed to set the 'autofocus' property on 'HTMLSelectElement': The provided value",
331
+ globals: globalObject
332
+ });
333
+
334
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
335
+ try {
336
+ if (V) {
337
+ esValue[implSymbol]._reflectSetTheContentAttribute("autofocus", "");
338
+ } else {
339
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("autofocus");
340
+ }
341
+ } finally {
342
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
343
+ }
344
+ }
345
+
346
+ get disabled() {
347
+ const esValue = this !== null && this !== undefined ? this : globalObject;
348
+
349
+ if (!exports.is(esValue)) {
350
+ throw new globalObject.TypeError(
351
+ "'get disabled' called on an object that is not a valid instance of HTMLSelectElement."
352
+ );
353
+ }
354
+
355
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
356
+ try {
357
+ return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
358
+ } finally {
359
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
360
+ }
361
+ }
362
+
363
+ set disabled(V) {
364
+ const esValue = this !== null && this !== undefined ? this : globalObject;
365
+
366
+ if (!exports.is(esValue)) {
367
+ throw new globalObject.TypeError(
368
+ "'set disabled' called on an object that is not a valid instance of HTMLSelectElement."
369
+ );
370
+ }
371
+
372
+ V = conversions["boolean"](V, {
373
+ context: "Failed to set the 'disabled' property on 'HTMLSelectElement': The provided value",
374
+ globals: globalObject
375
+ });
376
+
377
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
378
+ try {
379
+ if (V) {
380
+ esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
381
+ } else {
382
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
383
+ }
384
+ } finally {
385
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
386
+ }
387
+ }
388
+
389
+ get form() {
390
+ const esValue = this !== null && this !== undefined ? this : globalObject;
391
+
392
+ if (!exports.is(esValue)) {
393
+ throw new globalObject.TypeError(
394
+ "'get form' called on an object that is not a valid instance of HTMLSelectElement."
395
+ );
396
+ }
397
+
398
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
399
+ }
400
+
401
+ get multiple() {
402
+ const esValue = this !== null && this !== undefined ? this : globalObject;
403
+
404
+ if (!exports.is(esValue)) {
405
+ throw new globalObject.TypeError(
406
+ "'get multiple' called on an object that is not a valid instance of HTMLSelectElement."
407
+ );
408
+ }
409
+
410
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
411
+ try {
412
+ return esValue[implSymbol]._reflectGetTheContentAttribute("multiple") !== null;
413
+ } finally {
414
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
415
+ }
416
+ }
417
+
418
+ set multiple(V) {
419
+ const esValue = this !== null && this !== undefined ? this : globalObject;
420
+
421
+ if (!exports.is(esValue)) {
422
+ throw new globalObject.TypeError(
423
+ "'set multiple' called on an object that is not a valid instance of HTMLSelectElement."
424
+ );
425
+ }
426
+
427
+ V = conversions["boolean"](V, {
428
+ context: "Failed to set the 'multiple' property on 'HTMLSelectElement': The provided value",
429
+ globals: globalObject
430
+ });
431
+
432
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
433
+ try {
434
+ if (V) {
435
+ esValue[implSymbol]._reflectSetTheContentAttribute("multiple", "");
436
+ } else {
437
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("multiple");
438
+ }
439
+ } finally {
440
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
441
+ }
442
+ }
443
+
444
+ get name() {
445
+ const esValue = this !== null && this !== undefined ? this : globalObject;
446
+
447
+ if (!exports.is(esValue)) {
448
+ throw new globalObject.TypeError(
449
+ "'get name' called on an object that is not a valid instance of HTMLSelectElement."
450
+ );
451
+ }
452
+
453
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
454
+ try {
455
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
456
+ return value === null ? "" : value;
457
+ } finally {
458
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
459
+ }
460
+ }
461
+
462
+ set name(V) {
463
+ const esValue = this !== null && this !== undefined ? this : globalObject;
464
+
465
+ if (!exports.is(esValue)) {
466
+ throw new globalObject.TypeError(
467
+ "'set name' called on an object that is not a valid instance of HTMLSelectElement."
468
+ );
469
+ }
470
+
471
+ V = conversions["DOMString"](V, {
472
+ context: "Failed to set the 'name' property on 'HTMLSelectElement': The provided value",
473
+ globals: globalObject
474
+ });
475
+
476
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
477
+ try {
478
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
479
+ } finally {
480
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
481
+ }
482
+ }
483
+
484
+ get required() {
485
+ const esValue = this !== null && this !== undefined ? this : globalObject;
486
+
487
+ if (!exports.is(esValue)) {
488
+ throw new globalObject.TypeError(
489
+ "'get required' called on an object that is not a valid instance of HTMLSelectElement."
490
+ );
491
+ }
492
+
493
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
494
+ try {
495
+ return esValue[implSymbol]._reflectGetTheContentAttribute("required") !== null;
496
+ } finally {
497
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
498
+ }
499
+ }
500
+
501
+ set required(V) {
502
+ const esValue = this !== null && this !== undefined ? this : globalObject;
503
+
504
+ if (!exports.is(esValue)) {
505
+ throw new globalObject.TypeError(
506
+ "'set required' called on an object that is not a valid instance of HTMLSelectElement."
507
+ );
508
+ }
509
+
510
+ V = conversions["boolean"](V, {
511
+ context: "Failed to set the 'required' property on 'HTMLSelectElement': The provided value",
512
+ globals: globalObject
513
+ });
514
+
515
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
516
+ try {
517
+ if (V) {
518
+ esValue[implSymbol]._reflectSetTheContentAttribute("required", "");
519
+ } else {
520
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("required");
521
+ }
522
+ } finally {
523
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
524
+ }
525
+ }
526
+
527
+ get size() {
528
+ const esValue = this !== null && this !== undefined ? this : globalObject;
529
+
530
+ if (!exports.is(esValue)) {
531
+ throw new globalObject.TypeError(
532
+ "'get size' called on an object that is not a valid instance of HTMLSelectElement."
533
+ );
534
+ }
535
+
536
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
537
+ try {
538
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("size");
539
+ if (value !== null) {
540
+ value = parseNonNegativeInteger_jsdom_living_helpers_strings(value);
541
+ if (value !== null && value >= 0 && value <= 2147483647) {
542
+ return value;
543
+ }
544
+ }
545
+ return 0;
546
+ } finally {
547
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
548
+ }
549
+ }
550
+
551
+ set size(V) {
552
+ const esValue = this !== null && this !== undefined ? this : globalObject;
553
+
554
+ if (!exports.is(esValue)) {
555
+ throw new globalObject.TypeError(
556
+ "'set size' called on an object that is not a valid instance of HTMLSelectElement."
557
+ );
558
+ }
559
+
560
+ V = conversions["unsigned long"](V, {
561
+ context: "Failed to set the 'size' property on 'HTMLSelectElement': The provided value",
562
+ globals: globalObject
563
+ });
564
+
565
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
566
+ try {
567
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
568
+ esValue[implSymbol]._reflectSetTheContentAttribute("size", String(newValue));
569
+ } finally {
570
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
571
+ }
572
+ }
573
+
574
+ get type() {
575
+ const esValue = this !== null && this !== undefined ? this : globalObject;
576
+
577
+ if (!exports.is(esValue)) {
578
+ throw new globalObject.TypeError(
579
+ "'get type' called on an object that is not a valid instance of HTMLSelectElement."
580
+ );
581
+ }
582
+
583
+ return esValue[implSymbol]["type"];
584
+ }
585
+
586
+ get options() {
587
+ const esValue = this !== null && this !== undefined ? this : globalObject;
588
+
589
+ if (!exports.is(esValue)) {
590
+ throw new globalObject.TypeError(
591
+ "'get options' called on an object that is not a valid instance of HTMLSelectElement."
592
+ );
593
+ }
594
+
595
+ return utils.getSameObject(this, "options", () => {
596
+ return utils.tryWrapperForImpl(esValue[implSymbol]["options"]);
597
+ });
598
+ }
599
+
600
+ get length() {
601
+ const esValue = this !== null && this !== undefined ? this : globalObject;
602
+
603
+ if (!exports.is(esValue)) {
604
+ throw new globalObject.TypeError(
605
+ "'get length' called on an object that is not a valid instance of HTMLSelectElement."
606
+ );
607
+ }
608
+
609
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
610
+ try {
611
+ return esValue[implSymbol]["length"];
612
+ } finally {
613
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
614
+ }
615
+ }
616
+
617
+ set length(V) {
618
+ const esValue = this !== null && this !== undefined ? this : globalObject;
619
+
620
+ if (!exports.is(esValue)) {
621
+ throw new globalObject.TypeError(
622
+ "'set length' called on an object that is not a valid instance of HTMLSelectElement."
623
+ );
624
+ }
625
+
626
+ V = conversions["unsigned long"](V, {
627
+ context: "Failed to set the 'length' property on 'HTMLSelectElement': The provided value",
628
+ globals: globalObject
629
+ });
630
+
631
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
632
+ try {
633
+ esValue[implSymbol]["length"] = V;
634
+ } finally {
635
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
636
+ }
637
+ }
638
+
639
+ get selectedOptions() {
640
+ const esValue = this !== null && this !== undefined ? this : globalObject;
641
+
642
+ if (!exports.is(esValue)) {
643
+ throw new globalObject.TypeError(
644
+ "'get selectedOptions' called on an object that is not a valid instance of HTMLSelectElement."
645
+ );
646
+ }
647
+
648
+ return utils.getSameObject(this, "selectedOptions", () => {
649
+ return utils.tryWrapperForImpl(esValue[implSymbol]["selectedOptions"]);
650
+ });
651
+ }
652
+
653
+ get selectedIndex() {
654
+ const esValue = this !== null && this !== undefined ? this : globalObject;
655
+
656
+ if (!exports.is(esValue)) {
657
+ throw new globalObject.TypeError(
658
+ "'get selectedIndex' called on an object that is not a valid instance of HTMLSelectElement."
659
+ );
660
+ }
661
+
662
+ return esValue[implSymbol]["selectedIndex"];
663
+ }
664
+
665
+ set selectedIndex(V) {
666
+ const esValue = this !== null && this !== undefined ? this : globalObject;
667
+
668
+ if (!exports.is(esValue)) {
669
+ throw new globalObject.TypeError(
670
+ "'set selectedIndex' called on an object that is not a valid instance of HTMLSelectElement."
671
+ );
672
+ }
673
+
674
+ V = conversions["long"](V, {
675
+ context: "Failed to set the 'selectedIndex' property on 'HTMLSelectElement': The provided value",
676
+ globals: globalObject
677
+ });
678
+
679
+ esValue[implSymbol]["selectedIndex"] = V;
680
+ }
681
+
682
+ get value() {
683
+ const esValue = this !== null && this !== undefined ? this : globalObject;
684
+
685
+ if (!exports.is(esValue)) {
686
+ throw new globalObject.TypeError(
687
+ "'get value' called on an object that is not a valid instance of HTMLSelectElement."
688
+ );
689
+ }
690
+
691
+ return esValue[implSymbol]["value"];
692
+ }
693
+
694
+ set value(V) {
695
+ const esValue = this !== null && this !== undefined ? this : globalObject;
696
+
697
+ if (!exports.is(esValue)) {
698
+ throw new globalObject.TypeError(
699
+ "'set value' called on an object that is not a valid instance of HTMLSelectElement."
700
+ );
701
+ }
702
+
703
+ V = conversions["DOMString"](V, {
704
+ context: "Failed to set the 'value' property on 'HTMLSelectElement': The provided value",
705
+ globals: globalObject
706
+ });
707
+
708
+ esValue[implSymbol]["value"] = V;
709
+ }
710
+
711
+ get willValidate() {
712
+ const esValue = this !== null && this !== undefined ? this : globalObject;
713
+
714
+ if (!exports.is(esValue)) {
715
+ throw new globalObject.TypeError(
716
+ "'get willValidate' called on an object that is not a valid instance of HTMLSelectElement."
717
+ );
718
+ }
719
+
720
+ return esValue[implSymbol]["willValidate"];
721
+ }
722
+
723
+ get validity() {
724
+ const esValue = this !== null && this !== undefined ? this : globalObject;
725
+
726
+ if (!exports.is(esValue)) {
727
+ throw new globalObject.TypeError(
728
+ "'get validity' called on an object that is not a valid instance of HTMLSelectElement."
729
+ );
730
+ }
731
+
732
+ return utils.tryWrapperForImpl(esValue[implSymbol]["validity"]);
733
+ }
734
+
735
+ get validationMessage() {
736
+ const esValue = this !== null && this !== undefined ? this : globalObject;
737
+
738
+ if (!exports.is(esValue)) {
739
+ throw new globalObject.TypeError(
740
+ "'get validationMessage' called on an object that is not a valid instance of HTMLSelectElement."
741
+ );
742
+ }
743
+
744
+ return esValue[implSymbol]["validationMessage"];
745
+ }
746
+
747
+ get labels() {
748
+ const esValue = this !== null && this !== undefined ? this : globalObject;
749
+
750
+ if (!exports.is(esValue)) {
751
+ throw new globalObject.TypeError(
752
+ "'get labels' called on an object that is not a valid instance of HTMLSelectElement."
753
+ );
754
+ }
755
+
756
+ return utils.tryWrapperForImpl(esValue[implSymbol]["labels"]);
757
+ }
758
+ }
759
+ Object.defineProperties(HTMLSelectElement.prototype, {
760
+ item: { enumerable: true },
761
+ namedItem: { enumerable: true },
762
+ add: { enumerable: true },
763
+ remove: { enumerable: true },
764
+ checkValidity: { enumerable: true },
765
+ reportValidity: { enumerable: true },
766
+ setCustomValidity: { enumerable: true },
767
+ autofocus: { enumerable: true },
768
+ disabled: { enumerable: true },
769
+ form: { enumerable: true },
770
+ multiple: { enumerable: true },
771
+ name: { enumerable: true },
772
+ required: { enumerable: true },
773
+ size: { enumerable: true },
774
+ type: { enumerable: true },
775
+ options: { enumerable: true },
776
+ length: { enumerable: true },
777
+ selectedOptions: { enumerable: true },
778
+ selectedIndex: { enumerable: true },
779
+ value: { enumerable: true },
780
+ willValidate: { enumerable: true },
781
+ validity: { enumerable: true },
782
+ validationMessage: { enumerable: true },
783
+ labels: { enumerable: true },
784
+ [Symbol.toStringTag]: { value: "HTMLSelectElement", configurable: true },
785
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
786
+ });
787
+ ctorRegistry[interfaceName] = HTMLSelectElement;
788
+
789
+ Object.defineProperty(globalObject, interfaceName, {
790
+ configurable: true,
791
+ writable: true,
792
+ value: HTMLSelectElement
793
+ });
794
+ };
795
+
796
+ const proxyHandlerCache = new WeakMap();
797
+ class ProxyHandler {
798
+ constructor(globalObject) {
799
+ this._globalObject = globalObject;
800
+ }
801
+
802
+ get(target, P, receiver) {
803
+ if (typeof P === "symbol") {
804
+ return Reflect.get(target, P, receiver);
805
+ }
806
+ const desc = this.getOwnPropertyDescriptor(target, P);
807
+ if (desc === undefined) {
808
+ const parent = Object.getPrototypeOf(target);
809
+ if (parent === null) {
810
+ return undefined;
811
+ }
812
+ return Reflect.get(target, P, receiver);
813
+ }
814
+ if (!desc.get && !desc.set) {
815
+ return desc.value;
816
+ }
817
+ const getter = desc.get;
818
+ if (getter === undefined) {
819
+ return undefined;
820
+ }
821
+ return Reflect.apply(getter, receiver, []);
822
+ }
823
+
824
+ has(target, P) {
825
+ if (typeof P === "symbol") {
826
+ return Reflect.has(target, P);
827
+ }
828
+ const desc = this.getOwnPropertyDescriptor(target, P);
829
+ if (desc !== undefined) {
830
+ return true;
831
+ }
832
+ const parent = Object.getPrototypeOf(target);
833
+ if (parent !== null) {
834
+ return Reflect.has(parent, P);
835
+ }
836
+ return false;
837
+ }
838
+
839
+ ownKeys(target) {
840
+ const keys = new Set();
841
+
842
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
843
+ keys.add(`${key}`);
844
+ }
845
+
846
+ for (const key of Reflect.ownKeys(target)) {
847
+ keys.add(key);
848
+ }
849
+ return [...keys];
850
+ }
851
+
852
+ getOwnPropertyDescriptor(target, P) {
853
+ if (typeof P === "symbol") {
854
+ return Reflect.getOwnPropertyDescriptor(target, P);
855
+ }
856
+ let ignoreNamedProps = false;
857
+
858
+ if (utils.isArrayIndexPropName(P)) {
859
+ const index = P >>> 0;
860
+ const indexedValue = target[implSymbol].item(index);
861
+ if (indexedValue !== null) {
862
+ return {
863
+ writable: true,
864
+ enumerable: true,
865
+ configurable: true,
866
+ value: utils.tryWrapperForImpl(indexedValue)
867
+ };
868
+ }
869
+ ignoreNamedProps = true;
870
+ }
871
+
872
+ return Reflect.getOwnPropertyDescriptor(target, P);
873
+ }
874
+
875
+ set(target, P, V, receiver) {
876
+ if (typeof P === "symbol") {
877
+ return Reflect.set(target, P, V, receiver);
878
+ }
879
+ // The `receiver` argument refers to the Proxy exotic object or an object
880
+ // that inherits from it, whereas `target` refers to the Proxy target:
881
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
882
+ const globalObject = this._globalObject;
883
+
884
+ if (utils.isArrayIndexPropName(P)) {
885
+ const index = P >>> 0;
886
+ let indexedValue = V;
887
+
888
+ if (indexedValue === null || indexedValue === undefined) {
889
+ indexedValue = null;
890
+ } else {
891
+ indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
892
+ context: "Failed to set the " + index + " property on 'HTMLSelectElement': The provided value"
893
+ });
894
+ }
895
+
896
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
897
+ try {
898
+ const creating = !(target[implSymbol].item(index) !== null);
899
+ if (creating) {
900
+ target[implSymbol][utils.indexedSetNew](index, indexedValue);
901
+ } else {
902
+ target[implSymbol][utils.indexedSetExisting](index, indexedValue);
903
+ }
904
+ } finally {
905
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
906
+ }
907
+
908
+ return true;
909
+ }
910
+ }
911
+ let ownDesc;
912
+
913
+ if (utils.isArrayIndexPropName(P)) {
914
+ const index = P >>> 0;
915
+ const indexedValue = target[implSymbol].item(index);
916
+ if (indexedValue !== null) {
917
+ ownDesc = {
918
+ writable: true,
919
+ enumerable: true,
920
+ configurable: true,
921
+ value: utils.tryWrapperForImpl(indexedValue)
922
+ };
923
+ }
924
+ }
925
+
926
+ if (ownDesc === undefined) {
927
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
928
+ }
929
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
930
+ }
931
+
932
+ defineProperty(target, P, desc) {
933
+ if (typeof P === "symbol") {
934
+ return Reflect.defineProperty(target, P, desc);
935
+ }
936
+
937
+ const globalObject = this._globalObject;
938
+
939
+ if (utils.isArrayIndexPropName(P)) {
940
+ if (desc.get || desc.set) {
941
+ return false;
942
+ }
943
+
944
+ const index = P >>> 0;
945
+ let indexedValue = desc.value;
946
+
947
+ if (indexedValue === null || indexedValue === undefined) {
948
+ indexedValue = null;
949
+ } else {
950
+ indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
951
+ context: "Failed to set the " + index + " property on 'HTMLSelectElement': The provided value"
952
+ });
953
+ }
954
+
955
+ ceReactionsPreSteps_jsdom_living_helpers_custom_elements(globalObject);
956
+ try {
957
+ const creating = !(target[implSymbol].item(index) !== null);
958
+ if (creating) {
959
+ target[implSymbol][utils.indexedSetNew](index, indexedValue);
960
+ } else {
961
+ target[implSymbol][utils.indexedSetExisting](index, indexedValue);
962
+ }
963
+ } finally {
964
+ ceReactionsPostSteps_jsdom_living_helpers_custom_elements(globalObject);
965
+ }
966
+
967
+ return true;
968
+ }
969
+
970
+ return Reflect.defineProperty(target, P, desc);
971
+ }
972
+
973
+ deleteProperty(target, P) {
974
+ if (typeof P === "symbol") {
975
+ return Reflect.deleteProperty(target, P);
976
+ }
977
+
978
+ const globalObject = this._globalObject;
979
+
980
+ if (utils.isArrayIndexPropName(P)) {
981
+ const index = P >>> 0;
982
+ return !(target[implSymbol].item(index) !== null);
983
+ }
984
+
985
+ return Reflect.deleteProperty(target, P);
986
+ }
987
+
988
+ preventExtensions() {
989
+ return false;
990
+ }
991
+ }
992
+
993
+ const Impl = require("../../jsdom/living/nodes/HTMLSelectElement-impl.js");