@engine262/engine262 0.0.1-01e9fa95a4e8a1c042efd00492309a2de4998fd0

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 (1271) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +149 -0
  3. package/bin/engine262.js +5 -0
  4. package/declaration/abstract-ops/all.d.mts +39 -0
  5. package/declaration/abstract-ops/all.d.mts.map +1 -0
  6. package/declaration/abstract-ops/arguments-operations.d.mts +14 -0
  7. package/declaration/abstract-ops/arguments-operations.d.mts.map +1 -0
  8. package/declaration/abstract-ops/array-objects.d.mts +20 -0
  9. package/declaration/abstract-ops/array-objects.d.mts.map +1 -0
  10. package/declaration/abstract-ops/arraybuffer-objects.d.mts +43 -0
  11. package/declaration/abstract-ops/arraybuffer-objects.d.mts.map +1 -0
  12. package/declaration/abstract-ops/async-function-operations.d.mts +7 -0
  13. package/declaration/abstract-ops/async-function-operations.d.mts.map +1 -0
  14. package/declaration/abstract-ops/async-generator-objects.d.mts +35 -0
  15. package/declaration/abstract-ops/async-generator-objects.d.mts.map +1 -0
  16. package/declaration/abstract-ops/data-types-and-values.d.mts +6 -0
  17. package/declaration/abstract-ops/data-types-and-values.d.mts.map +1 -0
  18. package/declaration/abstract-ops/dataview-objects.d.mts +20 -0
  19. package/declaration/abstract-ops/dataview-objects.d.mts.map +1 -0
  20. package/declaration/abstract-ops/date-objects.d.mts +57 -0
  21. package/declaration/abstract-ops/date-objects.d.mts.map +1 -0
  22. package/declaration/abstract-ops/disposable-operations.d.mts +19 -0
  23. package/declaration/abstract-ops/disposable-operations.d.mts.map +1 -0
  24. package/declaration/abstract-ops/error-objects.d.mts +8 -0
  25. package/declaration/abstract-ops/error-objects.d.mts.map +1 -0
  26. package/declaration/abstract-ops/execution-contexts.d.mts +3 -0
  27. package/declaration/abstract-ops/execution-contexts.d.mts.map +1 -0
  28. package/declaration/abstract-ops/function-operations.d.mts +101 -0
  29. package/declaration/abstract-ops/function-operations.d.mts.map +1 -0
  30. package/declaration/abstract-ops/generator-operations.d.mts +33 -0
  31. package/declaration/abstract-ops/generator-operations.d.mts.map +1 -0
  32. package/declaration/abstract-ops/global-object.d.mts +11 -0
  33. package/declaration/abstract-ops/global-object.d.mts.map +1 -0
  34. package/declaration/abstract-ops/immutable-prototype-objects.d.mts +7 -0
  35. package/declaration/abstract-ops/immutable-prototype-objects.d.mts.map +1 -0
  36. package/declaration/abstract-ops/import-calls.d.mts +5 -0
  37. package/declaration/abstract-ops/import-calls.d.mts.map +1 -0
  38. package/declaration/abstract-ops/iterator-operations.d.mts +53 -0
  39. package/declaration/abstract-ops/iterator-operations.d.mts.map +1 -0
  40. package/declaration/abstract-ops/keyed-collections.d.mts +4 -0
  41. package/declaration/abstract-ops/keyed-collections.d.mts.map +1 -0
  42. package/declaration/abstract-ops/math.d.mts +23 -0
  43. package/declaration/abstract-ops/math.d.mts.map +1 -0
  44. package/declaration/abstract-ops/module-namespace-exotic-objects.d.mts +13 -0
  45. package/declaration/abstract-ops/module-namespace-exotic-objects.d.mts.map +1 -0
  46. package/declaration/abstract-ops/module-records.d.mts +64 -0
  47. package/declaration/abstract-ops/module-records.d.mts.map +1 -0
  48. package/declaration/abstract-ops/notational-conventions.d.mts +19 -0
  49. package/declaration/abstract-ops/notational-conventions.d.mts.map +1 -0
  50. package/declaration/abstract-ops/object-operations.d.mts +79 -0
  51. package/declaration/abstract-ops/object-operations.d.mts.map +1 -0
  52. package/declaration/abstract-ops/objects.d.mts +32 -0
  53. package/declaration/abstract-ops/objects.d.mts.map +1 -0
  54. package/declaration/abstract-ops/private-names.d.mts +15 -0
  55. package/declaration/abstract-ops/private-names.d.mts.map +1 -0
  56. package/declaration/abstract-ops/promise-operations.d.mts +49 -0
  57. package/declaration/abstract-ops/promise-operations.d.mts.map +1 -0
  58. package/declaration/abstract-ops/proxy-objects.d.mts +6 -0
  59. package/declaration/abstract-ops/proxy-objects.d.mts.map +1 -0
  60. package/declaration/abstract-ops/realms.d.mts +181 -0
  61. package/declaration/abstract-ops/realms.d.mts.map +1 -0
  62. package/declaration/abstract-ops/reference-operations.d.mts +28 -0
  63. package/declaration/abstract-ops/reference-operations.d.mts.map +1 -0
  64. package/declaration/abstract-ops/regexp-objects.d.mts +28 -0
  65. package/declaration/abstract-ops/regexp-objects.d.mts.map +1 -0
  66. package/declaration/abstract-ops/shadow-realm.d.mts +26 -0
  67. package/declaration/abstract-ops/shadow-realm.d.mts.map +1 -0
  68. package/declaration/abstract-ops/shared-arraybuffer.d.mts +4 -0
  69. package/declaration/abstract-ops/shared-arraybuffer.d.mts.map +1 -0
  70. package/declaration/abstract-ops/spec-types.d.mts +53 -0
  71. package/declaration/abstract-ops/spec-types.d.mts.map +1 -0
  72. package/declaration/abstract-ops/string-objects.d.mts +8 -0
  73. package/declaration/abstract-ops/string-objects.d.mts.map +1 -0
  74. package/declaration/abstract-ops/symbol-objects.d.mts +11 -0
  75. package/declaration/abstract-ops/symbol-objects.d.mts.map +1 -0
  76. package/declaration/abstract-ops/temporal/addition.d.mts +62 -0
  77. package/declaration/abstract-ops/temporal/addition.d.mts.map +1 -0
  78. package/declaration/abstract-ops/temporal/all.d.mts +13 -0
  79. package/declaration/abstract-ops/temporal/all.d.mts.map +1 -0
  80. package/declaration/abstract-ops/temporal/calendar.d.mts +203 -0
  81. package/declaration/abstract-ops/temporal/calendar.d.mts.map +1 -0
  82. package/declaration/abstract-ops/temporal/duration.d.mts +126 -0
  83. package/declaration/abstract-ops/temporal/duration.d.mts.map +1 -0
  84. package/declaration/abstract-ops/temporal/instant.d.mts +25 -0
  85. package/declaration/abstract-ops/temporal/instant.d.mts.map +1 -0
  86. package/declaration/abstract-ops/temporal/not-implemented.d.mts +5 -0
  87. package/declaration/abstract-ops/temporal/not-implemented.d.mts.map +1 -0
  88. package/declaration/abstract-ops/temporal/now.d.mts +11 -0
  89. package/declaration/abstract-ops/temporal/now.d.mts.map +1 -0
  90. package/declaration/abstract-ops/temporal/plain-date-time.d.mts +36 -0
  91. package/declaration/abstract-ops/temporal/plain-date-time.d.mts.map +1 -0
  92. package/declaration/abstract-ops/temporal/plain-date.d.mts +32 -0
  93. package/declaration/abstract-ops/temporal/plain-date.d.mts.map +1 -0
  94. package/declaration/abstract-ops/temporal/plain-month-day.d.mts +10 -0
  95. package/declaration/abstract-ops/temporal/plain-month-day.d.mts.map +1 -0
  96. package/declaration/abstract-ops/temporal/plain-time.d.mts +58 -0
  97. package/declaration/abstract-ops/temporal/plain-time.d.mts.map +1 -0
  98. package/declaration/abstract-ops/temporal/plain-year-month.d.mts +19 -0
  99. package/declaration/abstract-ops/temporal/plain-year-month.d.mts.map +1 -0
  100. package/declaration/abstract-ops/temporal/temporal.d.mts +157 -0
  101. package/declaration/abstract-ops/temporal/temporal.d.mts.map +1 -0
  102. package/declaration/abstract-ops/temporal/time-zone.d.mts +26 -0
  103. package/declaration/abstract-ops/temporal/time-zone.d.mts.map +1 -0
  104. package/declaration/abstract-ops/temporal/zoned-datetime.d.mts +28 -0
  105. package/declaration/abstract-ops/temporal/zoned-datetime.d.mts.map +1 -0
  106. package/declaration/abstract-ops/testing-comparison.d.mts +35 -0
  107. package/declaration/abstract-ops/testing-comparison.d.mts.map +1 -0
  108. package/declaration/abstract-ops/type-conversion.d.mts +62 -0
  109. package/declaration/abstract-ops/type-conversion.d.mts.map +1 -0
  110. package/declaration/abstract-ops/typedarray-objects.d.mts +33 -0
  111. package/declaration/abstract-ops/typedarray-objects.d.mts.map +1 -0
  112. package/declaration/abstract-ops/weak-operations.d.mts +4 -0
  113. package/declaration/abstract-ops/weak-operations.d.mts.map +1 -0
  114. package/declaration/api.d.mts +76 -0
  115. package/declaration/api.d.mts.map +1 -0
  116. package/declaration/completion.d.mts +156 -0
  117. package/declaration/completion.d.mts.map +1 -0
  118. package/declaration/ecma402/not-implemented.d.mts +3 -0
  119. package/declaration/ecma402/not-implemented.d.mts.map +1 -0
  120. package/declaration/evaluator.d.mts +61 -0
  121. package/declaration/evaluator.d.mts.map +1 -0
  122. package/declaration/execution-context/Agent.d.mts +75 -0
  123. package/declaration/execution-context/Agent.d.mts.map +1 -0
  124. package/declaration/execution-context/Environment.d.mts +175 -0
  125. package/declaration/execution-context/Environment.d.mts.map +1 -0
  126. package/declaration/execution-context/ExecutionContext.d.mts +48 -0
  127. package/declaration/execution-context/ExecutionContext.d.mts.map +1 -0
  128. package/declaration/execution-context/Job.d.mts +23 -0
  129. package/declaration/execution-context/Job.d.mts.map +1 -0
  130. package/declaration/execution-context/PrivateEnvironment.d.mts +12 -0
  131. package/declaration/execution-context/PrivateEnvironment.d.mts.map +1 -0
  132. package/declaration/execution-context/Realm.d.mts +24 -0
  133. package/declaration/execution-context/Realm.d.mts.map +1 -0
  134. package/declaration/execution-context/WeakReference.d.mts +12 -0
  135. package/declaration/execution-context/WeakReference.d.mts.map +1 -0
  136. package/declaration/execution-context/all.d.mts +8 -0
  137. package/declaration/execution-context/all.d.mts.map +1 -0
  138. package/declaration/host-defined/base64.d.mts +10 -0
  139. package/declaration/host-defined/base64.d.mts.map +1 -0
  140. package/declaration/host-defined/debugger-util.d.mts +2 -0
  141. package/declaration/host-defined/debugger-util.d.mts.map +1 -0
  142. package/declaration/host-defined/decimal.d.mts +29 -0
  143. package/declaration/host-defined/decimal.d.mts.map +1 -0
  144. package/declaration/host-defined/devtoolsEval.d.mts +3 -0
  145. package/declaration/host-defined/devtoolsEval.d.mts.map +1 -0
  146. package/declaration/host-defined/engine.d.mts +133 -0
  147. package/declaration/host-defined/engine.d.mts.map +1 -0
  148. package/declaration/host-defined/error-messages.d.mts +45 -0
  149. package/declaration/host-defined/error-messages.d.mts.map +1 -0
  150. package/declaration/host-defined/event-loop.d.mts +92 -0
  151. package/declaration/host-defined/event-loop.d.mts.map +1 -0
  152. package/declaration/host-defined/ieee754.d.mts +7 -0
  153. package/declaration/host-defined/ieee754.d.mts.map +1 -0
  154. package/declaration/host-defined/inspect.d.mts +4 -0
  155. package/declaration/host-defined/inspect.d.mts.map +1 -0
  156. package/declaration/host-defined/job-queue.d.mts +42 -0
  157. package/declaration/host-defined/job-queue.d.mts.map +1 -0
  158. package/declaration/host-defined/sort.d.mts +14 -0
  159. package/declaration/host-defined/sort.d.mts.map +1 -0
  160. package/declaration/host-defined/test262-intrinsics.d.mts +8 -0
  161. package/declaration/host-defined/test262-intrinsics.d.mts.map +1 -0
  162. package/declaration/index.d.mts +56 -0
  163. package/declaration/index.d.mts.map +1 -0
  164. package/declaration/intrinsics/AbstractModuleSource.d.mts +5 -0
  165. package/declaration/intrinsics/AbstractModuleSource.d.mts.map +1 -0
  166. package/declaration/intrinsics/AggregateError.d.mts +3 -0
  167. package/declaration/intrinsics/AggregateError.d.mts.map +1 -0
  168. package/declaration/intrinsics/AggregateErrorPrototype.d.mts +3 -0
  169. package/declaration/intrinsics/AggregateErrorPrototype.d.mts.map +1 -0
  170. package/declaration/intrinsics/Array.d.mts +3 -0
  171. package/declaration/intrinsics/Array.d.mts.map +1 -0
  172. package/declaration/intrinsics/ArrayBuffer.d.mts +3 -0
  173. package/declaration/intrinsics/ArrayBuffer.d.mts.map +1 -0
  174. package/declaration/intrinsics/ArrayBufferPrototype.d.mts +3 -0
  175. package/declaration/intrinsics/ArrayBufferPrototype.d.mts.map +1 -0
  176. package/declaration/intrinsics/ArrayIteratorPrototype.d.mts +3 -0
  177. package/declaration/intrinsics/ArrayIteratorPrototype.d.mts.map +1 -0
  178. package/declaration/intrinsics/ArrayPrototype.d.mts +3 -0
  179. package/declaration/intrinsics/ArrayPrototype.d.mts.map +1 -0
  180. package/declaration/intrinsics/ArrayPrototypeShared.d.mts +8 -0
  181. package/declaration/intrinsics/ArrayPrototypeShared.d.mts.map +1 -0
  182. package/declaration/intrinsics/AsyncDisposableStack.d.mts +8 -0
  183. package/declaration/intrinsics/AsyncDisposableStack.d.mts.map +1 -0
  184. package/declaration/intrinsics/AsyncDisposableStackPrototype.d.mts +3 -0
  185. package/declaration/intrinsics/AsyncDisposableStackPrototype.d.mts.map +1 -0
  186. package/declaration/intrinsics/AsyncFromSyncIteratorPrototype.d.mts +6 -0
  187. package/declaration/intrinsics/AsyncFromSyncIteratorPrototype.d.mts.map +1 -0
  188. package/declaration/intrinsics/AsyncFunction.d.mts +3 -0
  189. package/declaration/intrinsics/AsyncFunction.d.mts.map +1 -0
  190. package/declaration/intrinsics/AsyncFunctionPrototype.d.mts +3 -0
  191. package/declaration/intrinsics/AsyncFunctionPrototype.d.mts.map +1 -0
  192. package/declaration/intrinsics/AsyncGeneratorFunction.d.mts +3 -0
  193. package/declaration/intrinsics/AsyncGeneratorFunction.d.mts.map +1 -0
  194. package/declaration/intrinsics/AsyncGeneratorFunctionPrototype.d.mts +3 -0
  195. package/declaration/intrinsics/AsyncGeneratorFunctionPrototype.d.mts.map +1 -0
  196. package/declaration/intrinsics/AsyncGeneratorFunctionPrototypePrototype.d.mts +3 -0
  197. package/declaration/intrinsics/AsyncGeneratorFunctionPrototypePrototype.d.mts.map +1 -0
  198. package/declaration/intrinsics/AsyncIteratorPrototype.d.mts +3 -0
  199. package/declaration/intrinsics/AsyncIteratorPrototype.d.mts.map +1 -0
  200. package/declaration/intrinsics/BigInt.d.mts +8 -0
  201. package/declaration/intrinsics/BigInt.d.mts.map +1 -0
  202. package/declaration/intrinsics/BigIntPrototype.d.mts +6 -0
  203. package/declaration/intrinsics/BigIntPrototype.d.mts.map +1 -0
  204. package/declaration/intrinsics/Boolean.d.mts +8 -0
  205. package/declaration/intrinsics/Boolean.d.mts.map +1 -0
  206. package/declaration/intrinsics/BooleanPrototype.d.mts +5 -0
  207. package/declaration/intrinsics/BooleanPrototype.d.mts.map +1 -0
  208. package/declaration/intrinsics/DataView.d.mts +12 -0
  209. package/declaration/intrinsics/DataView.d.mts.map +1 -0
  210. package/declaration/intrinsics/DataViewPrototype.d.mts +3 -0
  211. package/declaration/intrinsics/DataViewPrototype.d.mts.map +1 -0
  212. package/declaration/intrinsics/Date.d.mts +8 -0
  213. package/declaration/intrinsics/Date.d.mts.map +1 -0
  214. package/declaration/intrinsics/DatePrototype.d.mts +12 -0
  215. package/declaration/intrinsics/DatePrototype.d.mts.map +1 -0
  216. package/declaration/intrinsics/DisposableStack.d.mts +8 -0
  217. package/declaration/intrinsics/DisposableStack.d.mts.map +1 -0
  218. package/declaration/intrinsics/DisposableStackPrototype.d.mts +3 -0
  219. package/declaration/intrinsics/DisposableStackPrototype.d.mts.map +1 -0
  220. package/declaration/intrinsics/Error.d.mts +18 -0
  221. package/declaration/intrinsics/Error.d.mts.map +1 -0
  222. package/declaration/intrinsics/ErrorPrototype.d.mts +3 -0
  223. package/declaration/intrinsics/ErrorPrototype.d.mts.map +1 -0
  224. package/declaration/intrinsics/FinalizationRegistry.d.mts +16 -0
  225. package/declaration/intrinsics/FinalizationRegistry.d.mts.map +1 -0
  226. package/declaration/intrinsics/FinalizationRegistryPrototype.d.mts +3 -0
  227. package/declaration/intrinsics/FinalizationRegistryPrototype.d.mts.map +1 -0
  228. package/declaration/intrinsics/ForInIteratorPrototype.d.mts +13 -0
  229. package/declaration/intrinsics/ForInIteratorPrototype.d.mts.map +1 -0
  230. package/declaration/intrinsics/Function.d.mts +3 -0
  231. package/declaration/intrinsics/Function.d.mts.map +1 -0
  232. package/declaration/intrinsics/FunctionPrototype.d.mts +13 -0
  233. package/declaration/intrinsics/FunctionPrototype.d.mts.map +1 -0
  234. package/declaration/intrinsics/GeneratorFunction.d.mts +3 -0
  235. package/declaration/intrinsics/GeneratorFunction.d.mts.map +1 -0
  236. package/declaration/intrinsics/GeneratorFunctionPrototype.d.mts +3 -0
  237. package/declaration/intrinsics/GeneratorFunctionPrototype.d.mts.map +1 -0
  238. package/declaration/intrinsics/GeneratorFunctionPrototypePrototype.d.mts +3 -0
  239. package/declaration/intrinsics/GeneratorFunctionPrototypePrototype.d.mts.map +1 -0
  240. package/declaration/intrinsics/Iterator.d.mts +3 -0
  241. package/declaration/intrinsics/Iterator.d.mts.map +1 -0
  242. package/declaration/intrinsics/IteratorHelperPrototype.d.mts +3 -0
  243. package/declaration/intrinsics/IteratorHelperPrototype.d.mts.map +1 -0
  244. package/declaration/intrinsics/IteratorPrototype.d.mts +3 -0
  245. package/declaration/intrinsics/IteratorPrototype.d.mts.map +1 -0
  246. package/declaration/intrinsics/JSON.d.mts +9 -0
  247. package/declaration/intrinsics/JSON.d.mts.map +1 -0
  248. package/declaration/intrinsics/Map.d.mts +13 -0
  249. package/declaration/intrinsics/Map.d.mts.map +1 -0
  250. package/declaration/intrinsics/MapIteratorPrototype.d.mts +7 -0
  251. package/declaration/intrinsics/MapIteratorPrototype.d.mts.map +1 -0
  252. package/declaration/intrinsics/MapPrototype.d.mts +3 -0
  253. package/declaration/intrinsics/MapPrototype.d.mts.map +1 -0
  254. package/declaration/intrinsics/Math.d.mts +4 -0
  255. package/declaration/intrinsics/Math.d.mts.map +1 -0
  256. package/declaration/intrinsics/NativeError.d.mts +6 -0
  257. package/declaration/intrinsics/NativeError.d.mts.map +1 -0
  258. package/declaration/intrinsics/Number.d.mts +8 -0
  259. package/declaration/intrinsics/Number.d.mts.map +1 -0
  260. package/declaration/intrinsics/NumberPrototype.d.mts +5 -0
  261. package/declaration/intrinsics/NumberPrototype.d.mts.map +1 -0
  262. package/declaration/intrinsics/Object.d.mts +3 -0
  263. package/declaration/intrinsics/Object.d.mts.map +1 -0
  264. package/declaration/intrinsics/ObjectPrototype.d.mts +5 -0
  265. package/declaration/intrinsics/ObjectPrototype.d.mts.map +1 -0
  266. package/declaration/intrinsics/Promise.d.mts +18 -0
  267. package/declaration/intrinsics/Promise.d.mts.map +1 -0
  268. package/declaration/intrinsics/PromisePrototype.d.mts +3 -0
  269. package/declaration/intrinsics/PromisePrototype.d.mts.map +1 -0
  270. package/declaration/intrinsics/Proxy.d.mts +12 -0
  271. package/declaration/intrinsics/Proxy.d.mts.map +1 -0
  272. package/declaration/intrinsics/Reflect.d.mts +3 -0
  273. package/declaration/intrinsics/Reflect.d.mts.map +1 -0
  274. package/declaration/intrinsics/RegExp.d.mts +13 -0
  275. package/declaration/intrinsics/RegExp.d.mts.map +1 -0
  276. package/declaration/intrinsics/RegExpPrototype.d.mts +12 -0
  277. package/declaration/intrinsics/RegExpPrototype.d.mts.map +1 -0
  278. package/declaration/intrinsics/RegExpStringIteratorPrototype.d.mts +7 -0
  279. package/declaration/intrinsics/RegExpStringIteratorPrototype.d.mts.map +1 -0
  280. package/declaration/intrinsics/Set.d.mts +8 -0
  281. package/declaration/intrinsics/Set.d.mts.map +1 -0
  282. package/declaration/intrinsics/SetIteratorPrototype.d.mts +7 -0
  283. package/declaration/intrinsics/SetIteratorPrototype.d.mts.map +1 -0
  284. package/declaration/intrinsics/SetPrototype.d.mts +3 -0
  285. package/declaration/intrinsics/SetPrototype.d.mts.map +1 -0
  286. package/declaration/intrinsics/ShadowRealm.d.mts +8 -0
  287. package/declaration/intrinsics/ShadowRealm.d.mts.map +1 -0
  288. package/declaration/intrinsics/ShadowRealmPrototype.d.mts +3 -0
  289. package/declaration/intrinsics/ShadowRealmPrototype.d.mts.map +1 -0
  290. package/declaration/intrinsics/String.d.mts +10 -0
  291. package/declaration/intrinsics/String.d.mts.map +1 -0
  292. package/declaration/intrinsics/StringIteratorPrototype.d.mts +3 -0
  293. package/declaration/intrinsics/StringIteratorPrototype.d.mts.map +1 -0
  294. package/declaration/intrinsics/StringPrototype.d.mts +6 -0
  295. package/declaration/intrinsics/StringPrototype.d.mts.map +1 -0
  296. package/declaration/intrinsics/SuppressedError.d.mts +3 -0
  297. package/declaration/intrinsics/SuppressedError.d.mts.map +1 -0
  298. package/declaration/intrinsics/SuppressedErrorPrototype.d.mts +3 -0
  299. package/declaration/intrinsics/SuppressedErrorPrototype.d.mts.map +1 -0
  300. package/declaration/intrinsics/Symbol.d.mts +8 -0
  301. package/declaration/intrinsics/Symbol.d.mts.map +1 -0
  302. package/declaration/intrinsics/SymbolPrototype.d.mts +6 -0
  303. package/declaration/intrinsics/SymbolPrototype.d.mts.map +1 -0
  304. package/declaration/intrinsics/Temporal/Duration.d.mts +18 -0
  305. package/declaration/intrinsics/Temporal/Duration.d.mts.map +1 -0
  306. package/declaration/intrinsics/Temporal/DurationPrototype.d.mts +3 -0
  307. package/declaration/intrinsics/Temporal/DurationPrototype.d.mts.map +1 -0
  308. package/declaration/intrinsics/Temporal/Instant.d.mts +9 -0
  309. package/declaration/intrinsics/Temporal/Instant.d.mts.map +1 -0
  310. package/declaration/intrinsics/Temporal/InstantPrototype.d.mts +3 -0
  311. package/declaration/intrinsics/Temporal/InstantPrototype.d.mts.map +1 -0
  312. package/declaration/intrinsics/Temporal/Now.d.mts +3 -0
  313. package/declaration/intrinsics/Temporal/Now.d.mts.map +1 -0
  314. package/declaration/intrinsics/Temporal/PlainDate.d.mts +16 -0
  315. package/declaration/intrinsics/Temporal/PlainDate.d.mts.map +1 -0
  316. package/declaration/intrinsics/Temporal/PlainDatePrototype.d.mts +3 -0
  317. package/declaration/intrinsics/Temporal/PlainDatePrototype.d.mts.map +1 -0
  318. package/declaration/intrinsics/Temporal/PlainDateTime.d.mts +17 -0
  319. package/declaration/intrinsics/Temporal/PlainDateTime.d.mts.map +1 -0
  320. package/declaration/intrinsics/Temporal/PlainDateTimePrototype.d.mts +3 -0
  321. package/declaration/intrinsics/Temporal/PlainDateTimePrototype.d.mts.map +1 -0
  322. package/declaration/intrinsics/Temporal/PlainMonthDay.d.mts +12 -0
  323. package/declaration/intrinsics/Temporal/PlainMonthDay.d.mts.map +1 -0
  324. package/declaration/intrinsics/Temporal/PlainMonthDayPrototype.d.mts +3 -0
  325. package/declaration/intrinsics/Temporal/PlainMonthDayPrototype.d.mts.map +1 -0
  326. package/declaration/intrinsics/Temporal/PlainTime.d.mts +9 -0
  327. package/declaration/intrinsics/Temporal/PlainTime.d.mts.map +1 -0
  328. package/declaration/intrinsics/Temporal/PlainTimePrototype.d.mts +3 -0
  329. package/declaration/intrinsics/Temporal/PlainTimePrototype.d.mts.map +1 -0
  330. package/declaration/intrinsics/Temporal/PlainYearMonth.d.mts +17 -0
  331. package/declaration/intrinsics/Temporal/PlainYearMonth.d.mts.map +1 -0
  332. package/declaration/intrinsics/Temporal/PlainYearMonthPrototype.d.mts +3 -0
  333. package/declaration/intrinsics/Temporal/PlainYearMonthPrototype.d.mts.map +1 -0
  334. package/declaration/intrinsics/Temporal/Temporal.d.mts +3 -0
  335. package/declaration/intrinsics/Temporal/Temporal.d.mts.map +1 -0
  336. package/declaration/intrinsics/Temporal/ZonedDateTime.d.mts +13 -0
  337. package/declaration/intrinsics/Temporal/ZonedDateTime.d.mts.map +1 -0
  338. package/declaration/intrinsics/Temporal/ZonedDateTimePrototype.d.mts +3 -0
  339. package/declaration/intrinsics/Temporal/ZonedDateTimePrototype.d.mts.map +1 -0
  340. package/declaration/intrinsics/ThrowTypeError.d.mts +3 -0
  341. package/declaration/intrinsics/ThrowTypeError.d.mts.map +1 -0
  342. package/declaration/intrinsics/TypedArray.d.mts +196 -0
  343. package/declaration/intrinsics/TypedArray.d.mts.map +1 -0
  344. package/declaration/intrinsics/TypedArrayConstructors.d.mts +3 -0
  345. package/declaration/intrinsics/TypedArrayConstructors.d.mts.map +1 -0
  346. package/declaration/intrinsics/TypedArrayPrototype.d.mts +3 -0
  347. package/declaration/intrinsics/TypedArrayPrototype.d.mts.map +1 -0
  348. package/declaration/intrinsics/TypedArrayPrototypes.d.mts +4 -0
  349. package/declaration/intrinsics/TypedArrayPrototypes.d.mts.map +1 -0
  350. package/declaration/intrinsics/TypedArray_Uint8Array.d.mts +3 -0
  351. package/declaration/intrinsics/TypedArray_Uint8Array.d.mts.map +1 -0
  352. package/declaration/intrinsics/URIHandling.d.mts +3 -0
  353. package/declaration/intrinsics/URIHandling.d.mts.map +1 -0
  354. package/declaration/intrinsics/WeakMap.d.mts +11 -0
  355. package/declaration/intrinsics/WeakMap.d.mts.map +1 -0
  356. package/declaration/intrinsics/WeakMapPrototype.d.mts +3 -0
  357. package/declaration/intrinsics/WeakMapPrototype.d.mts.map +1 -0
  358. package/declaration/intrinsics/WeakRef.d.mts +8 -0
  359. package/declaration/intrinsics/WeakRef.d.mts.map +1 -0
  360. package/declaration/intrinsics/WeakRefPrototype.d.mts +3 -0
  361. package/declaration/intrinsics/WeakRefPrototype.d.mts.map +1 -0
  362. package/declaration/intrinsics/WeakSet.d.mts +8 -0
  363. package/declaration/intrinsics/WeakSet.d.mts.map +1 -0
  364. package/declaration/intrinsics/WeakSetPrototype.d.mts +3 -0
  365. package/declaration/intrinsics/WeakSetPrototype.d.mts.map +1 -0
  366. package/declaration/intrinsics/WrapForValidIteratorPrototype.d.mts +3 -0
  367. package/declaration/intrinsics/WrapForValidIteratorPrototype.d.mts.map +1 -0
  368. package/declaration/intrinsics/bootstrap.d.mts +19 -0
  369. package/declaration/intrinsics/bootstrap.d.mts.map +1 -0
  370. package/declaration/intrinsics/eval.d.mts +3 -0
  371. package/declaration/intrinsics/eval.d.mts.map +1 -0
  372. package/declaration/intrinsics/isFinite.d.mts +3 -0
  373. package/declaration/intrinsics/isFinite.d.mts.map +1 -0
  374. package/declaration/intrinsics/isNaN.d.mts +3 -0
  375. package/declaration/intrinsics/isNaN.d.mts.map +1 -0
  376. package/declaration/intrinsics/parseFloat.d.mts +3 -0
  377. package/declaration/intrinsics/parseFloat.d.mts.map +1 -0
  378. package/declaration/intrinsics/parseInt.d.mts +3 -0
  379. package/declaration/intrinsics/parseInt.d.mts.map +1 -0
  380. package/declaration/modules.d.mts +126 -0
  381. package/declaration/modules.d.mts.map +1 -0
  382. package/declaration/parse.d.mts +35 -0
  383. package/declaration/parse.d.mts.map +1 -0
  384. package/declaration/parser/BaseParser.d.mts +24 -0
  385. package/declaration/parser/BaseParser.d.mts.map +1 -0
  386. package/declaration/parser/ExpressionParser.d.mts +70 -0
  387. package/declaration/parser/ExpressionParser.d.mts.map +1 -0
  388. package/declaration/parser/FunctionParser.d.mts +43 -0
  389. package/declaration/parser/FunctionParser.d.mts.map +1 -0
  390. package/declaration/parser/IdentifierParser.d.mts +12 -0
  391. package/declaration/parser/IdentifierParser.d.mts.map +1 -0
  392. package/declaration/parser/LanguageParser.d.mts +10 -0
  393. package/declaration/parser/LanguageParser.d.mts.map +1 -0
  394. package/declaration/parser/Lexer.d.mts +76 -0
  395. package/declaration/parser/Lexer.d.mts.map +1 -0
  396. package/declaration/parser/ModuleParser.d.mts +19 -0
  397. package/declaration/parser/ModuleParser.d.mts.map +1 -0
  398. package/declaration/parser/ParseNode.d.mts +1323 -0
  399. package/declaration/parser/ParseNode.d.mts.map +1 -0
  400. package/declaration/parser/Parser.d.mts +30 -0
  401. package/declaration/parser/Parser.d.mts.map +1 -0
  402. package/declaration/parser/RegExpParser.d.mts +67 -0
  403. package/declaration/parser/RegExpParser.d.mts.map +1 -0
  404. package/declaration/parser/Scope.d.mts +114 -0
  405. package/declaration/parser/Scope.d.mts.map +1 -0
  406. package/declaration/parser/StatementParser.d.mts +56 -0
  407. package/declaration/parser/StatementParser.d.mts.map +1 -0
  408. package/declaration/parser/TemporalParser.d.mts +211 -0
  409. package/declaration/parser/TemporalParser.d.mts.map +1 -0
  410. package/declaration/parser/tokens.d.mts +31 -0
  411. package/declaration/parser/tokens.d.mts.map +1 -0
  412. package/declaration/parser/utils.d.mts +10 -0
  413. package/declaration/parser/utils.d.mts.map +1 -0
  414. package/declaration/runtime-semantics/AdditiveExpression.d.mts +3 -0
  415. package/declaration/runtime-semantics/AdditiveExpression.d.mts.map +1 -0
  416. package/declaration/runtime-semantics/ApplyStringOrNumericBinaryOperator.d.mts +5 -0
  417. package/declaration/runtime-semantics/ApplyStringOrNumericBinaryOperator.d.mts.map +1 -0
  418. package/declaration/runtime-semantics/ArgumentListEvaluation.d.mts +5 -0
  419. package/declaration/runtime-semantics/ArgumentListEvaluation.d.mts.map +1 -0
  420. package/declaration/runtime-semantics/ArrayLiteral.d.mts +5 -0
  421. package/declaration/runtime-semantics/ArrayLiteral.d.mts.map +1 -0
  422. package/declaration/runtime-semantics/ArrowFunction.d.mts +4 -0
  423. package/declaration/runtime-semantics/ArrowFunction.d.mts.map +1 -0
  424. package/declaration/runtime-semantics/AssignmentExpression.d.mts +8 -0
  425. package/declaration/runtime-semantics/AssignmentExpression.d.mts.map +1 -0
  426. package/declaration/runtime-semantics/AsyncArrowFunction.d.mts +4 -0
  427. package/declaration/runtime-semantics/AsyncArrowFunction.d.mts.map +1 -0
  428. package/declaration/runtime-semantics/AsyncFunctionExpression.d.mts +4 -0
  429. package/declaration/runtime-semantics/AsyncFunctionExpression.d.mts.map +1 -0
  430. package/declaration/runtime-semantics/AsyncGeneratorExpression.d.mts +4 -0
  431. package/declaration/runtime-semantics/AsyncGeneratorExpression.d.mts.map +1 -0
  432. package/declaration/runtime-semantics/AwaitExpression.d.mts +5 -0
  433. package/declaration/runtime-semantics/AwaitExpression.d.mts.map +1 -0
  434. package/declaration/runtime-semantics/BindingInitialization.d.mts +8 -0
  435. package/declaration/runtime-semantics/BindingInitialization.d.mts.map +1 -0
  436. package/declaration/runtime-semantics/BitwiseOperators.d.mts +5 -0
  437. package/declaration/runtime-semantics/BitwiseOperators.d.mts.map +1 -0
  438. package/declaration/runtime-semantics/Block.d.mts +8 -0
  439. package/declaration/runtime-semantics/Block.d.mts.map +1 -0
  440. package/declaration/runtime-semantics/BreakStatement.d.mts +4 -0
  441. package/declaration/runtime-semantics/BreakStatement.d.mts.map +1 -0
  442. package/declaration/runtime-semantics/BreakableStatement.d.mts +4 -0
  443. package/declaration/runtime-semantics/BreakableStatement.d.mts.map +1 -0
  444. package/declaration/runtime-semantics/CallExpression.d.mts +5 -0
  445. package/declaration/runtime-semantics/CallExpression.d.mts.map +1 -0
  446. package/declaration/runtime-semantics/ClassDeclaration.d.mts +8 -0
  447. package/declaration/runtime-semantics/ClassDeclaration.d.mts.map +1 -0
  448. package/declaration/runtime-semantics/ClassDefinitionEvaluation.d.mts +88 -0
  449. package/declaration/runtime-semantics/ClassDefinitionEvaluation.d.mts.map +1 -0
  450. package/declaration/runtime-semantics/ClassExpression.d.mts +5 -0
  451. package/declaration/runtime-semantics/ClassExpression.d.mts.map +1 -0
  452. package/declaration/runtime-semantics/ClassFieldDefinitionEvaluation.d.mts +21 -0
  453. package/declaration/runtime-semantics/ClassFieldDefinitionEvaluation.d.mts.map +1 -0
  454. package/declaration/runtime-semantics/ClassStaticBlockDefinitionEvaluation.d.mts +13 -0
  455. package/declaration/runtime-semantics/ClassStaticBlockDefinitionEvaluation.d.mts.map +1 -0
  456. package/declaration/runtime-semantics/CoalesceExpression.d.mts +5 -0
  457. package/declaration/runtime-semantics/CoalesceExpression.d.mts.map +1 -0
  458. package/declaration/runtime-semantics/CommaOperator.d.mts +5 -0
  459. package/declaration/runtime-semantics/CommaOperator.d.mts.map +1 -0
  460. package/declaration/runtime-semantics/ConditionalExpression.d.mts +5 -0
  461. package/declaration/runtime-semantics/ConditionalExpression.d.mts.map +1 -0
  462. package/declaration/runtime-semantics/ContinueStatement.d.mts +4 -0
  463. package/declaration/runtime-semantics/ContinueStatement.d.mts.map +1 -0
  464. package/declaration/runtime-semantics/CreateDynamicFunction.d.mts +4 -0
  465. package/declaration/runtime-semantics/CreateDynamicFunction.d.mts.map +1 -0
  466. package/declaration/runtime-semantics/DebuggerStatement.d.mts +5 -0
  467. package/declaration/runtime-semantics/DebuggerStatement.d.mts.map +1 -0
  468. package/declaration/runtime-semantics/DefineMethod.d.mts +10 -0
  469. package/declaration/runtime-semantics/DefineMethod.d.mts.map +1 -0
  470. package/declaration/runtime-semantics/DestructuringAssignmentEvaluation.d.mts +5 -0
  471. package/declaration/runtime-semantics/DestructuringAssignmentEvaluation.d.mts.map +1 -0
  472. package/declaration/runtime-semantics/EmptyStatement.d.mts +5 -0
  473. package/declaration/runtime-semantics/EmptyStatement.d.mts.map +1 -0
  474. package/declaration/runtime-semantics/EqualityExpression.d.mts +6 -0
  475. package/declaration/runtime-semantics/EqualityExpression.d.mts.map +1 -0
  476. package/declaration/runtime-semantics/EvaluateBody.d.mts +37 -0
  477. package/declaration/runtime-semantics/EvaluateBody.d.mts.map +1 -0
  478. package/declaration/runtime-semantics/EvaluateCall.d.mts +5 -0
  479. package/declaration/runtime-semantics/EvaluateCall.d.mts.map +1 -0
  480. package/declaration/runtime-semantics/EvaluatePropertyAccess.d.mts +9 -0
  481. package/declaration/runtime-semantics/EvaluatePropertyAccess.d.mts.map +1 -0
  482. package/declaration/runtime-semantics/EvaluateStringOrNumericBinaryExpression.d.mts +6 -0
  483. package/declaration/runtime-semantics/EvaluateStringOrNumericBinaryExpression.d.mts.map +1 -0
  484. package/declaration/runtime-semantics/ExponentiationExpression.d.mts +5 -0
  485. package/declaration/runtime-semantics/ExponentiationExpression.d.mts.map +1 -0
  486. package/declaration/runtime-semantics/ExportDeclaration.d.mts +11 -0
  487. package/declaration/runtime-semantics/ExportDeclaration.d.mts.map +1 -0
  488. package/declaration/runtime-semantics/ExpressionStatement.d.mts +5 -0
  489. package/declaration/runtime-semantics/ExpressionStatement.d.mts.map +1 -0
  490. package/declaration/runtime-semantics/ForDeclarationBindingInitialization.d.mts +7 -0
  491. package/declaration/runtime-semantics/ForDeclarationBindingInitialization.d.mts.map +1 -0
  492. package/declaration/runtime-semantics/FunctionDeclaration.d.mts +5 -0
  493. package/declaration/runtime-semantics/FunctionDeclaration.d.mts.map +1 -0
  494. package/declaration/runtime-semantics/FunctionDeclarationInstantiation.d.mts +6 -0
  495. package/declaration/runtime-semantics/FunctionDeclarationInstantiation.d.mts.map +1 -0
  496. package/declaration/runtime-semantics/FunctionExpression.d.mts +4 -0
  497. package/declaration/runtime-semantics/FunctionExpression.d.mts.map +1 -0
  498. package/declaration/runtime-semantics/FunctionStatementList.d.mts +5 -0
  499. package/declaration/runtime-semantics/FunctionStatementList.d.mts.map +1 -0
  500. package/declaration/runtime-semantics/GeneratorExpression.d.mts +4 -0
  501. package/declaration/runtime-semantics/GeneratorExpression.d.mts.map +1 -0
  502. package/declaration/runtime-semantics/GetSubstitution.d.mts +5 -0
  503. package/declaration/runtime-semantics/GetSubstitution.d.mts.map +1 -0
  504. package/declaration/runtime-semantics/GlobalDeclarationInstantiation.d.mts +5 -0
  505. package/declaration/runtime-semantics/GlobalDeclarationInstantiation.d.mts.map +1 -0
  506. package/declaration/runtime-semantics/HoistableDeclaration.d.mts +5 -0
  507. package/declaration/runtime-semantics/HoistableDeclaration.d.mts.map +1 -0
  508. package/declaration/runtime-semantics/IdentifierReference.d.mts +6 -0
  509. package/declaration/runtime-semantics/IdentifierReference.d.mts.map +1 -0
  510. package/declaration/runtime-semantics/IfStatement.d.mts +11 -0
  511. package/declaration/runtime-semantics/IfStatement.d.mts.map +1 -0
  512. package/declaration/runtime-semantics/ImportCall.d.mts +6 -0
  513. package/declaration/runtime-semantics/ImportCall.d.mts.map +1 -0
  514. package/declaration/runtime-semantics/ImportDeclaration.d.mts +5 -0
  515. package/declaration/runtime-semantics/ImportDeclaration.d.mts.map +1 -0
  516. package/declaration/runtime-semantics/ImportMeta.d.mts +5 -0
  517. package/declaration/runtime-semantics/ImportMeta.d.mts.map +1 -0
  518. package/declaration/runtime-semantics/InstantiateArrowFunctionExpression.d.mts +5 -0
  519. package/declaration/runtime-semantics/InstantiateArrowFunctionExpression.d.mts.map +1 -0
  520. package/declaration/runtime-semantics/InstantiateAsyncArrowFunctionExpression.d.mts +5 -0
  521. package/declaration/runtime-semantics/InstantiateAsyncArrowFunctionExpression.d.mts.map +1 -0
  522. package/declaration/runtime-semantics/InstantiateAsyncFunctionExpression.d.mts +5 -0
  523. package/declaration/runtime-semantics/InstantiateAsyncFunctionExpression.d.mts.map +1 -0
  524. package/declaration/runtime-semantics/InstantiateAsyncGeneratorFunctionExpression.d.mts +5 -0
  525. package/declaration/runtime-semantics/InstantiateAsyncGeneratorFunctionExpression.d.mts.map +1 -0
  526. package/declaration/runtime-semantics/InstantiateFunctionObject.d.mts +12 -0
  527. package/declaration/runtime-semantics/InstantiateFunctionObject.d.mts.map +1 -0
  528. package/declaration/runtime-semantics/InstantiateGeneratorFunctionExpression.d.mts +5 -0
  529. package/declaration/runtime-semantics/InstantiateGeneratorFunctionExpression.d.mts.map +1 -0
  530. package/declaration/runtime-semantics/InstantiateOrdinaryFunctionExpression.d.mts +5 -0
  531. package/declaration/runtime-semantics/InstantiateOrdinaryFunctionExpression.d.mts.map +1 -0
  532. package/declaration/runtime-semantics/IteratorBindingInitialization.d.mts +7 -0
  533. package/declaration/runtime-semantics/IteratorBindingInitialization.d.mts.map +1 -0
  534. package/declaration/runtime-semantics/KeyedBindingInitialization.d.mts +6 -0
  535. package/declaration/runtime-semantics/KeyedBindingInitialization.d.mts.map +1 -0
  536. package/declaration/runtime-semantics/LabelledEvaluation.d.mts +7 -0
  537. package/declaration/runtime-semantics/LabelledEvaluation.d.mts.map +1 -0
  538. package/declaration/runtime-semantics/LabelledStatement.d.mts +4 -0
  539. package/declaration/runtime-semantics/LabelledStatement.d.mts.map +1 -0
  540. package/declaration/runtime-semantics/LexicalDeclaration.d.mts +14 -0
  541. package/declaration/runtime-semantics/LexicalDeclaration.d.mts.map +1 -0
  542. package/declaration/runtime-semantics/Literal.d.mts +6 -0
  543. package/declaration/runtime-semantics/Literal.d.mts.map +1 -0
  544. package/declaration/runtime-semantics/LogicalANDExpression.d.mts +5 -0
  545. package/declaration/runtime-semantics/LogicalANDExpression.d.mts.map +1 -0
  546. package/declaration/runtime-semantics/LogicalORExpression.d.mts +5 -0
  547. package/declaration/runtime-semantics/LogicalORExpression.d.mts.map +1 -0
  548. package/declaration/runtime-semantics/MV.d.mts +3 -0
  549. package/declaration/runtime-semantics/MV.d.mts.map +1 -0
  550. package/declaration/runtime-semantics/MemberExpression.d.mts +5 -0
  551. package/declaration/runtime-semantics/MemberExpression.d.mts.map +1 -0
  552. package/declaration/runtime-semantics/MethodDefinitionEvaluation.d.mts +28 -0
  553. package/declaration/runtime-semantics/MethodDefinitionEvaluation.d.mts.map +1 -0
  554. package/declaration/runtime-semantics/Module.d.mts +11 -0
  555. package/declaration/runtime-semantics/Module.d.mts.map +1 -0
  556. package/declaration/runtime-semantics/ModuleBody.d.mts +4 -0
  557. package/declaration/runtime-semantics/ModuleBody.d.mts.map +1 -0
  558. package/declaration/runtime-semantics/MultiplicativeExpression.d.mts +5 -0
  559. package/declaration/runtime-semantics/MultiplicativeExpression.d.mts.map +1 -0
  560. package/declaration/runtime-semantics/NamedEvaluation.d.mts +4 -0
  561. package/declaration/runtime-semantics/NamedEvaluation.d.mts.map +1 -0
  562. package/declaration/runtime-semantics/NewExpression.d.mts +5 -0
  563. package/declaration/runtime-semantics/NewExpression.d.mts.map +1 -0
  564. package/declaration/runtime-semantics/NewTarget.d.mts +3 -0
  565. package/declaration/runtime-semantics/NewTarget.d.mts.map +1 -0
  566. package/declaration/runtime-semantics/NumberToBigInt.d.mts +4 -0
  567. package/declaration/runtime-semantics/NumberToBigInt.d.mts.map +1 -0
  568. package/declaration/runtime-semantics/ObjectLiteral.d.mts +5 -0
  569. package/declaration/runtime-semantics/ObjectLiteral.d.mts.map +1 -0
  570. package/declaration/runtime-semantics/OptionalExpression.d.mts +5 -0
  571. package/declaration/runtime-semantics/OptionalExpression.d.mts.map +1 -0
  572. package/declaration/runtime-semantics/ParenthesizedExpression.d.mts +4 -0
  573. package/declaration/runtime-semantics/ParenthesizedExpression.d.mts.map +1 -0
  574. package/declaration/runtime-semantics/PropertyBindingInitialization.d.mts +6 -0
  575. package/declaration/runtime-semantics/PropertyBindingInitialization.d.mts.map +1 -0
  576. package/declaration/runtime-semantics/PropertyDefinitionEvaluation.d.mts +6 -0
  577. package/declaration/runtime-semantics/PropertyDefinitionEvaluation.d.mts.map +1 -0
  578. package/declaration/runtime-semantics/PropertyName.d.mts +5 -0
  579. package/declaration/runtime-semantics/PropertyName.d.mts.map +1 -0
  580. package/declaration/runtime-semantics/RegExp.d.mts +36 -0
  581. package/declaration/runtime-semantics/RegExp.d.mts.map +1 -0
  582. package/declaration/runtime-semantics/RegularExpressionLiteral.d.mts +4 -0
  583. package/declaration/runtime-semantics/RegularExpressionLiteral.d.mts.map +1 -0
  584. package/declaration/runtime-semantics/RelationalExpression.d.mts +8 -0
  585. package/declaration/runtime-semantics/RelationalExpression.d.mts.map +1 -0
  586. package/declaration/runtime-semantics/RestBindingInitialization.d.mts +5 -0
  587. package/declaration/runtime-semantics/RestBindingInitialization.d.mts.map +1 -0
  588. package/declaration/runtime-semantics/ReturnStatement.d.mts +6 -0
  589. package/declaration/runtime-semantics/ReturnStatement.d.mts.map +1 -0
  590. package/declaration/runtime-semantics/Script.d.mts +5 -0
  591. package/declaration/runtime-semantics/Script.d.mts.map +1 -0
  592. package/declaration/runtime-semantics/ScriptBody.d.mts +3 -0
  593. package/declaration/runtime-semantics/ScriptBody.d.mts.map +1 -0
  594. package/declaration/runtime-semantics/ShiftExpression.d.mts +7 -0
  595. package/declaration/runtime-semantics/ShiftExpression.d.mts.map +1 -0
  596. package/declaration/runtime-semantics/StatementList.d.mts +5 -0
  597. package/declaration/runtime-semantics/StatementList.d.mts.map +1 -0
  598. package/declaration/runtime-semantics/StringIndexOf.d.mts +3 -0
  599. package/declaration/runtime-semantics/StringIndexOf.d.mts.map +1 -0
  600. package/declaration/runtime-semantics/StringPad.d.mts +5 -0
  601. package/declaration/runtime-semantics/StringPad.d.mts.map +1 -0
  602. package/declaration/runtime-semantics/SuperCall.d.mts +5 -0
  603. package/declaration/runtime-semantics/SuperCall.d.mts.map +1 -0
  604. package/declaration/runtime-semantics/SuperProperty.d.mts +5 -0
  605. package/declaration/runtime-semantics/SuperProperty.d.mts.map +1 -0
  606. package/declaration/runtime-semantics/SwitchStatement.d.mts +9 -0
  607. package/declaration/runtime-semantics/SwitchStatement.d.mts.map +1 -0
  608. package/declaration/runtime-semantics/TaggedTemplateExpression.d.mts +5 -0
  609. package/declaration/runtime-semantics/TaggedTemplateExpression.d.mts.map +1 -0
  610. package/declaration/runtime-semantics/TemplateLiteral.d.mts +5 -0
  611. package/declaration/runtime-semantics/TemplateLiteral.d.mts.map +1 -0
  612. package/declaration/runtime-semantics/This.d.mts +5 -0
  613. package/declaration/runtime-semantics/This.d.mts.map +1 -0
  614. package/declaration/runtime-semantics/ThrowStatement.d.mts +5 -0
  615. package/declaration/runtime-semantics/ThrowStatement.d.mts.map +1 -0
  616. package/declaration/runtime-semantics/TrimString.d.mts +5 -0
  617. package/declaration/runtime-semantics/TrimString.d.mts.map +1 -0
  618. package/declaration/runtime-semantics/TryStatement.d.mts +10 -0
  619. package/declaration/runtime-semantics/TryStatement.d.mts.map +1 -0
  620. package/declaration/runtime-semantics/UnaryExpression.d.mts +4 -0
  621. package/declaration/runtime-semantics/UnaryExpression.d.mts.map +1 -0
  622. package/declaration/runtime-semantics/Unicode.d.mts +166 -0
  623. package/declaration/runtime-semantics/Unicode.d.mts.map +1 -0
  624. package/declaration/runtime-semantics/UpdateExpression.d.mts +4 -0
  625. package/declaration/runtime-semantics/UpdateExpression.d.mts.map +1 -0
  626. package/declaration/runtime-semantics/VariableStatement.d.mts +7 -0
  627. package/declaration/runtime-semantics/VariableStatement.d.mts.map +1 -0
  628. package/declaration/runtime-semantics/WithStatement.d.mts +10 -0
  629. package/declaration/runtime-semantics/WithStatement.d.mts.map +1 -0
  630. package/declaration/runtime-semantics/YieldExpression.d.mts +5 -0
  631. package/declaration/runtime-semantics/YieldExpression.d.mts.map +1 -0
  632. package/declaration/runtime-semantics/all.d.mts +110 -0
  633. package/declaration/runtime-semantics/all.d.mts.map +1 -0
  634. package/declaration/static-semantics/BodyText.d.mts +4 -0
  635. package/declaration/static-semantics/BodyText.d.mts.map +1 -0
  636. package/declaration/static-semantics/BoundNames.d.mts +4 -0
  637. package/declaration/static-semantics/BoundNames.d.mts.map +1 -0
  638. package/declaration/static-semantics/CharacterValue.d.mts +6 -0
  639. package/declaration/static-semantics/CharacterValue.d.mts.map +1 -0
  640. package/declaration/static-semantics/CodePointAt.d.mts +8 -0
  641. package/declaration/static-semantics/CodePointAt.d.mts.map +1 -0
  642. package/declaration/static-semantics/CodePointsToString.d.mts +3 -0
  643. package/declaration/static-semantics/CodePointsToString.d.mts.map +1 -0
  644. package/declaration/static-semantics/ConstructorMethod.d.mts +4 -0
  645. package/declaration/static-semantics/ConstructorMethod.d.mts.map +1 -0
  646. package/declaration/static-semantics/ContainsArguments.d.mts +4 -0
  647. package/declaration/static-semantics/ContainsArguments.d.mts.map +1 -0
  648. package/declaration/static-semantics/ContainsExpression.d.mts +3 -0
  649. package/declaration/static-semantics/ContainsExpression.d.mts.map +1 -0
  650. package/declaration/static-semantics/ContainsUsing.d.mts +4 -0
  651. package/declaration/static-semantics/ContainsUsing.d.mts.map +1 -0
  652. package/declaration/static-semantics/DeclarationPart.d.mts +3 -0
  653. package/declaration/static-semantics/DeclarationPart.d.mts.map +1 -0
  654. package/declaration/static-semantics/ExpectedArgumentCount.d.mts +3 -0
  655. package/declaration/static-semantics/ExpectedArgumentCount.d.mts.map +1 -0
  656. package/declaration/static-semantics/ExportEntries.d.mts +14 -0
  657. package/declaration/static-semantics/ExportEntries.d.mts.map +1 -0
  658. package/declaration/static-semantics/ExportEntriesForModule.d.mts +5 -0
  659. package/declaration/static-semantics/ExportEntriesForModule.d.mts.map +1 -0
  660. package/declaration/static-semantics/FlagText.d.mts +4 -0
  661. package/declaration/static-semantics/FlagText.d.mts.map +1 -0
  662. package/declaration/static-semantics/HasInitializer.d.mts +5 -0
  663. package/declaration/static-semantics/HasInitializer.d.mts.map +1 -0
  664. package/declaration/static-semantics/HasName.d.mts +3 -0
  665. package/declaration/static-semantics/HasName.d.mts.map +1 -0
  666. package/declaration/static-semantics/ImportEntries.d.mts +11 -0
  667. package/declaration/static-semantics/ImportEntries.d.mts.map +1 -0
  668. package/declaration/static-semantics/ImportEntriesForModule.d.mts +4 -0
  669. package/declaration/static-semantics/ImportEntriesForModule.d.mts.map +1 -0
  670. package/declaration/static-semantics/ImportedLocalNames.d.mts +4 -0
  671. package/declaration/static-semantics/ImportedLocalNames.d.mts.map +1 -0
  672. package/declaration/static-semantics/IsAnonymousFunctionDefinition.d.mts +4 -0
  673. package/declaration/static-semantics/IsAnonymousFunctionDefinition.d.mts.map +1 -0
  674. package/declaration/static-semantics/IsAwaitUsingDeclaration.d.mts +3 -0
  675. package/declaration/static-semantics/IsAwaitUsingDeclaration.d.mts.map +1 -0
  676. package/declaration/static-semantics/IsComputedPropertyKey.d.mts +3 -0
  677. package/declaration/static-semantics/IsComputedPropertyKey.d.mts.map +1 -0
  678. package/declaration/static-semantics/IsConstantDeclaration.d.mts +3 -0
  679. package/declaration/static-semantics/IsConstantDeclaration.d.mts.map +1 -0
  680. package/declaration/static-semantics/IsDestructuring.d.mts +4 -0
  681. package/declaration/static-semantics/IsDestructuring.d.mts.map +1 -0
  682. package/declaration/static-semantics/IsFunctionDefinition.d.mts +6 -0
  683. package/declaration/static-semantics/IsFunctionDefinition.d.mts.map +1 -0
  684. package/declaration/static-semantics/IsIdentifierRef.d.mts +3 -0
  685. package/declaration/static-semantics/IsIdentifierRef.d.mts.map +1 -0
  686. package/declaration/static-semantics/IsInTailPosition.d.mts +3 -0
  687. package/declaration/static-semantics/IsInTailPosition.d.mts.map +1 -0
  688. package/declaration/static-semantics/IsSimpleParameterList.d.mts +3 -0
  689. package/declaration/static-semantics/IsSimpleParameterList.d.mts.map +1 -0
  690. package/declaration/static-semantics/IsStatic.d.mts +4 -0
  691. package/declaration/static-semantics/IsStatic.d.mts.map +1 -0
  692. package/declaration/static-semantics/IsStrict.d.mts +4 -0
  693. package/declaration/static-semantics/IsStrict.d.mts.map +1 -0
  694. package/declaration/static-semantics/IsStringWellFormedUnicode.d.mts +3 -0
  695. package/declaration/static-semantics/IsStringWellFormedUnicode.d.mts.map +1 -0
  696. package/declaration/static-semantics/IsUsingDeclaration.d.mts +3 -0
  697. package/declaration/static-semantics/IsUsingDeclaration.d.mts.map +1 -0
  698. package/declaration/static-semantics/LexicallyDeclaredNames.d.mts +4 -0
  699. package/declaration/static-semantics/LexicallyDeclaredNames.d.mts.map +1 -0
  700. package/declaration/static-semantics/LexicallyScopedDeclarations.d.mts +3 -0
  701. package/declaration/static-semantics/LexicallyScopedDeclarations.d.mts.map +1 -0
  702. package/declaration/static-semantics/ModuleRequests.d.mts +22 -0
  703. package/declaration/static-semantics/ModuleRequests.d.mts.map +1 -0
  704. package/declaration/static-semantics/NonConstructorElements.d.mts +4 -0
  705. package/declaration/static-semantics/NonConstructorElements.d.mts.map +1 -0
  706. package/declaration/static-semantics/NumericValue.d.mts +4 -0
  707. package/declaration/static-semantics/NumericValue.d.mts.map +1 -0
  708. package/declaration/static-semantics/PrivateBoundIdentifiers.d.mts +5 -0
  709. package/declaration/static-semantics/PrivateBoundIdentifiers.d.mts.map +1 -0
  710. package/declaration/static-semantics/PropName.d.mts +3 -0
  711. package/declaration/static-semantics/PropName.d.mts.map +1 -0
  712. package/declaration/static-semantics/StringToCodePoints.d.mts +3 -0
  713. package/declaration/static-semantics/StringToCodePoints.d.mts.map +1 -0
  714. package/declaration/static-semantics/StringValue.d.mts +3 -0
  715. package/declaration/static-semantics/StringValue.d.mts.map +1 -0
  716. package/declaration/static-semantics/TemplateStrings.d.mts +5 -0
  717. package/declaration/static-semantics/TemplateStrings.d.mts.map +1 -0
  718. package/declaration/static-semantics/TopLevelLexicallyDeclaredNames.d.mts +4 -0
  719. package/declaration/static-semantics/TopLevelLexicallyDeclaredNames.d.mts.map +1 -0
  720. package/declaration/static-semantics/TopLevelLexicallyScopedDeclarations.d.mts +4 -0
  721. package/declaration/static-semantics/TopLevelLexicallyScopedDeclarations.d.mts.map +1 -0
  722. package/declaration/static-semantics/TopLevelVarDeclaredNames.d.mts +4 -0
  723. package/declaration/static-semantics/TopLevelVarDeclaredNames.d.mts.map +1 -0
  724. package/declaration/static-semantics/TopLevelVarScopedDeclarations.d.mts +4 -0
  725. package/declaration/static-semantics/TopLevelVarScopedDeclarations.d.mts.map +1 -0
  726. package/declaration/static-semantics/UTF16EncodeCodePoint.d.mts +4 -0
  727. package/declaration/static-semantics/UTF16EncodeCodePoint.d.mts.map +1 -0
  728. package/declaration/static-semantics/UTF16SurrogatePairToCodePoint.d.mts +4 -0
  729. package/declaration/static-semantics/UTF16SurrogatePairToCodePoint.d.mts.map +1 -0
  730. package/declaration/static-semantics/VarDeclaredNames.d.mts +4 -0
  731. package/declaration/static-semantics/VarDeclaredNames.d.mts.map +1 -0
  732. package/declaration/static-semantics/VarScopedDeclarations.d.mts +4 -0
  733. package/declaration/static-semantics/VarScopedDeclarations.d.mts.map +1 -0
  734. package/declaration/static-semantics/all.d.mts +51 -0
  735. package/declaration/static-semantics/all.d.mts.map +1 -0
  736. package/declaration/utils/callback.d.mts +3 -0
  737. package/declaration/utils/callback.d.mts.map +1 -0
  738. package/declaration/utils/container.d.mts +54 -0
  739. package/declaration/utils/container.d.mts.map +1 -0
  740. package/declaration/utils/internal.d.mts +3 -0
  741. package/declaration/utils/internal.d.mts.map +1 -0
  742. package/declaration/utils/language.d.mts +13 -0
  743. package/declaration/utils/language.d.mts.map +1 -0
  744. package/declaration/utils/module-loader.d.mts +15 -0
  745. package/declaration/utils/module-loader.d.mts.map +1 -0
  746. package/declaration/utils/module-loaders/builtin-loader.d.mts +13 -0
  747. package/declaration/utils/module-loaders/builtin-loader.d.mts.map +1 -0
  748. package/declaration/utils/module.d.mts +15 -0
  749. package/declaration/utils/module.d.mts.map +1 -0
  750. package/declaration/utils/stack.d.mts +49 -0
  751. package/declaration/utils/stack.d.mts.map +1 -0
  752. package/declaration/value.d.mts +276 -0
  753. package/declaration/value.d.mts.map +1 -0
  754. package/lib/engine262.d.mts +1 -0
  755. package/lib/engine262.d.ts +1 -0
  756. package/lib/engine262.js +80493 -0
  757. package/lib/engine262.js.map +1 -0
  758. package/lib/engine262.mjs +79570 -0
  759. package/lib/engine262.mjs.map +1 -0
  760. package/lib/inspector/context.d.mts +39 -0
  761. package/lib/inspector/context.d.mts.map +1 -0
  762. package/lib/inspector/context.mjs +307 -0
  763. package/lib/inspector/context.mjs.map +1 -0
  764. package/lib/inspector/evaluator.d.mts +4 -0
  765. package/lib/inspector/evaluator.d.mts.map +1 -0
  766. package/lib/inspector/evaluator.mjs +16 -0
  767. package/lib/inspector/evaluator.mjs.map +1 -0
  768. package/lib/inspector/index.d.mts +17 -0
  769. package/lib/inspector/index.d.mts.map +1 -0
  770. package/lib/inspector/index.mjs +180 -0
  771. package/lib/inspector/index.mjs.map +1 -0
  772. package/lib/inspector/internal-utils.d.mts +4 -0
  773. package/lib/inspector/internal-utils.d.mts.map +1 -0
  774. package/lib/inspector/internal-utils.mjs +17 -0
  775. package/lib/inspector/internal-utils.mjs.map +1 -0
  776. package/lib/inspector/methods.d.mts +7 -0
  777. package/lib/inspector/methods.d.mts.map +1 -0
  778. package/lib/inspector/methods.mjs +368 -0
  779. package/lib/inspector/methods.mjs.map +1 -0
  780. package/lib/inspector/objects/RegExp.d.mts +4 -0
  781. package/lib/inspector/objects/RegExp.d.mts.map +1 -0
  782. package/lib/inspector/objects/RegExp.mjs +3 -0
  783. package/lib/inspector/objects/RegExp.mjs.map +1 -0
  784. package/lib/inspector/objects/arrays.d.mts +8 -0
  785. package/lib/inspector/objects/arrays.d.mts.map +1 -0
  786. package/lib/inspector/objects/arrays.mjs +72 -0
  787. package/lib/inspector/objects/arrays.mjs.map +1 -0
  788. package/lib/inspector/objects/collections.d.mts +7 -0
  789. package/lib/inspector/objects/collections.d.mts.map +1 -0
  790. package/lib/inspector/objects/collections.mjs +32 -0
  791. package/lib/inspector/objects/collections.mjs.map +1 -0
  792. package/lib/inspector/objects/dates.d.mts +12 -0
  793. package/lib/inspector/objects/dates.d.mts.map +1 -0
  794. package/lib/inspector/objects/dates.mjs +18 -0
  795. package/lib/inspector/objects/dates.mjs.map +1 -0
  796. package/lib/inspector/objects/errors.d.mts +4 -0
  797. package/lib/inspector/objects/errors.d.mts.map +1 -0
  798. package/lib/inspector/objects/errors.mjs +51 -0
  799. package/lib/inspector/objects/errors.mjs.map +1 -0
  800. package/lib/inspector/objects/function.d.mts +4 -0
  801. package/lib/inspector/objects/function.d.mts.map +1 -0
  802. package/lib/inspector/objects/function.mjs +137 -0
  803. package/lib/inspector/objects/function.mjs.map +1 -0
  804. package/lib/inspector/objects/index.d.mts +13 -0
  805. package/lib/inspector/objects/index.d.mts.map +1 -0
  806. package/lib/inspector/objects/index.mjs +84 -0
  807. package/lib/inspector/objects/index.mjs.map +1 -0
  808. package/lib/inspector/objects/modules.d.mts +4 -0
  809. package/lib/inspector/objects/modules.d.mts.map +1 -0
  810. package/lib/inspector/objects/modules.mjs +57 -0
  811. package/lib/inspector/objects/modules.mjs.map +1 -0
  812. package/lib/inspector/objects/objects.d.mts +31 -0
  813. package/lib/inspector/objects/objects.d.mts.map +1 -0
  814. package/lib/inspector/objects/objects.mjs +166 -0
  815. package/lib/inspector/objects/objects.mjs.map +1 -0
  816. package/lib/inspector/objects/primitives.d.mts +9 -0
  817. package/lib/inspector/objects/primitives.d.mts.map +1 -0
  818. package/lib/inspector/objects/primitives.mjs +105 -0
  819. package/lib/inspector/objects/primitives.mjs.map +1 -0
  820. package/lib/inspector/objects/promises.d.mts +4 -0
  821. package/lib/inspector/objects/promises.d.mts.map +1 -0
  822. package/lib/inspector/objects/promises.mjs +6 -0
  823. package/lib/inspector/objects/promises.mjs.map +1 -0
  824. package/lib/inspector/objects/proxies.d.mts +4 -0
  825. package/lib/inspector/objects/proxies.d.mts.map +1 -0
  826. package/lib/inspector/objects/proxies.mjs +12 -0
  827. package/lib/inspector/objects/proxies.mjs.map +1 -0
  828. package/lib/inspector/objects/shadow-realms.d.mts +4 -0
  829. package/lib/inspector/objects/shadow-realms.d.mts.map +1 -0
  830. package/lib/inspector/objects/shadow-realms.mjs +5 -0
  831. package/lib/inspector/objects/shadow-realms.mjs.map +1 -0
  832. package/lib/inspector/types.d.mts +223 -0
  833. package/lib/inspector/types.d.mts.map +1 -0
  834. package/lib/inspector/types.mjs +2 -0
  835. package/lib/inspector/types.mjs.map +1 -0
  836. package/lib/inspector/utils.d.mts +8 -0
  837. package/lib/inspector/utils.d.mts.map +1 -0
  838. package/lib/inspector/utils.mjs +61 -0
  839. package/lib/inspector/utils.mjs.map +1 -0
  840. package/lib/inspector.d.mts +1 -0
  841. package/lib/inspector.d.ts +1 -0
  842. package/lib/inspector.js +1888 -0
  843. package/lib/inspector.js.map +1 -0
  844. package/lib/inspector.mjs +1881 -0
  845. package/lib/inspector.mjs.map +1 -0
  846. package/lib/node/bin.d.mts +3 -0
  847. package/lib/node/bin.d.mts.map +1 -0
  848. package/lib/node/bin.mjs +312 -0
  849. package/lib/node/bin.mjs.map +1 -0
  850. package/lib/node/example.d.mts +2 -0
  851. package/lib/node/example.d.mts.map +1 -0
  852. package/lib/node/example.mjs +153 -0
  853. package/lib/node/example.mjs.map +1 -0
  854. package/lib/node/inspector.d.mts +17 -0
  855. package/lib/node/inspector.d.mts.map +1 -0
  856. package/lib/node/inspector.mjs +138 -0
  857. package/lib/node/inspector.mjs.map +1 -0
  858. package/lib/node/module.d.mts +23 -0
  859. package/lib/node/module.d.mts.map +1 -0
  860. package/lib/node/module.mjs +205 -0
  861. package/lib/node/module.mjs.map +1 -0
  862. package/lib/test262-harness.json +45 -0
  863. package/lib-src/inspector/context.mts +361 -0
  864. package/lib-src/inspector/evaluator.mts +19 -0
  865. package/lib-src/inspector/index.mts +209 -0
  866. package/lib-src/inspector/internal-utils.mts +18 -0
  867. package/lib-src/inspector/js_protocol.json +3288 -0
  868. package/lib-src/inspector/methods.mts +400 -0
  869. package/lib-src/inspector/objects/RegExp.mts +4 -0
  870. package/lib-src/inspector/objects/arrays.mts +78 -0
  871. package/lib-src/inspector/objects/collections.mts +37 -0
  872. package/lib-src/inspector/objects/dates.mts +49 -0
  873. package/lib-src/inspector/objects/errors.mts +58 -0
  874. package/lib-src/inspector/objects/function.mts +154 -0
  875. package/lib-src/inspector/objects/index.mts +134 -0
  876. package/lib-src/inspector/objects/modules.mts +60 -0
  877. package/lib-src/inspector/objects/objects.mts +211 -0
  878. package/lib-src/inspector/objects/primitives.mts +119 -0
  879. package/lib-src/inspector/objects/promises.mts +6 -0
  880. package/lib-src/inspector/objects/proxies.mts +12 -0
  881. package/lib-src/inspector/objects/shadow-realms.mts +6 -0
  882. package/lib-src/inspector/tsconfig.json +17 -0
  883. package/lib-src/inspector/types.mts +228 -0
  884. package/lib-src/inspector/utils.mts +83 -0
  885. package/lib-src/node/bin.mts +339 -0
  886. package/lib-src/node/example.mts +173 -0
  887. package/lib-src/node/inspector.mts +152 -0
  888. package/lib-src/node/module.mts +233 -0
  889. package/lib-src/node/tsconfig.json +21 -0
  890. package/package.json +147 -0
  891. package/src/abstract-ops/all.mts +38 -0
  892. package/src/abstract-ops/arguments-operations.mts +246 -0
  893. package/src/abstract-ops/array-objects.mts +311 -0
  894. package/src/abstract-ops/arraybuffer-objects.mts +361 -0
  895. package/src/abstract-ops/async-function-operations.mts +46 -0
  896. package/src/abstract-ops/async-generator-objects.mts +320 -0
  897. package/src/abstract-ops/data-types-and-values.mts +43 -0
  898. package/src/abstract-ops/dataview-objects.mts +147 -0
  899. package/src/abstract-ops/date-objects.mts +226 -0
  900. package/src/abstract-ops/disposable-operations.mts +166 -0
  901. package/src/abstract-ops/error-objects.mts +38 -0
  902. package/src/abstract-ops/execution-contexts.mts +18 -0
  903. package/src/abstract-ops/function-operations.mts +740 -0
  904. package/src/abstract-ops/generator-operations.mts +298 -0
  905. package/src/abstract-ops/global-object.mts +394 -0
  906. package/src/abstract-ops/immutable-prototype-objects.mts +21 -0
  907. package/src/abstract-ops/import-calls.mts +153 -0
  908. package/src/abstract-ops/iterator-operations.mts +409 -0
  909. package/src/abstract-ops/keyed-collections.mts +15 -0
  910. package/src/abstract-ops/math.mts +72 -0
  911. package/src/abstract-ops/module-namespace-exotic-objects.mts +277 -0
  912. package/src/abstract-ops/module-records.mts +1044 -0
  913. package/src/abstract-ops/notational-conventions.mts +67 -0
  914. package/src/abstract-ops/object-operations.mts +623 -0
  915. package/src/abstract-ops/objects.mts +453 -0
  916. package/src/abstract-ops/private-names.mts +170 -0
  917. package/src/abstract-ops/promise-operations.mts +444 -0
  918. package/src/abstract-ops/proxy-objects.mts +580 -0
  919. package/src/abstract-ops/realms.mts +209 -0
  920. package/src/abstract-ops/reference-operations.mts +211 -0
  921. package/src/abstract-ops/regexp-objects.mts +310 -0
  922. package/src/abstract-ops/shadow-realm.mts +216 -0
  923. package/src/abstract-ops/shared-arraybuffer.mts +8 -0
  924. package/src/abstract-ops/spec-types.mts +251 -0
  925. package/src/abstract-ops/string-objects.mts +156 -0
  926. package/src/abstract-ops/symbol-objects.mts +35 -0
  927. package/src/abstract-ops/temporal/addition.mts +221 -0
  928. package/src/abstract-ops/temporal/all.mts +12 -0
  929. package/src/abstract-ops/temporal/calendar.mts +801 -0
  930. package/src/abstract-ops/temporal/duration.mts +1015 -0
  931. package/src/abstract-ops/temporal/instant.mts +174 -0
  932. package/src/abstract-ops/temporal/not-implemented.mts +15 -0
  933. package/src/abstract-ops/temporal/now.mts +46 -0
  934. package/src/abstract-ops/temporal/plain-date-time.mts +242 -0
  935. package/src/abstract-ops/temporal/plain-date.mts +249 -0
  936. package/src/abstract-ops/temporal/plain-month-day.mts +86 -0
  937. package/src/abstract-ops/temporal/plain-time.mts +331 -0
  938. package/src/abstract-ops/temporal/plain-year-month.mts +195 -0
  939. package/src/abstract-ops/temporal/temporal.mts +837 -0
  940. package/src/abstract-ops/temporal/time-zone.mts +304 -0
  941. package/src/abstract-ops/temporal/zoned-datetime.mts +373 -0
  942. package/src/abstract-ops/testing-comparison.mts +376 -0
  943. package/src/abstract-ops/type-conversion.mts +514 -0
  944. package/src/abstract-ops/typedarray-objects.mts +385 -0
  945. package/src/abstract-ops/weak-operations.mts +20 -0
  946. package/src/api.mts +359 -0
  947. package/src/completion.mts +477 -0
  948. package/src/ecma402/not-implemented.mts +4 -0
  949. package/src/evaluator.mts +384 -0
  950. package/src/execution-context/Agent.mts +481 -0
  951. package/src/execution-context/Environment.mts +994 -0
  952. package/src/execution-context/ExecutionContext.mts +248 -0
  953. package/src/execution-context/Job.mts +64 -0
  954. package/src/execution-context/PrivateEnvironment.mts +41 -0
  955. package/src/execution-context/Realm.mts +378 -0
  956. package/src/execution-context/WeakReference.mts +86 -0
  957. package/src/execution-context/all.mts +7 -0
  958. package/src/host-defined/base64.mts +58 -0
  959. package/src/host-defined/debugger-util.mts +15 -0
  960. package/src/host-defined/decimal.mts +117 -0
  961. package/src/host-defined/devtoolsEval.mts +150 -0
  962. package/src/host-defined/engine.mts +283 -0
  963. package/src/host-defined/error-messages.mts +637 -0
  964. package/src/host-defined/event-loop.mts +311 -0
  965. package/src/host-defined/ieee754.mts +212 -0
  966. package/src/host-defined/inspect.mts +250 -0
  967. package/src/host-defined/job-queue.mts +191 -0
  968. package/src/host-defined/sort.mts +860 -0
  969. package/src/host-defined/test262-intrinsics.mts +167 -0
  970. package/src/index.mts +66 -0
  971. package/src/intrinsics/AbstractModuleSource.mts +47 -0
  972. package/src/intrinsics/AggregateError.mts +66 -0
  973. package/src/intrinsics/AggregateErrorPrototype.mts +12 -0
  974. package/src/intrinsics/Array.mts +302 -0
  975. package/src/intrinsics/ArrayBuffer.mts +48 -0
  976. package/src/intrinsics/ArrayBufferPrototype.mts +189 -0
  977. package/src/intrinsics/ArrayIteratorPrototype.mts +23 -0
  978. package/src/intrinsics/ArrayPrototype.mts +688 -0
  979. package/src/intrinsics/ArrayPrototypeShared.mts +572 -0
  980. package/src/intrinsics/AsyncDisposableStack.mts +36 -0
  981. package/src/intrinsics/AsyncDisposableStackPrototype.mts +103 -0
  982. package/src/intrinsics/AsyncFromSyncIteratorPrototype.mts +165 -0
  983. package/src/intrinsics/AsyncFunction.mts +33 -0
  984. package/src/intrinsics/AsyncFunctionPrototype.mts +8 -0
  985. package/src/intrinsics/AsyncGeneratorFunction.mts +39 -0
  986. package/src/intrinsics/AsyncGeneratorFunctionPrototype.mts +19 -0
  987. package/src/intrinsics/AsyncGeneratorFunctionPrototypePrototype.mts +148 -0
  988. package/src/intrinsics/AsyncIteratorPrototype.mts +56 -0
  989. package/src/intrinsics/BigInt.mts +69 -0
  990. package/src/intrinsics/BigIntPrototype.mts +64 -0
  991. package/src/intrinsics/Boolean.mts +47 -0
  992. package/src/intrinsics/BooleanPrototype.mts +56 -0
  993. package/src/intrinsics/DataView.mts +81 -0
  994. package/src/intrinsics/DataViewPrototype.mts +284 -0
  995. package/src/intrinsics/Date.mts +243 -0
  996. package/src/intrinsics/DatePrototype.mts +771 -0
  997. package/src/intrinsics/DisposableStack.mts +41 -0
  998. package/src/intrinsics/DisposableStackPrototype.mts +103 -0
  999. package/src/intrinsics/Error.mts +106 -0
  1000. package/src/intrinsics/ErrorPrototype.mts +100 -0
  1001. package/src/intrinsics/FinalizationRegistry.mts +69 -0
  1002. package/src/intrinsics/FinalizationRegistryPrototype.mts +110 -0
  1003. package/src/intrinsics/ForInIteratorPrototype.mts +120 -0
  1004. package/src/intrinsics/Function.mts +24 -0
  1005. package/src/intrinsics/FunctionPrototype.mts +232 -0
  1006. package/src/intrinsics/GeneratorFunction.mts +38 -0
  1007. package/src/intrinsics/GeneratorFunctionPrototype.mts +22 -0
  1008. package/src/intrinsics/GeneratorFunctionPrototypePrototype.mts +59 -0
  1009. package/src/intrinsics/Iterator.mts +302 -0
  1010. package/src/intrinsics/IteratorHelperPrototype.mts +61 -0
  1011. package/src/intrinsics/IteratorPrototype.mts +700 -0
  1012. package/src/intrinsics/JSON.mts +740 -0
  1013. package/src/intrinsics/Map.mts +129 -0
  1014. package/src/intrinsics/MapIteratorPrototype.mts +81 -0
  1015. package/src/intrinsics/MapPrototype.mts +295 -0
  1016. package/src/intrinsics/Math.mts +605 -0
  1017. package/src/intrinsics/NativeError.mts +86 -0
  1018. package/src/intrinsics/Number.mts +135 -0
  1019. package/src/intrinsics/NumberPrototype.mts +116 -0
  1020. package/src/intrinsics/Object.mts +466 -0
  1021. package/src/intrinsics/ObjectPrototype.mts +333 -0
  1022. package/src/intrinsics/Promise.mts +807 -0
  1023. package/src/intrinsics/PromisePrototype.mts +126 -0
  1024. package/src/intrinsics/Proxy.mts +101 -0
  1025. package/src/intrinsics/Reflect.mts +211 -0
  1026. package/src/intrinsics/RegExp.mts +166 -0
  1027. package/src/intrinsics/RegExpPrototype.mts +762 -0
  1028. package/src/intrinsics/RegExpStringIteratorPrototype.mts +73 -0
  1029. package/src/intrinsics/Set.mts +75 -0
  1030. package/src/intrinsics/SetIteratorPrototype.mts +78 -0
  1031. package/src/intrinsics/SetPrototype.mts +684 -0
  1032. package/src/intrinsics/ShadowRealm.mts +71 -0
  1033. package/src/intrinsics/ShadowRealmPrototype.mts +47 -0
  1034. package/src/intrinsics/String.mts +138 -0
  1035. package/src/intrinsics/StringIteratorPrototype.mts +23 -0
  1036. package/src/intrinsics/StringPrototype.mts +813 -0
  1037. package/src/intrinsics/SuppressedError.mts +53 -0
  1038. package/src/intrinsics/SuppressedErrorPrototype.mts +11 -0
  1039. package/src/intrinsics/Symbol.mts +99 -0
  1040. package/src/intrinsics/SymbolPrototype.mts +81 -0
  1041. package/src/intrinsics/Temporal/Duration.mts +140 -0
  1042. package/src/intrinsics/Temporal/DurationPrototype.mts +425 -0
  1043. package/src/intrinsics/Temporal/Instant.mts +90 -0
  1044. package/src/intrinsics/Temporal/InstantPrototype.mts +211 -0
  1045. package/src/intrinsics/Temporal/Now.mts +66 -0
  1046. package/src/intrinsics/Temporal/PlainDate.mts +79 -0
  1047. package/src/intrinsics/Temporal/PlainDatePrototype.mts +331 -0
  1048. package/src/intrinsics/Temporal/PlainDateTime.mts +113 -0
  1049. package/src/intrinsics/Temporal/PlainDateTimePrototype.mts +418 -0
  1050. package/src/intrinsics/Temporal/PlainMonthDay.mts +81 -0
  1051. package/src/intrinsics/Temporal/PlainMonthDayPrototype.mts +139 -0
  1052. package/src/intrinsics/Temporal/PlainTime.mts +74 -0
  1053. package/src/intrinsics/Temporal/PlainTimePrototype.mts +224 -0
  1054. package/src/intrinsics/Temporal/PlainYearMonth.mts +96 -0
  1055. package/src/intrinsics/Temporal/PlainYearMonthPrototype.mts +223 -0
  1056. package/src/intrinsics/Temporal/Temporal.mts +30 -0
  1057. package/src/intrinsics/Temporal/ZonedDateTime.mts +103 -0
  1058. package/src/intrinsics/Temporal/ZonedDateTimePrototype.mts +601 -0
  1059. package/src/intrinsics/ThrowTypeError.mts +21 -0
  1060. package/src/intrinsics/TypedArray.mts +585 -0
  1061. package/src/intrinsics/TypedArrayConstructors.mts +85 -0
  1062. package/src/intrinsics/TypedArrayPrototype.mts +600 -0
  1063. package/src/intrinsics/TypedArrayPrototypes.mts +17 -0
  1064. package/src/intrinsics/TypedArray_Uint8Array.mts +438 -0
  1065. package/src/intrinsics/URIHandling.mts +277 -0
  1066. package/src/intrinsics/WeakMap.mts +56 -0
  1067. package/src/intrinsics/WeakMapPrototype.mts +203 -0
  1068. package/src/intrinsics/WeakRef.mts +43 -0
  1069. package/src/intrinsics/WeakRefPrototype.mts +23 -0
  1070. package/src/intrinsics/WeakSet.mts +66 -0
  1071. package/src/intrinsics/WeakSetPrototype.mts +100 -0
  1072. package/src/intrinsics/WrapForValidIteratorPrototype.mts +65 -0
  1073. package/src/intrinsics/bootstrap.mts +153 -0
  1074. package/src/intrinsics/eval.mts +16 -0
  1075. package/src/intrinsics/isFinite.mts +23 -0
  1076. package/src/intrinsics/isNaN.mts +23 -0
  1077. package/src/intrinsics/parseFloat.mts +78 -0
  1078. package/src/intrinsics/parseInt.mts +85 -0
  1079. package/src/modules.mts +1088 -0
  1080. package/src/parse.mts +267 -0
  1081. package/src/parser/BaseParser.mts +36 -0
  1082. package/src/parser/ExpressionParser.mts +1697 -0
  1083. package/src/parser/FunctionParser.mts +398 -0
  1084. package/src/parser/IdentifierParser.mts +149 -0
  1085. package/src/parser/LanguageParser.mts +140 -0
  1086. package/src/parser/Lexer.mts +1190 -0
  1087. package/src/parser/ModuleParser.mts +429 -0
  1088. package/src/parser/ParseNode.mts +2923 -0
  1089. package/src/parser/Parser.mts +88 -0
  1090. package/src/parser/RegExpParser.mts +1428 -0
  1091. package/src/parser/Scope.mts +571 -0
  1092. package/src/parser/StatementParser.mts +1160 -0
  1093. package/src/parser/TemporalParser.mts +1245 -0
  1094. package/src/parser/tokens.mts +210 -0
  1095. package/src/parser/unicode.d.ts +20 -0
  1096. package/src/parser/utils.mts +114 -0
  1097. package/src/runtime-semantics/AdditiveExpression.mts +29 -0
  1098. package/src/runtime-semantics/ApplyStringOrNumericBinaryOperator.mts +78 -0
  1099. package/src/runtime-semantics/ArgumentListEvaluation.mts +178 -0
  1100. package/src/runtime-semantics/ArrayLiteral.mts +99 -0
  1101. package/src/runtime-semantics/ArrowFunction.mts +8 -0
  1102. package/src/runtime-semantics/AssignmentExpression.mts +284 -0
  1103. package/src/runtime-semantics/AsyncArrowFunction.mts +8 -0
  1104. package/src/runtime-semantics/AsyncFunctionExpression.mts +11 -0
  1105. package/src/runtime-semantics/AsyncGeneratorExpression.mts +11 -0
  1106. package/src/runtime-semantics/AwaitExpression.mts +16 -0
  1107. package/src/runtime-semantics/BindingInitialization.mts +91 -0
  1108. package/src/runtime-semantics/BitwiseOperators.mts +14 -0
  1109. package/src/runtime-semantics/Block.mts +73 -0
  1110. package/src/runtime-semantics/BreakStatement.mts +18 -0
  1111. package/src/runtime-semantics/BreakableStatement.mts +18 -0
  1112. package/src/runtime-semantics/CallExpression.mts +57 -0
  1113. package/src/runtime-semantics/ClassDeclaration.mts +41 -0
  1114. package/src/runtime-semantics/ClassDefinitionEvaluation.mts +811 -0
  1115. package/src/runtime-semantics/ClassExpression.mts +24 -0
  1116. package/src/runtime-semantics/ClassFieldDefinitionEvaluation.mts +189 -0
  1117. package/src/runtime-semantics/ClassStaticBlockDefinitionEvaluation.mts +48 -0
  1118. package/src/runtime-semantics/CoalesceExpression.mts +24 -0
  1119. package/src/runtime-semantics/CommaOperator.mts +18 -0
  1120. package/src/runtime-semantics/ConditionalExpression.mts +31 -0
  1121. package/src/runtime-semantics/ContinueStatement.mts +18 -0
  1122. package/src/runtime-semantics/CreateDynamicFunction.mts +161 -0
  1123. package/src/runtime-semantics/DebuggerStatement.mts +20 -0
  1124. package/src/runtime-semantics/DefineMethod.mts +42 -0
  1125. package/src/runtime-semantics/DestructuringAssignmentEvaluation.mts +306 -0
  1126. package/src/runtime-semantics/EmptyStatement.mts +9 -0
  1127. package/src/runtime-semantics/EqualityExpression.mts +60 -0
  1128. package/src/runtime-semantics/EvaluateBody.mts +211 -0
  1129. package/src/runtime-semantics/EvaluateCall.mts +67 -0
  1130. package/src/runtime-semantics/EvaluatePropertyAccess.mts +39 -0
  1131. package/src/runtime-semantics/EvaluateStringOrNumericBinaryExpression.mts +19 -0
  1132. package/src/runtime-semantics/ExponentiationExpression.mts +11 -0
  1133. package/src/runtime-semantics/ExportDeclaration.mts +100 -0
  1134. package/src/runtime-semantics/ExpressionStatement.mts +14 -0
  1135. package/src/runtime-semantics/ForDeclarationBindingInitialization.mts +21 -0
  1136. package/src/runtime-semantics/FunctionDeclaration.mts +10 -0
  1137. package/src/runtime-semantics/FunctionDeclarationInstantiation.mts +273 -0
  1138. package/src/runtime-semantics/FunctionExpression.mts +10 -0
  1139. package/src/runtime-semantics/FunctionStatementList.mts +17 -0
  1140. package/src/runtime-semantics/GeneratorExpression.mts +11 -0
  1141. package/src/runtime-semantics/GetSubstitution.mts +90 -0
  1142. package/src/runtime-semantics/GlobalDeclarationInstantiation.mts +140 -0
  1143. package/src/runtime-semantics/HoistableDeclaration.mts +12 -0
  1144. package/src/runtime-semantics/IdentifierReference.mts +15 -0
  1145. package/src/runtime-semantics/IfStatement.mts +49 -0
  1146. package/src/runtime-semantics/ImportCall.mts +137 -0
  1147. package/src/runtime-semantics/ImportDeclaration.mts +9 -0
  1148. package/src/runtime-semantics/ImportMeta.mts +45 -0
  1149. package/src/runtime-semantics/InstantiateArrowFunctionExpression.mts +36 -0
  1150. package/src/runtime-semantics/InstantiateAsyncArrowFunctionExpression.mts +38 -0
  1151. package/src/runtime-semantics/InstantiateAsyncFunctionExpression.mts +75 -0
  1152. package/src/runtime-semantics/InstantiateAsyncGeneratorFunctionExpression.mts +90 -0
  1153. package/src/runtime-semantics/InstantiateFunctionObject.mts +123 -0
  1154. package/src/runtime-semantics/InstantiateGeneratorFunctionExpression.mts +82 -0
  1155. package/src/runtime-semantics/InstantiateOrdinaryFunctionExpression.mts +64 -0
  1156. package/src/runtime-semantics/IteratorBindingInitialization.mts +212 -0
  1157. package/src/runtime-semantics/KeyedBindingInitialization.mts +61 -0
  1158. package/src/runtime-semantics/LabelledEvaluation.mts +749 -0
  1159. package/src/runtime-semantics/LabelledStatement.mts +11 -0
  1160. package/src/runtime-semantics/LexicalDeclaration.mts +114 -0
  1161. package/src/runtime-semantics/Literal.mts +36 -0
  1162. package/src/runtime-semantics/LogicalANDExpression.mts +25 -0
  1163. package/src/runtime-semantics/LogicalORExpression.mts +25 -0
  1164. package/src/runtime-semantics/MV.mts +10 -0
  1165. package/src/runtime-semantics/MemberExpression.mts +71 -0
  1166. package/src/runtime-semantics/MethodDefinitionEvaluation.mts +364 -0
  1167. package/src/runtime-semantics/Module.mts +15 -0
  1168. package/src/runtime-semantics/ModuleBody.mts +10 -0
  1169. package/src/runtime-semantics/MultiplicativeExpression.mts +18 -0
  1170. package/src/runtime-semantics/NamedEvaluation.mts +97 -0
  1171. package/src/runtime-semantics/NewExpression.mts +51 -0
  1172. package/src/runtime-semantics/NewTarget.mts +8 -0
  1173. package/src/runtime-semantics/NumberToBigInt.mts +16 -0
  1174. package/src/runtime-semantics/ObjectLiteral.mts +25 -0
  1175. package/src/runtime-semantics/OptionalExpression.mts +129 -0
  1176. package/src/runtime-semantics/ParenthesizedExpression.mts +8 -0
  1177. package/src/runtime-semantics/PropertyBindingInitialization.mts +45 -0
  1178. package/src/runtime-semantics/PropertyDefinitionEvaluation.mts +132 -0
  1179. package/src/runtime-semantics/PropertyName.mts +62 -0
  1180. package/src/runtime-semantics/RegExp.mts +1344 -0
  1181. package/src/runtime-semantics/RegularExpressionLiteral.mts +16 -0
  1182. package/src/runtime-semantics/RelationalExpression.mts +150 -0
  1183. package/src/runtime-semantics/RestBindingInitialization.mts +29 -0
  1184. package/src/runtime-semantics/ReturnStatement.mts +32 -0
  1185. package/src/runtime-semantics/Script.mts +15 -0
  1186. package/src/runtime-semantics/ScriptBody.mts +7 -0
  1187. package/src/runtime-semantics/ShiftExpression.mts +17 -0
  1188. package/src/runtime-semantics/StatementList.mts +33 -0
  1189. package/src/runtime-semantics/StringIndexOf.mts +43 -0
  1190. package/src/runtime-semantics/StringPad.mts +34 -0
  1191. package/src/runtime-semantics/SuperCall.mts +65 -0
  1192. package/src/runtime-semantics/SuperProperty.mts +58 -0
  1193. package/src/runtime-semantics/SwitchStatement.mts +214 -0
  1194. package/src/runtime-semantics/TaggedTemplateExpression.mts +23 -0
  1195. package/src/runtime-semantics/TemplateLiteral.mts +34 -0
  1196. package/src/runtime-semantics/This.mts +9 -0
  1197. package/src/runtime-semantics/ThrowStatement.mts +23 -0
  1198. package/src/runtime-semantics/TrimString.mts +19 -0
  1199. package/src/runtime-semantics/TryStatement.mts +119 -0
  1200. package/src/runtime-semantics/UnaryExpression.mts +218 -0
  1201. package/src/runtime-semantics/Unicode.mts +268 -0
  1202. package/src/runtime-semantics/UpdateExpression.mts +126 -0
  1203. package/src/runtime-semantics/VariableStatement.mts +72 -0
  1204. package/src/runtime-semantics/WithStatement.mts +33 -0
  1205. package/src/runtime-semantics/YieldExpression.mts +175 -0
  1206. package/src/runtime-semantics/all.mts +109 -0
  1207. package/src/static-semantics/BodyText.mts +7 -0
  1208. package/src/static-semantics/BoundNames.mts +108 -0
  1209. package/src/static-semantics/CharacterValue.mts +112 -0
  1210. package/src/static-semantics/CodePointAt.mts +53 -0
  1211. package/src/static-semantics/CodePointsToString.mts +15 -0
  1212. package/src/static-semantics/ConstructorMethod.mts +10 -0
  1213. package/src/static-semantics/ContainsArguments.mts +33 -0
  1214. package/src/static-semantics/ContainsExpression.mts +59 -0
  1215. package/src/static-semantics/ContainsUsing.mts +15 -0
  1216. package/src/static-semantics/DeclarationPart.mts +5 -0
  1217. package/src/static-semantics/ExpectedArgumentCount.mts +26 -0
  1218. package/src/static-semantics/ExportEntries.mts +183 -0
  1219. package/src/static-semantics/ExportEntriesForModule.mts +79 -0
  1220. package/src/static-semantics/FlagText.mts +7 -0
  1221. package/src/static-semantics/HasInitializer.mts +5 -0
  1222. package/src/static-semantics/HasName.mts +8 -0
  1223. package/src/static-semantics/ImportEntries.mts +49 -0
  1224. package/src/static-semantics/ImportEntriesForModule.mts +110 -0
  1225. package/src/static-semantics/ImportedLocalNames.mts +14 -0
  1226. package/src/static-semantics/IsAnonymousFunctionDefinition.mts +18 -0
  1227. package/src/static-semantics/IsAwaitUsingDeclaration.mts +12 -0
  1228. package/src/static-semantics/IsComputedPropertyKey.mts +7 -0
  1229. package/src/static-semantics/IsConstantDeclaration.mts +11 -0
  1230. package/src/static-semantics/IsDestructuring.mts +21 -0
  1231. package/src/static-semantics/IsFunctionDefinition.mts +15 -0
  1232. package/src/static-semantics/IsIdentifierRef.mts +5 -0
  1233. package/src/static-semantics/IsInTailPosition.mts +5 -0
  1234. package/src/static-semantics/IsSimpleParameterList.mts +23 -0
  1235. package/src/static-semantics/IsStatic.mts +10 -0
  1236. package/src/static-semantics/IsStrict.mts +7 -0
  1237. package/src/static-semantics/IsStringWellFormedUnicode.mts +24 -0
  1238. package/src/static-semantics/IsUsingDeclaration.mts +12 -0
  1239. package/src/static-semantics/LexicallyDeclaredNames.mts +26 -0
  1240. package/src/static-semantics/LexicallyScopedDeclarations.mts +84 -0
  1241. package/src/static-semantics/ModuleRequests.mts +185 -0
  1242. package/src/static-semantics/NonConstructorElements.mts +15 -0
  1243. package/src/static-semantics/NumericValue.mts +7 -0
  1244. package/src/static-semantics/PrivateBoundIdentifiers.mts +23 -0
  1245. package/src/static-semantics/PropName.mts +23 -0
  1246. package/src/static-semantics/StringToCodePoints.mts +22 -0
  1247. package/src/static-semantics/StringValue.mts +19 -0
  1248. package/src/static-semantics/TemplateStrings.mts +109 -0
  1249. package/src/static-semantics/TopLevelLexicallyDeclaredNames.mts +23 -0
  1250. package/src/static-semantics/TopLevelLexicallyScopedDeclarations.mts +27 -0
  1251. package/src/static-semantics/TopLevelVarDeclaredNames.mts +28 -0
  1252. package/src/static-semantics/TopLevelVarScopedDeclarations.mts +36 -0
  1253. package/src/static-semantics/UTF16EncodeCodePoint.mts +19 -0
  1254. package/src/static-semantics/UTF16SurrogatePairToCodePoint.mts +12 -0
  1255. package/src/static-semantics/VarDeclaredNames.mts +109 -0
  1256. package/src/static-semantics/VarScopedDeclarations.mts +115 -0
  1257. package/src/static-semantics/all.mts +50 -0
  1258. package/src/tsconfig.json +12 -0
  1259. package/src/unicode/.gitkeep +0 -0
  1260. package/src/unicode/CodePointProperties.json +1 -0
  1261. package/src/unicode/PropertyValueAliases.json +434 -0
  1262. package/src/unicode/SequenceProperties.json +1 -0
  1263. package/src/utils/callback.mts +7 -0
  1264. package/src/utils/container.mts +284 -0
  1265. package/src/utils/internal.mts +2 -0
  1266. package/src/utils/language.mts +35 -0
  1267. package/src/utils/module-loader.mts +73 -0
  1268. package/src/utils/module-loaders/builtin-loader.mts +84 -0
  1269. package/src/utils/module.mts +75 -0
  1270. package/src/utils/stack.mts +324 -0
  1271. package/src/value.mts +996 -0
@@ -0,0 +1,1044 @@
1
+ import { IncrementModuleAsyncEvaluationCount } from '../execution-context/Agent.mts';
2
+ import type { Mutable } from '../utils/language.mts';
3
+ import {
4
+ CyclicModuleRecord,
5
+ SyntheticModuleRecord,
6
+ ResolvedBindingRecord,
7
+ AbstractModuleRecord,
8
+ type ModuleRecordHostDefined,
9
+ ModuleRecord,
10
+ } from '../modules.mts';
11
+ import {
12
+ BooleanValue,
13
+ ObjectValue, Value,
14
+ } from '../value.mts';
15
+ import {
16
+ Q, X, NormalCompletion, ThrowCompletion, AbruptCompletion,
17
+ type PlainCompletion,
18
+ EnsureCompletion,
19
+ } from '../completion.mjs';
20
+ import {
21
+ Assert,
22
+ ModuleNamespaceCreate,
23
+ NewPromiseCapability,
24
+ PerformPromiseThen,
25
+ CreateBuiltinFunction,
26
+ Call,
27
+ ContinueDynamicImport,
28
+ PromiseCapabilityRecord,
29
+ Construct,
30
+ type ArrayBufferObject,
31
+ } from './all.mts';
32
+ import {
33
+ surroundingAgent, HostLoadImportedModule, HostPromiseRejectionTracker,
34
+ } from '#self';
35
+ import {
36
+ Realm,
37
+ HostGetSupportedImportAttributes,
38
+ ModuleRequestsKeyEqual,
39
+ type Arguments, type ImportAttributeRecord, type ImportedNamesValue, type ModuleRequestRecord, type PlainEvaluator, type ScriptRecord, type SourceTextModuleRecord,
40
+ Throw,
41
+ JSStringValue,
42
+ type HostLoadImportedModulePayloadOpaque,
43
+ } from '#self';
44
+
45
+ const DEFAULT_NAME = 'default';
46
+
47
+ function isAllNames(v: ImportedNamesValue): v is 'all' {
48
+ return v === 'all';
49
+ }
50
+ function isAllButDefault(v: ImportedNamesValue): v is 'all-but-default' {
51
+ return v === 'all-but-default';
52
+ }
53
+ /** https://tc39.es/proposal-deferred-reexports/#sec-MergeImportedNames */
54
+ export function MergeImportedNames(a: ImportedNamesValue, b: ImportedNamesValue): ImportedNamesValue {
55
+ // 1. If a is all or b is all, return all.
56
+ if (isAllNames(a) || isAllNames(b)) {
57
+ return 'all';
58
+ }
59
+ // 2. If a is all-but-default and b is a List of Strings that contains "default", return all.
60
+ if (isAllButDefault(a) && !isAllButDefault(b) && b.includes(DEFAULT_NAME)) {
61
+ return 'all';
62
+ }
63
+ // 3. If b is all-but-default and a is a List of Strings that contains "default", return all.
64
+ if (isAllButDefault(b) && !isAllButDefault(a) && a.includes(DEFAULT_NAME)) {
65
+ return 'all';
66
+ }
67
+ // 4. If a is all-but-default or b is all-but-default, return all-but-default.
68
+ if (isAllButDefault(a) || isAllButDefault(b)) {
69
+ return 'all-but-default';
70
+ }
71
+ // 5. Assert: a and b are a List of Strings.
72
+ // 6. Let merged be a copy of the List a.
73
+ const result: string[] = [...a];
74
+ // 7. For each String name of b, do
75
+ for (const name of b) {
76
+ // a. If merged does not contain name, then
77
+ // i. Append name to merged.
78
+ if (!result.includes(name)) {
79
+ result.push(name);
80
+ }
81
+ }
82
+ // 8. Return merged.
83
+ return result;
84
+ }
85
+
86
+ /** https://tc39.es/proposal-deferred-reexports/#sec-ExcludeImportedNames */
87
+ export function ExcludeImportedNames(a: ImportedNamesValue, b: ImportedNamesValue): ImportedNamesValue {
88
+ // 1. If b is all, return « ».
89
+ if (isAllNames(b)) {
90
+ return [];
91
+ }
92
+ // 2. If a is all, return all.
93
+ if (isAllNames(a)) {
94
+ return 'all';
95
+ }
96
+ // 3. If a is all-but-default, then
97
+ if (isAllButDefault(a)) {
98
+ // a. If b is all-but-default, return « ».
99
+ if (isAllButDefault(b)) {
100
+ return [];
101
+ }
102
+ // b. Return all-but-default.
103
+ return 'all-but-default';
104
+ }
105
+ // 4. Assert: a is a List of Strings.
106
+ const aList = a;
107
+ // 5. If b is all-but-default, then
108
+ if (isAllButDefault(b)) {
109
+ // a. If a contains "default", return « "default" ».
110
+ if (aList.includes(DEFAULT_NAME)) {
111
+ return [DEFAULT_NAME];
112
+ }
113
+ // b. Return « ».
114
+ return [];
115
+ }
116
+ // 6. Assert: b is a List of Strings.
117
+ const bList = b;
118
+ // 7. Return a new List containing all the elements of a that are not also elements of b.
119
+ const result: string[] = [];
120
+ for (const name of aList) {
121
+ if (!bList.includes(name)) {
122
+ result.push(name);
123
+ }
124
+ }
125
+ return result;
126
+ }
127
+
128
+ /** https://tc39.es/proposal-deferred-reexports/#sec-ListAppendUnique */
129
+ export function ListAppendUnique<T>(target: T[], items: Iterable<T>): void {
130
+ const seen = new Set(target);
131
+ // 1. For each Record r of list2, do
132
+ for (const item of items) {
133
+ // a. If list1 does not contain r, append r to list1.
134
+ if (!seen.has(item)) {
135
+ seen.add(item);
136
+ target.push(item);
137
+ }
138
+ }
139
+ // 2. Return unused.
140
+ }
141
+
142
+ export interface PreviouslyImportedNamesEntry {
143
+ readonly Module: AbstractModuleRecord;
144
+ ImportedNames: ImportedNamesValue;
145
+ }
146
+
147
+ /** https://tc39.es/proposal-deferred-reexports/#sec-GetNewOptionalIndirectExportsModuleRequests */
148
+ export function GetNewOptionalIndirectExportsModuleRequests(
149
+ module: AbstractModuleRecord,
150
+ importedNames: ImportedNamesValue,
151
+ previouslyImportedNames: PreviouslyImportedNamesEntry[],
152
+ ): readonly ModuleRequestRecord[] {
153
+ // 1. Assert: previouslyImportedNames contains a Record whose [[Module]] field is module.
154
+ // 2. Let previous be the Record in previouslyImportedNames whose [[Module]] field is module.
155
+ const previous = previouslyImportedNames.find((p) => p.Module === module);
156
+ Assert(previous !== undefined);
157
+ // 3. Let newImportedNames be ExcludeImportedNames(importedNames, previous.[[ImportedNames]]).
158
+ const newImportedNames = ExcludeImportedNames(importedNames, previous!.ImportedNames);
159
+ // 4. Set previous.[[ImportedNames]] to MergeImportedNames(previous.[[ImportedNames]], newImportedNames).
160
+ previous!.ImportedNames = MergeImportedNames(previous!.ImportedNames, newImportedNames);
161
+ // 5. Return module.GetOptionalIndirectExportsModuleRequests(newImportedNames).
162
+ return module.GetOptionalIndirectExportsModuleRequests(newImportedNames);
163
+ }
164
+
165
+ export class GraphLoadingState {
166
+ readonly PromiseCapability: PromiseCapabilityRecord;
167
+
168
+ readonly HostDefined?: ModuleRecordHostDefined;
169
+
170
+ IsLoading = true;
171
+
172
+ // https://tc39.es/proposal-deferred-reexports/#graphloadingstate-record
173
+ // [[Visited]] on spec is a List of Records { [[Module]], [[ImportedNames]] }.
174
+ // Here we splits this into a Set<CyclicModuleRecord> (visited modules) and
175
+ // PreviouslyImportedNames (per-module merged ImportedNames).
176
+ readonly Visited = new Set<CyclicModuleRecord>();
177
+
178
+ PendingModules = 1;
179
+
180
+ // Companion to [[Visited]] that tracks the merged [[ImportedNames]] per module.
181
+ readonly PreviouslyImportedNames: PreviouslyImportedNamesEntry[];
182
+
183
+ constructor({ PromiseCapability, HostDefined, PreviouslyImportedNames = [] }: Pick<GraphLoadingState, 'PromiseCapability' | 'HostDefined'> & { PreviouslyImportedNames?: PreviouslyImportedNamesEntry[] }) {
184
+ this.PromiseCapability = PromiseCapability;
185
+ this.HostDefined = HostDefined;
186
+ this.PreviouslyImportedNames = PreviouslyImportedNames;
187
+ }
188
+ }
189
+
190
+ /** https://tc39.es/ecma262/#sec-InnerModuleLoading */
191
+ export function InnerModuleLoading(
192
+ state: GraphLoadingState,
193
+ module: AbstractModuleRecord,
194
+ importedNames: ImportedNamesValue = 'all',
195
+ loadType: 'single' | 'recursive-load',
196
+ ) {
197
+ // 1. Assert: state.[[IsLoading]] is true.
198
+ Assert(Boolean(state.IsLoading === true));
199
+
200
+ // 2. If loadType is 'recursive-load' and module is a Cyclic Module Record, then
201
+ if (loadType === 'recursive-load' && module instanceof CyclicModuleRecord) {
202
+ // a. Let requestsToLoad be a new empty List.
203
+ let requestsToLoad: readonly ModuleRequestRecord[] = [];
204
+ // b. If state.[[Visited]] does not contain a Record whose [[Module]] field is module, then
205
+ if (!state.Visited.has(module)) {
206
+ // i. If module.[[Status]] is new, set requestsToLoad to module.[[RequestedModules]].
207
+ if (module.Status === 'new') {
208
+ requestsToLoad = module.RequestedModules;
209
+ }
210
+ // ii. Append the Record { [[Module]]: module, [[ImportedNames]]: « » } to state.[[Visited]].
211
+ state.Visited.add(module);
212
+ state.PreviouslyImportedNames.push({ Module: module, ImportedNames: [] });
213
+ }
214
+ // c. Let optionalIndirectRequests be GetNewOptionalIndirectExportsModuleRequests(module, importedNames, state.[[Visited]]).
215
+ const optionalIndirectRequests = GetNewOptionalIndirectExportsModuleRequests(module, importedNames, state.PreviouslyImportedNames);
216
+ // d. Set requestsToLoad to the list-concatenation of requestsToLoad and optionalIndirectRequests.
217
+ requestsToLoad = [...requestsToLoad, ...optionalIndirectRequests];
218
+ // e. Let requestedModulesCount be the number of elements in requestsToLoad.
219
+ const requestedModulesCount = requestsToLoad.length;
220
+ // f. Set state.[[PendingModulesCount]] to state.[[PendingModulesCount]] + requestedModulesCount.
221
+ state.PendingModules += requestedModulesCount;
222
+ // g. For each ModuleRequest Record request of requestsToLoad, do
223
+ for (const request of requestsToLoad) {
224
+ // i. If AllImportAttributesSupported(request.[[Attributes]]) is false, then
225
+ const invalidAttributeKey = AllImportAttributesSupported(request.Attributes);
226
+ if (invalidAttributeKey) {
227
+ // 1. Let error be ThrowCompletion(a newly created SyntaxError object).
228
+ const error = Throw.SyntaxError('Unsupported import attribute $1', invalidAttributeKey);
229
+ // 2. Perform ContinueModuleLoading(state, error, request.[[ImportedNames]], request.[[Phase]]).
230
+ ContinueModuleLoading(state, error, request.ImportedNames, request.Phase);
231
+ } else {
232
+ // ii. Else if module.[[LoadedModules]] contains a LoadedModuleRequest Record record such that ModuleRequestsKeyEqual(record, request) is true, then
233
+ const record = getRecordWithSpecifier(module.LoadedModules, request);
234
+ if (record !== undefined) {
235
+ // 1. Perform InnerModuleLoading(state, record.[[Module]], request.[[ImportedNames]]).
236
+ // For source-phase requests, only the module itself loads (no recursion).
237
+ const innerLoadType = request.Phase === 'source' ? 'single' : 'recursive-load';
238
+ InnerModuleLoading(state, record.Module, request.ImportedNames, innerLoadType);
239
+ } else {
240
+ // iii. Else,
241
+ // 1. Perform HostLoadImportedModule(module, request, state.[[HostDefined]], state).
242
+ // 2. NOTE: HostLoadImportedModule will call FinishLoadingImportedModule, which re-enters
243
+ // the graph loading process through ContinueModuleLoading.
244
+ HostLoadImportedModule(module, request, state.HostDefined, { data: state });
245
+ }
246
+ }
247
+ // iv. If state.[[IsLoading]] is false, return unused.
248
+ if (state.IsLoading === false) {
249
+ return;
250
+ }
251
+ }
252
+ }
253
+
254
+ // 3. Assert: state.[[PendingModulesCount]] ≥ 1.
255
+ Assert(state.PendingModules >= 1);
256
+ // 4. Set state.[[PendingModulesCount]] to state.[[PendingModulesCount]] - 1.
257
+ state.PendingModules -= 1;
258
+ // 5. If state.[[PendingModulesCount]] = 0, then
259
+ if (state.PendingModules === 0) {
260
+ // a. Set state.[[IsLoading]] to false.
261
+ state.IsLoading = false;
262
+ // b. For each Record loaded of state.[[Visited]], do
263
+ for (const loaded of state.Visited) {
264
+ // i. If loaded.[[Module]].[[Status]] is new, set loaded.[[Module]].[[Status]] to unlinked.
265
+ if (loaded.Status === 'new') {
266
+ loaded.Status = 'unlinked';
267
+ }
268
+ }
269
+ // c. Perform ! Call(state.[[PromiseCapability]].[[Resolve]], undefined, « undefined »).
270
+ X(Call(state.PromiseCapability.Resolve, Value.undefined, [Value.undefined]));
271
+ }
272
+
273
+ // 6. Return unused.
274
+ }
275
+
276
+ /** https://tc39.es/ecma262/#sec-ContinueModuleLoading */
277
+ export function ContinueModuleLoading(
278
+ state: GraphLoadingState,
279
+ moduleCompletion: PlainCompletion<AbstractModuleRecord>,
280
+ importedNames: ImportedNamesValue,
281
+ phase: 'source' | 'defer' | 'evaluation',
282
+ ) {
283
+ // 1. If state.[[IsLoading]] is false, return unused.
284
+ if (state.IsLoading === false) {
285
+ return;
286
+ }
287
+ moduleCompletion = EnsureCompletion(moduleCompletion);
288
+ // 2. If moduleCompletion is a normal completion, then
289
+ if (moduleCompletion instanceof NormalCompletion) {
290
+ // a. Perform InnerModuleLoading(state, moduleCompletion.[[Value]], importedNames).
291
+ // For source-phase requests, only the module itself loads (no recursion).
292
+ const loadType = phase === 'source' ? 'single' : 'recursive-load';
293
+ InnerModuleLoading(state, moduleCompletion.Value, importedNames, loadType);
294
+ } else { // 3. Else,
295
+ // a. Set state.[[IsLoading]] to false.
296
+ state.IsLoading = false;
297
+ // b. Perform ! Call(state.[[PromiseCapability]].[[Reject]], undefined, « moduleCompletion.[[Value]] »).
298
+ X(Call(state.PromiseCapability.Reject, Value.undefined, [moduleCompletion.Value]));
299
+ }
300
+
301
+ // 4. Return unused.
302
+ }
303
+
304
+ /** https://tc39.es/proposal-deferred-reexports/#sec-BuildLinkingList */
305
+ export function BuildLinkingList(
306
+ linkingList: AbstractModuleRecord[],
307
+ referrer: CyclicModuleRecord,
308
+ moduleRequests: readonly ModuleRequestRecord[],
309
+ previouslyImportedNames: PreviouslyImportedNamesEntry[],
310
+ ): void {
311
+ // 1. For each ModuleRequest Record request of moduleRequests, do
312
+ for (const request of moduleRequests) {
313
+ // Source-phase requests are not linked; the module's source is provided
314
+ // directly without preparing its bindings.
315
+ if (request.Phase === 'source') {
316
+ continue;
317
+ }
318
+ // a. Let requiredModule be GetImportedModule(referrer, request).
319
+ const requiredModule = GetImportedModule(referrer, request);
320
+ // b. If linkingList does not contain requiredModule, then
321
+ if (!linkingList.includes(requiredModule)) {
322
+ // i. Append requiredModule to linkingList.
323
+ linkingList.push(requiredModule);
324
+ // ii. If requiredModule is a Cyclic Module Record, then
325
+ if (requiredModule instanceof CyclicModuleRecord) {
326
+ // 1. Assert: previouslyImportedNames does not contain a Record whose [[Module]] field is requiredModule.
327
+ Assert(!previouslyImportedNames.some((p) => p.Module === requiredModule));
328
+ // 2. Append the Record { [[Module]]: requiredModule, [[ImportedNames]]: « » } to previouslyImportedNames.
329
+ previouslyImportedNames.push({ Module: requiredModule, ImportedNames: [] });
330
+ }
331
+ }
332
+ // c. If requiredModule is a Cyclic Module Record, then
333
+ if (requiredModule instanceof CyclicModuleRecord) {
334
+ // i. Let optionalIndirectRequests be GetNewOptionalIndirectExportsModuleRequests(requiredModule, request.[[ImportedNames]], previouslyImportedNames).
335
+ const optionalIndirectRequests = GetNewOptionalIndirectExportsModuleRequests(requiredModule, request.ImportedNames, previouslyImportedNames);
336
+ // ii. Perform BuildLinkingList(linkingList, requiredModule, optionalIndirectRequests, previouslyImportedNames).
337
+ BuildLinkingList(linkingList, requiredModule, optionalIndirectRequests, previouslyImportedNames);
338
+ }
339
+ }
340
+ // 2. Return unused.
341
+ }
342
+
343
+ /** https://tc39.es/ecma262/#sec-InnerModuleLinking */
344
+ export function InnerModuleLinking(
345
+ module: AbstractModuleRecord,
346
+ stack: CyclicModuleRecord[],
347
+ index: number,
348
+ ): PlainCompletion<number> {
349
+ // 1. If module is not a Cyclic Module Record, then
350
+ if (!(module instanceof CyclicModuleRecord)) {
351
+ // a. Perform ? module.Link().
352
+ Q(module.Link());
353
+ // b. Return index.
354
+ return index;
355
+ }
356
+ // 2. If module.[[Status]] is one of linking, linked, evaluating-async, or evaluated, then
357
+ if (module.Status === 'linking' || module.Status === 'linked' || module.Status === 'evaluating-async' || module.Status === 'evaluated') {
358
+ // a. Return index.
359
+ return index;
360
+ }
361
+ // 3. Assert: module.[[Status]] is unlinked.
362
+ Assert(module.Status === 'unlinked');
363
+ // 4. Set module.[[Status]] to linking.
364
+ module.Status = 'linking';
365
+ // 5. Let moduleIndex be index.
366
+ const moduleIndex = index;
367
+ // 6. Set module.[[DFSAncestorIndex]] to index.
368
+ module.DFSAncestorIndex = index;
369
+ // 7. Set index to index + 1.
370
+ index += 1;
371
+ // 8. Append module to stack.
372
+ stack.push(module);
373
+ // 9. Let linkingList be « ».
374
+ const linkingList: AbstractModuleRecord[] = [];
375
+ // 10. Perform BuildLinkingList(linkingList, module, module.[[RequestedModules]], « »).
376
+ BuildLinkingList(linkingList, module, module.RequestedModules, []);
377
+ // 11. For each Module Record requiredModule of linkingList, do
378
+ for (const requiredModule of linkingList) {
379
+ // a. Set index to ? InnerModuleLinking(requiredModule, stack, index).
380
+ index = Q(InnerModuleLinking(requiredModule, stack, index));
381
+ // b. If requiredModule is a Cyclic Module Record, then
382
+ if (requiredModule instanceof CyclicModuleRecord) {
383
+ // i. Assert: requiredModule.[[Status]] is one of linking, linked, evaluating-async, or evaluated.
384
+ Assert(requiredModule.Status === 'linking' || requiredModule.Status === 'linked' || requiredModule.Status === 'evaluating-async' || requiredModule.Status === 'evaluated');
385
+ // ii. Assert: requiredModule.[[Status]] is linking if and only if stack contains requiredModule.
386
+ Assert((requiredModule.Status === 'linking') === stack.includes(requiredModule));
387
+ // iii. If requiredModule.[[Status]] is linking, then
388
+ if (requiredModule.Status === 'linking') {
389
+ // 1. Set module.[[DFSAncestorIndex]] to min(module.[[DFSAncestorIndex]], requiredModule.[[DFSAncestorIndex]]).
390
+ module.DFSAncestorIndex = Math.min(module.DFSAncestorIndex, requiredModule.DFSAncestorIndex!);
391
+ }
392
+ }
393
+ }
394
+ // 12. Perform ? module.InitializeEnvironment().
395
+ Q((module as SourceTextModuleRecord).InitializeEnvironment());
396
+ // 13. Assert: module occurs exactly once in stack.
397
+ Assert(stack.indexOf(module) === stack.lastIndexOf(module));
398
+ // 14. Assert: module.[[DFSAncestorIndex]] ≤ moduleIndex.
399
+ Assert(module.DFSAncestorIndex <= moduleIndex);
400
+ // 15. If module.[[DFSAncestorIndex]] = moduleIndex, then
401
+ if (module.DFSAncestorIndex === moduleIndex) {
402
+ // a. Let done be false.
403
+ let done = false;
404
+ // b. Repeat, while done is false,
405
+ while (done === false) {
406
+ // i. Let requiredModule be the last element of stack.
407
+ // ii. Remove the last element of stack.
408
+ const requiredModule = stack.pop();
409
+ // iii. Assert: requiredModule is a Cyclic Module Record.
410
+ Assert(requiredModule instanceof CyclicModuleRecord);
411
+ // iv. Set requiredModule.[[Status]] to linked.
412
+ requiredModule.Status = 'linked';
413
+ // v. If requiredModule and module are the same Module Record, set done to true.
414
+ if (requiredModule === module) {
415
+ done = true;
416
+ }
417
+ }
418
+ }
419
+ // 16. Return index.
420
+ return index;
421
+ }
422
+
423
+ /** https://tc39.es/proposal-defer-import-eval/#sec-ismodulesccevaluated */
424
+ export function IsModuleSCCEvaluated(module: CyclicModuleRecord): BooleanValue {
425
+ if (module.CycleRoot !== undefined) {
426
+ if (module.CycleRoot.Status === 'evaluated') {
427
+ return Value.true;
428
+ }
429
+ return Value.false;
430
+ }
431
+ if (module.Status === 'evaluated') {
432
+ return Value.true;
433
+ }
434
+ return Value.false;
435
+ }
436
+
437
+ /** https://tc39.es/proposal-deferred-reexports/#sec-ReadyForSyncExecution */
438
+ export function ReadyForSyncExecution(
439
+ module: ModuleRecord,
440
+ importedNames: ImportedNamesValue = 'all',
441
+ seen: Set<CyclicModuleRecord> = new Set(),
442
+ ): BooleanValue {
443
+ // 1. If module is not a Cyclic Module Record, return true.
444
+ if (!(module instanceof CyclicModuleRecord)) {
445
+ return Value.true;
446
+ }
447
+ // 2. If seen is not present, set seen to a new empty List.
448
+ // (handled via the default parameter above)
449
+ // 3. If seen contains module, return true.
450
+ if (seen.has(module)) {
451
+ return Value.true;
452
+ }
453
+ // 4. Append module to seen.
454
+ seen.add(module);
455
+ // 5. If IsModuleSCCEvaluated(module), return true.
456
+ if (IsModuleSCCEvaluated(module) === Value.true) {
457
+ return Value.true;
458
+ }
459
+ // 6. If module.[[Status]] is evaluating or evaluating-async, return false.
460
+ if (module.Status === 'evaluating' || module.Status === 'evaluating-async') {
461
+ return Value.false;
462
+ }
463
+ // 7. Assert: module.[[Status]] is linked.
464
+ Assert(module.Status === 'linked');
465
+ // 8. If module.[[HasTLA]] is true, return false.
466
+ if (module.HasTLA === Value.true) {
467
+ return Value.false;
468
+ }
469
+ // 9. Let requests be the list-concatenation of module.[[RequestedModules]] and module.GetOptionalIndirectExportsModuleRequests(importedNames).
470
+ const requests = [...module.RequestedModules, ...module.GetOptionalIndirectExportsModuleRequests(importedNames)];
471
+ // 10. For each ModuleRequest Record request of requests, do
472
+ for (const request of requests) {
473
+ // Source-phase requests don't trigger evaluation, so they don't affect readiness.
474
+ if (request.Phase === 'source') {
475
+ continue;
476
+ }
477
+ // a. Let requiredModule be GetImportedModule(module, request).
478
+ const requiredModule = GetImportedModule(module, request);
479
+ // b. If ReadyForSyncExecution(requiredModule, request.[[ImportedNames]], seen) is false, then
480
+ if (ReadyForSyncExecution(requiredModule, request.ImportedNames, seen) === Value.false) {
481
+ // i. Return false.
482
+ return Value.false;
483
+ }
484
+ }
485
+ // 11. Return true.
486
+ return Value.true;
487
+ }
488
+
489
+ /** https://tc39.es/ecma262/#sec-EvaluateModuleSync */
490
+ export function* EvaluateModuleSync(module: ModuleRecord, importedNames: ImportedNamesValue = []): PlainEvaluator<undefined> {
491
+ // 1. If importedNames is not present, set importedNames to « ».
492
+ // 2. If ReadyForSyncExecution(module, importedNames) is false, throw a TypeError exception.
493
+ if (ReadyForSyncExecution(module, importedNames) === Value.false) {
494
+ return Throw.TypeError('Module "$1" is not ready for synchronous execution', (module as CyclicModuleRecord).HostDefined?.specifier ?? '<anonymous module>');
495
+ }
496
+ if (!(module instanceof CyclicModuleRecord && module.Status === 'evaluated')) {
497
+ Q(surroundingAgent.debugger_cannotPreview);
498
+ }
499
+ // 3. Let promise be module.Evaluate(importedNames).
500
+ const promise = yield* module.Evaluate(importedNames);
501
+ // 4. Assert: promise.[[PromiseState]] is either fulfilled or rejected.
502
+ Assert(promise.PromiseState === 'fulfilled' || promise.PromiseState === 'rejected');
503
+ // 5. If promise.[[PromiseState]] is rejected, then
504
+ if (promise.PromiseState === 'rejected') {
505
+ // a. If promise.[[PromiseIsHandled]] is false, perform HostPromiseRejectionTracker(promise, "handle").
506
+ if (promise.PromiseIsHandled === Value.false) {
507
+ HostPromiseRejectionTracker(promise, 'handle');
508
+ }
509
+ // b. Set promise.[[PromiseIsHandled]] to true.
510
+ promise.PromiseIsHandled = Value.true;
511
+ // c. Return ThrowCompletion(promise.[[PromiseResult]]).
512
+ Throw(promise.PromiseResult!);
513
+ }
514
+ // 6. Return unused.
515
+ return undefined;
516
+ }
517
+
518
+ /** https://tc39.es/ecma262/#sec-innermoduleevaluation */
519
+ export function* InnerModuleEvaluation(module: AbstractModuleRecord, stack: CyclicModuleRecord[], index: number): PlainEvaluator<number> {
520
+ // 1. If module is not a Cyclic Module Record, then
521
+ if (!(module instanceof CyclicModuleRecord)) {
522
+ // a. Perform ? EvaluateModuleSync(module).
523
+ Q(yield* EvaluateModuleSync(module));
524
+ // b. Return index.
525
+ return NormalCompletion(index);
526
+ }
527
+ // 2. If module.[[Status]] is either evaluating-async or evaluated, then
528
+ if (module.Status === 'evaluating-async' || module.Status === 'evaluated') {
529
+ // a. If module.[[EvaluationError]] is empty, return index.
530
+ if (module.EvaluationError === undefined) {
531
+ return NormalCompletion(index);
532
+ } else {
533
+ // b. Otherwise, return ? module.[[EvaluationError]].
534
+ return module.EvaluationError;
535
+ }
536
+ }
537
+ // 3. If module.[[Status]] is evaluating, return index.
538
+ if (module.Status === 'evaluating') {
539
+ return NormalCompletion(index);
540
+ }
541
+ // 4. Assert: module.[[Status]] is linked.
542
+ Assert(module.Status === 'linked');
543
+ // 5. Set module.[[Status]] to evaluating.
544
+ module.Status = 'evaluating';
545
+ // 6. Let moduleIndex be index.
546
+ const moduleIndex = index;
547
+ // 7. Set module.[[DFSAncestorIndex]] to index.
548
+ module.DFSAncestorIndex = index;
549
+ // 8. Set module.[[PendingAsyncDependencies]] to 0.
550
+ module.PendingAsyncDependencies = 0;
551
+ module.AsyncParentModules = [];
552
+ // 9. Set index to index + 1.
553
+ index += 1;
554
+ // 10. Let evaluationList be « ».
555
+ const evaluationList: ModuleRecord[] = [];
556
+ // 11. Perform BuildEvaluationList(evaluationList, module, module.[[RequestedModules]]).
557
+ BuildEvaluationList(evaluationList, module, module.RequestedModules);
558
+ // 12. Append module to stack.
559
+ stack.push(module);
560
+ // 13. For each Module Record requiredModule of evaluationList, do
561
+ for (const required of evaluationList!) {
562
+ let requiredModule: ModuleRecord | CyclicModuleRecord = required as ModuleRecord;
563
+ // a. Set index to ? InnerModuleEvaluation(requiredModule, stack, index).
564
+ index = Q(yield* InnerModuleEvaluation(requiredModule, stack, index));
565
+ // b. If requiredModule is a Cyclic Module Record, then
566
+ if (requiredModule instanceof CyclicModuleRecord) {
567
+ // i. Assert: requiredModule.[[Status]] is one of evaluating, evaluating-async, or evaluated.
568
+ Assert(requiredModule.Status === 'evaluating' || requiredModule.Status === 'evaluating-async' || requiredModule.Status === 'evaluated');
569
+ // ii. Assert: requiredModule.[[Status]] is evaluating if and only if stack contains requiredModule.
570
+ Assert((requiredModule.Status === 'evaluating') === stack.includes(requiredModule));
571
+ // iii. If requiredModule.[[Status]] is evaluating, then
572
+ if (requiredModule.Status === 'evaluating') {
573
+ // 1. Set module.[[DFSAncestorIndex]] to min(module.[[DFSAncestorIndex]], requiredModule.[[DFSAncestorIndex]]).
574
+ module.DFSAncestorIndex = Math.min(module.DFSAncestorIndex, requiredModule.DFSAncestorIndex!);
575
+ } else { // iv. Else,
576
+ // 1. Set requiredModule to requiredModule.[[CycleRoot]].
577
+ requiredModule = requiredModule.CycleRoot!;
578
+ // 2. Assert: requiredModule.[[Status]] is either evaluating-async or evaluated.
579
+ Assert((requiredModule as CyclicModuleRecord).Status === 'evaluating-async' || (requiredModule as CyclicModuleRecord).Status === 'evaluated');
580
+ // 3. If requiredModule.[[EvaluationError]] is not empty, return ? requiredModule.[[EvaluationError]].
581
+ if ((requiredModule as CyclicModuleRecord).EvaluationError !== undefined) {
582
+ return EnsureCompletion((requiredModule as CyclicModuleRecord).EvaluationError);
583
+ }
584
+ }
585
+ // v. If requiredModule.[[AsyncEvaluationOrder]] is an integer, then
586
+ if (typeof (requiredModule as CyclicModuleRecord).AsyncEvaluationOrder === 'number') {
587
+ // 1. Set module.[[PendingAsyncDependencies]] to module.[[PendingAsyncDependencies]] + 1.
588
+ module.PendingAsyncDependencies += 1;
589
+ // 2. Append module to requiredModule.[[AsyncParentModules]].
590
+ (requiredModule as CyclicModuleRecord).AsyncParentModules.push(module);
591
+ }
592
+ }
593
+ }
594
+ // 14. If module.[[HasTLA]] is true or module.[[PendingAsyncDependencies]] > 0, then
595
+ if (module.HasTLA === Value.true || module.PendingAsyncDependencies > 0) {
596
+ // a. Assert: module.[[AsyncEvaluationOrder]] is unset.
597
+ Assert(module.AsyncEvaluationOrder === 'unset');
598
+ // b. Set module.[[AsyncEvaluationOrder]] to IncrementModuleAsyncEvaluationCount().
599
+ module.AsyncEvaluationOrder = IncrementModuleAsyncEvaluationCount();
600
+ // c. If module.[[PendingAsyncDependencies]] = 0, perform ExecuteAsyncModule(module).
601
+ if (module.PendingAsyncDependencies === 0) {
602
+ X(yield* ExecuteAsyncModule(module));
603
+ }
604
+ } else { // 15. Else,
605
+ // a. Perform ? module.ExecuteModule().
606
+ Q(yield* module.ExecuteModule());
607
+ }
608
+ // 16. Assert: module occurs exactly once in stack.
609
+ Assert(stack.indexOf(module) === stack.lastIndexOf(module));
610
+ // 17. Assert: module.[[DFSAncestorIndex]] ≤ moduleIndex.
611
+ Assert(module.DFSAncestorIndex <= moduleIndex);
612
+ // 18. If module.[[DFSAncestorIndex]] = moduleIndex, then
613
+ if (module.DFSAncestorIndex === moduleIndex) {
614
+ // a. Let done be false.
615
+ let done = false;
616
+ // b. Repeat, while done is false,
617
+ while (done === false) {
618
+ // i. Let requiredModule be the last element of stack.
619
+ // ii. Remove the last element of stack.
620
+ const requiredModule = stack.pop();
621
+ // iii. Assert: requiredModule is a Cyclic Module Record.
622
+ Assert(requiredModule instanceof CyclicModuleRecord);
623
+ // iv. Assert: requiredModule.[[AsyncEvaluationOrder]] is either an integer or unset.
624
+ Assert(typeof requiredModule.AsyncEvaluationOrder === 'number' || requiredModule.AsyncEvaluationOrder === 'unset');
625
+ // v. If requiredModule.[[AsyncEvaluationOrder]] is unset, set requiredModule.[[Status]] to evaluated.
626
+ if (requiredModule.AsyncEvaluationOrder === 'unset') {
627
+ requiredModule.Status = 'evaluated';
628
+ } else {
629
+ // vi. Otherwise, set requiredModule.[[Status]] to evaluating-async.
630
+ requiredModule.Status = 'evaluating-async';
631
+ }
632
+ // vii. If requiredModule and module are the same Module Record, set done to true.
633
+ if (requiredModule === module) {
634
+ done = true;
635
+ }
636
+ // viii. Set requiredModule.[[CycleRoot]] to module.
637
+ requiredModule.CycleRoot = module;
638
+ }
639
+ }
640
+ // 19. Return index.
641
+ return index;
642
+ }
643
+
644
+ /** https://tc39.es/proposal-defer-import-eval/#sec-GatherAsynchronousTransitiveDependencies */
645
+ export function GatherAsynchronousTransitiveDependencies(module: ModuleRecord, seen?: Set<ModuleRecord>): ModuleRecord[] {
646
+ // 1. If seen is not present, set seen to a new empty List.
647
+ seen ??= new Set();
648
+ // 2. Let result be a new empty List.
649
+ const result: ModuleRecord[] = [];
650
+ // 3. If seen contains module, return result.
651
+ if (seen.has(module)) {
652
+ return result;
653
+ }
654
+ // 4. Append module to seen.
655
+ seen.add(module);
656
+ // 5. If module is not a Cyclic Module Record, return result.
657
+ if (!(module instanceof CyclicModuleRecord)) {
658
+ return result;
659
+ }
660
+ // 6. If module.[[Status]] is evaluating or IsModuleSCCEvaluated(module), return result.
661
+ if (module.Status === 'evaluating' || IsModuleSCCEvaluated(module) === Value.true) {
662
+ return result;
663
+ }
664
+ // 7. If module.[[HasTLA]] is true, then
665
+ if (module.HasTLA === Value.true) {
666
+ // a. Append module to result.
667
+ result.push(module);
668
+ // b. Return result.
669
+ return result;
670
+ }
671
+ // 8. Return GatherAsynchronousTransitiveDependenciesForRequests(module, module.[[RequestedModules]], seen)
672
+ return GatherAsynchronousTransitiveDependenciesForRequests(module, module.RequestedModules, seen);
673
+ }
674
+
675
+ /** https://tc39.es/proposal-deferred-reexports/#sec-BuildEvaluationList */
676
+ export function BuildEvaluationList(
677
+ evaluationList: ModuleRecord[],
678
+ referrer: CyclicModuleRecord,
679
+ moduleRequests: readonly ModuleRequestRecord[],
680
+ ): void {
681
+ // 1. For each ModuleRequest Record request of moduleRequests, do
682
+ for (const request of moduleRequests) {
683
+ // Source-phase requests are not evaluated; the source is provided directly.
684
+ if (request.Phase === 'source') {
685
+ continue;
686
+ }
687
+ // a. Let requiredModule be GetImportedModule(referrer, request.[[Specifier]]).
688
+ const requiredModule = GetImportedModule(referrer, request);
689
+ // b. If request.[[Phase]] is defer, then
690
+ if (request.Phase === 'defer') {
691
+ // i. Perform ListAppendUnique(evaluationList, GatherAsynchronousTransitiveDependencies(requiredModule)).
692
+ ListAppendUnique(evaluationList, GatherAsynchronousTransitiveDependencies(requiredModule));
693
+ } else if (!evaluationList.includes(requiredModule)) {
694
+ // c. Else if evaluationList does not contain requiredModule, then
695
+ // i. Append requiredModule to evaluationList.
696
+ evaluationList.push(requiredModule);
697
+ }
698
+ // d. If requiredModule is a Cyclic Module Record, then
699
+ if (requiredModule instanceof CyclicModuleRecord) {
700
+ // i. Let importedNames be request.[[ImportedNames]].
701
+ const importedNames = request.ImportedNames;
702
+ // ii. If importedNames = all, then
703
+ if (importedNames === 'all') {
704
+ const allOptionalIndirectRequests = requiredModule.GetOptionalIndirectExportsModuleRequests(importedNames);
705
+ // 2. Let seen be a new empty List.
706
+ // 3. Perform ListAppendUnique(evaluationList, GatherAsynchronousTransitiveDependenciesForRequests(requiredModule, allOptionalIndirectRequests, seen)).
707
+ ListAppendUnique(evaluationList, GatherAsynchronousTransitiveDependenciesForRequests(requiredModule, allOptionalIndirectRequests, new Set()));
708
+ } else { // iii. Else,
709
+ // 1. Let optionalIndirectRequests be requiredModule.GetOptionalIndirectExportsModuleRequests(importedNames).
710
+ const optionalIndirectRequests = requiredModule.GetOptionalIndirectExportsModuleRequests(importedNames);
711
+ // 2. Perform BuildEvaluationList(evaluationList, requiredModule, optionalIndirectRequests).
712
+ BuildEvaluationList(evaluationList, requiredModule, optionalIndirectRequests);
713
+ }
714
+ }
715
+ }
716
+ // 2. Return unused.
717
+ }
718
+
719
+ /** https://tc39.es/proposal-deferred-reexports/#sec-GatherAsynchronousTransitiveDependenciesForRequests */
720
+ export function GatherAsynchronousTransitiveDependenciesForRequests(
721
+ referrer: CyclicModuleRecord,
722
+ requests: readonly ModuleRequestRecord[],
723
+ seen: Set<ModuleRecord> = new Set(),
724
+ ): ModuleRecord[] {
725
+ // 1. Let result be a new empty List.
726
+ const result: ModuleRecord[] = [];
727
+ // 2. For each ModuleRequest Record request of moduleRequests, do
728
+ for (const request of requests) {
729
+ if (request.Phase === 'source') {
730
+ continue;
731
+ }
732
+ // a. Let requiredModule be GetImportedModule(referrer, request).
733
+ const requiredModule = GetImportedModule(referrer, request);
734
+ // b. Perform ListAppendUnique(result, GatherAsynchronousTransitiveDependencies(requiredModule, seen)).
735
+ ListAppendUnique(result, GatherAsynchronousTransitiveDependencies(requiredModule, seen));
736
+ // c. Let optionalIndirectRequests be requiredModule.GetOptionalIndirectExportsModuleRequests(request.[[ImportedNames]]).
737
+ if (requiredModule instanceof CyclicModuleRecord) {
738
+ const optionalIndirectRequests = requiredModule.GetOptionalIndirectExportsModuleRequests(request.ImportedNames);
739
+ // d. Perform ListAppendUnique(result, GatherAsynchronousTransitiveDependenciesForRequests(requiredModule, optionalIndirectRequests, seen)).
740
+ ListAppendUnique(result, GatherAsynchronousTransitiveDependenciesForRequests(requiredModule, optionalIndirectRequests, seen));
741
+ }
742
+ }
743
+ // 3. Return result.
744
+ return result;
745
+ }
746
+
747
+ /** https://tc39.es/ecma262/#sec-execute-async-module */
748
+ function* ExecuteAsyncModule(module: CyclicModuleRecord) {
749
+ // 1. Assert: module.[[Status]] is evaluating or evaluating-async.
750
+ Assert(module.Status === 'evaluating' || module.Status === 'evaluating-async');
751
+ // 2. Assert: module.[[HasTLA]] is true.
752
+ Assert(module.HasTLA === Value.true);
753
+ // 3. Let capability be ! NewPromiseCapability(%Promise%).
754
+ const capability = X(NewPromiseCapability(surroundingAgent.intrinsic('%Promise%')));
755
+ // 4. Let fulfilledClosure be a new Abstract Closure with no parameters that captures module and performs the following steps when called:
756
+ function* fulfilledClosure() {
757
+ // a. Perform ! AsyncModuleExecutionFulfilled(module).
758
+ X(yield* AsyncModuleExecutionFulfilled(module));
759
+ // b. Return undefined.
760
+ return Value.undefined;
761
+ }
762
+ // 5. Let onFulfilled be ! CreateBuiltinFunction(fulfilledClosure, 0, "", « »).
763
+ const onFulfilled = CreateBuiltinFunction(fulfilledClosure, 0, Value(''), ['Module']);
764
+ // 6. Let rejectedClosure be a new Abstract Closure with parameters (error) that captures module and performs the following steps when called:
765
+ const rejectedClosure = ([error = Value.undefined]: Arguments) => {
766
+ // a. Perform ! AsyncModuleExecutionRejected(module, error).
767
+ X(AsyncModuleExecutionRejected(module, error));
768
+ // b. Return undefined.
769
+ return Value.undefined;
770
+ };
771
+ // 7. Let onRejected be ! CreateBuiltinFunction(rejectedClosure, 0, "", « »).
772
+ const onRejected = CreateBuiltinFunction(rejectedClosure, 0, Value(''), ['Module']);
773
+ // 8. Perform ! PerformPromiseThen(capability.[[Promise]], onFulfilled, onRejected).
774
+ X(PerformPromiseThen(capability.Promise, onFulfilled, onRejected));
775
+ // 9. Perform ! module.ExecuteModule(capability).
776
+ X(yield* module.ExecuteModule(capability));
777
+ // 10. Return.
778
+ return Value.undefined;
779
+ }
780
+
781
+ /** https://tc39.es/ecma262/#sec-gather-available-ancestors */
782
+ function GatherAvailableAncestors(module: CyclicModuleRecord, execList: CyclicModuleRecord[]) {
783
+ // 1. For each Cyclic Module Record m of module.[[AsyncParentModules]], do
784
+ for (const m of module.AsyncParentModules) {
785
+ // a. If execList does not contain m and m.[[CycleRoot]].[[EvaluationError]] is empty, then
786
+ if (!execList.includes(m) && m.CycleRoot!.EvaluationError === undefined) {
787
+ // i. Assert: m.[[Status]] is evaluating-async.
788
+ Assert(m.Status === 'evaluating-async');
789
+ // ii. Assert: m.[[EvaluationError]] is empty.
790
+ Assert(m.EvaluationError === undefined);
791
+ // iii. Assert: m.[[AsyncEvaluationOrder]] is an integer.
792
+ Assert(typeof m.AsyncEvaluationOrder === 'number');
793
+ // iv. Assert: m.[[PendingAsyncDependencies]] > 0.
794
+ Assert(m.PendingAsyncDependencies! > 0);
795
+ // v. Set m.[[PendingAsyncDependencies]] to m.[[PendingAsyncDependencies]] - 1.
796
+ m.PendingAsyncDependencies! -= 1;
797
+ // vi. If m.[[PendingAsyncDependencies]] = 0, then
798
+ if (m.PendingAsyncDependencies === 0) {
799
+ // 1. Append m to execList.
800
+ execList.push(m);
801
+ // 2. If m.[[HasTLA]] is false, perform GatherAvailableAncestors(m, execList).
802
+ if (m.HasTLA === Value.false) {
803
+ GatherAvailableAncestors(m, execList);
804
+ }
805
+ }
806
+ }
807
+ }
808
+ // 2. Return unused.
809
+ }
810
+
811
+ /** https://tc39.es/ecma262/#sec-async-module-execution-fulfilled */
812
+ function* AsyncModuleExecutionFulfilled(module: CyclicModuleRecord): PlainEvaluator {
813
+ // 1. If module.[[Status]] is evaluated, then
814
+ if (module.Status === 'evaluated') {
815
+ // a. Assert: module.[[EvaluationError]] is not empty.
816
+ Assert(module.EvaluationError !== undefined);
817
+ // b. Return unused.
818
+ return;
819
+ }
820
+ // 2. Assert: module.[[Status]] is evaluating-async.
821
+ Assert(module.Status === 'evaluating-async');
822
+ // 3. Assert: module.[[AsyncEvaluationOrder]] is an integer.
823
+ Assert(typeof module.AsyncEvaluationOrder === 'number');
824
+ // 4. Assert: module.[[EvaluationError]] is empty.
825
+ Assert(module.EvaluationError === undefined);
826
+ // 5. Set module.[[AsyncEvaluationOrder]] to done.
827
+ module.AsyncEvaluationOrder = 'done';
828
+ // 6. Set module.[[Status]] to evaluated.
829
+ module.Status = 'evaluated';
830
+ // 7. If module.[[TopLevelCapability]] is not empty, then
831
+ if (module.TopLevelCapability !== undefined) {
832
+ // a. Assert: module.[[CycleRoot]] is module.
833
+ Assert(module.CycleRoot === module);
834
+ // b. Perform ! Call(module.[[TopLevelCapability]].[[Resolve]], undefined, « undefined »).
835
+ X(Call(module.TopLevelCapability.Resolve, Value.undefined, [Value.undefined]));
836
+ }
837
+ // 8. Let execList be a new empty List.
838
+ const execList: CyclicModuleRecord[] = [];
839
+ // 9. Perform GatherAvailableAncestors(module, execList).
840
+ GatherAvailableAncestors(module, execList);
841
+ // 10. Let sortedExecList be a List whose elements are the elements of execList,
842
+ // in the order in which they had their [[AsyncEvaluationOrder]] field set.
843
+ const sortedExecList = execList.toSorted((m1, m2) => (m1.AsyncEvaluationOrder as number) - (m2.AsyncEvaluationOrder as number));
844
+ // 11. Assert: All elements of sortedExecList have their [[AsyncEvaluationOrder]] field set
845
+ // to an integer, [[PendingAsyncDependencies]] field set to 0, and [[EvaluationError]]
846
+ // field set to empty.
847
+ Assert(execList.every((m) => typeof m.AsyncEvaluationOrder === 'number' && m.PendingAsyncDependencies === 0 && m.EvaluationError === undefined));
848
+ // 12. For each Cyclic Module Record m of sortedExecList, do
849
+ for (const m of sortedExecList) {
850
+ // a. If m.[[Status]] is evaluated, then
851
+ if (m.Status === 'evaluated') {
852
+ // i. Assert: m.[[EvaluationError]] is not empty.
853
+ Assert(m.EvaluationError !== undefined);
854
+ } else if (m.HasTLA === Value.true) { // b. Else if m.[[HasTLA]] is true, then
855
+ // i. Perform ExecuteAsyncModule(m).
856
+ X(yield* ExecuteAsyncModule(m));
857
+ } else { // c. Else,
858
+ // i. Let result be m.ExecuteModule().
859
+ const result = yield* m.ExecuteModule();
860
+ // ii. If result is an abrupt completion, then
861
+ if (result instanceof AbruptCompletion) {
862
+ // 1. Perform AsyncModuleExecutionRejected(m, result.[[Value]]).
863
+ X(AsyncModuleExecutionRejected(m, result.Value));
864
+ } else { // iii. Else,
865
+ // 1. Set m.[[AsyncEvaluationOrder]] to done.
866
+ m.AsyncEvaluationOrder = 'done';
867
+ // 2. Set m.[[Status]] to evaluated.
868
+ m.Status = 'evaluated';
869
+ // 3. If m.[[TopLevelCapability]] is not empty, then
870
+ if (m.TopLevelCapability !== undefined) {
871
+ // a. Assert: m.[[CycleRoot]] is m.
872
+ Assert(m.CycleRoot === m);
873
+ // b. Perform ! Call(m.[[TopLevelCapability]].[[Resolve]], undefined, « undefined »).
874
+ X(Call(m.TopLevelCapability.Resolve, Value.undefined, [Value.undefined]));
875
+ }
876
+ }
877
+ }
878
+ }
879
+ // 13. Return unused.
880
+ }
881
+
882
+ /** https://tc39.es/ecma262/#sec-AsyncModuleExecutionRejected */
883
+ function AsyncModuleExecutionRejected(module: CyclicModuleRecord, error: Value) {
884
+ // 1. If module.[[Status]] is evaluated, then
885
+ if (module.Status === 'evaluated') {
886
+ // a. Assert: module.[[EvaluationError]] is not empty.
887
+ Assert(module.EvaluationError !== undefined);
888
+ // b. Return unused.
889
+ return;
890
+ }
891
+ // 2. Assert: module.[[Status]] is evaluating-async.
892
+ Assert(module.Status === 'evaluating-async');
893
+ // 3. Assert: module.[[AsyncEvaluationOrder]] is an integer.
894
+ Assert(typeof module.AsyncEvaluationOrder === 'number');
895
+ // 4. Assert: module.[[EvaluationError]] is empty.
896
+ Assert(module.EvaluationError === undefined);
897
+ // 5. Set module.[[EvaluationError]] to ThrowCompletion(error).
898
+ module.EvaluationError = ThrowCompletion(error);
899
+ // 6. Set module.[[Status]] to evaluated.
900
+ module.Status = 'evaluated';
901
+ // 7. Set module.[[AsyncEvaluationOrder]] to done.
902
+ module.AsyncEvaluationOrder = 'done';
903
+ // 8. If module.[[TopLevelCapability]] is not empty, then
904
+ if (module.TopLevelCapability !== undefined) {
905
+ // a. Assert: module.[[CycleRoot]] is module.
906
+ Assert(module.CycleRoot === module);
907
+ // b. Perform ! Call(module.[[TopLevelCapability]].[[Reject]], undefined, « error »).
908
+ X(Call(module.TopLevelCapability.Reject, Value.undefined, [error]));
909
+ }
910
+ // 9. For each Cyclic Module Record m of module.[[AsyncParentModules]], do
911
+ for (const m of module.AsyncParentModules) {
912
+ // a. Perform AsyncModuleExecutionRejected(m, error).
913
+ AsyncModuleExecutionRejected(m, error);
914
+ }
915
+ // 10. Return unused.
916
+ }
917
+
918
+ function getRecordWithSpecifier(loadedModules: CyclicModuleRecord['LoadedModules'], request: ModuleRequestRecord) {
919
+ const records = loadedModules.filter((r) => ModuleRequestsKeyEqual(r, request));
920
+ Assert(records.length <= 1);
921
+ return records.length === 1 ? records[0] : undefined;
922
+ }
923
+
924
+ /** https://tc39.es/ecma262/#sec-GetImportedModule */
925
+ export function GetImportedModule(referrer: CyclicModuleRecord, request: ModuleRequestRecord) {
926
+ const record = getRecordWithSpecifier(referrer.LoadedModules, request);
927
+ Assert(record !== undefined);
928
+ return record.Module;
929
+ }
930
+
931
+ /** https://tc39.es/ecma262/#sec-FinishLoadingImportedModule */
932
+ export function FinishLoadingImportedModule(referrer: ScriptRecord | CyclicModuleRecord | Realm, moduleRequest: ModuleRequestRecord, payload: HostLoadImportedModulePayloadOpaque, result: PlainCompletion<AbstractModuleRecord>) {
933
+ const payload_ = payload.data;
934
+ result = EnsureCompletion(result);
935
+ // 1. If result is a normal completion, then
936
+ if (result.Type === 'normal') {
937
+ // a. If referrer.[[LoadedModules]] contains a LoadedModuleRequest Record record such that ModuleRequestsKeyEqual(record, moduleRequest) is true, then
938
+ const record = getRecordWithSpecifier(referrer.LoadedModules, moduleRequest);
939
+ if (record !== undefined) {
940
+ // i. Assert: That Record's [[Module]] is result.[[Value]].
941
+ Assert(record.Module === result.Value);
942
+ } else { // b. Else,
943
+ // i. Append the LoadedModuleRequest Record { [[Specifier]]: moduleRequest.[[Specifier]], [[Attributes]]: moduleRequest.[[Attributes]], [[Module]]: result.[[Value]] } to referrer.[[LoadedModules]].
944
+ referrer.LoadedModules.push({ Specifier: moduleRequest.Specifier, Attributes: moduleRequest.Attributes, Module: result.Value });
945
+ }
946
+ }
947
+ // 2. If payload is a GraphLoadingState Record, then
948
+ if (payload_ instanceof GraphLoadingState) {
949
+ // a. Perform ContinueModuleLoading(payload, result, moduleRequest.[[ImportedNames]], moduleRequest.[[Phase]]).
950
+ ContinueModuleLoading(payload_, result, moduleRequest.ImportedNames, moduleRequest.Phase);
951
+ } else { // 3. Else,
952
+ // a. Perform ContinueDynamicImport(payload, moduleRequest.[[Phase]], result).
953
+ ContinueDynamicImport(payload_, moduleRequest.Phase, result);
954
+ }
955
+ // 4. Return unused.
956
+ }
957
+
958
+ /** https://tc39.es/ecma262/#sec-AllImportAttributesSupported */
959
+ export function AllImportAttributesSupported(attributes: readonly ImportAttributeRecord[]) {
960
+ // Note: This function is meant to return a boolean. Instead, we return:
961
+ // - instead of *false*, the key of the unsupported attribute
962
+ // - instead of *true*, undefined
963
+
964
+ const supported: readonly string[] = HostGetSupportedImportAttributes();
965
+ for (const attribute of attributes) {
966
+ if (!supported.includes(attribute.Key)) {
967
+ return attribute.Key;
968
+ }
969
+ }
970
+ return undefined;
971
+ }
972
+
973
+ /** https://tc39.es/ecma262/#sec-getmodulenamespace */
974
+ export function GetModuleNamespace(
975
+ module: AbstractModuleRecord,
976
+ phase: 'defer' | 'evaluation',
977
+ importedNames: 'all' | readonly string[] = 'all',
978
+ ): ObjectValue {
979
+ if (module instanceof CyclicModuleRecord) {
980
+ Assert(module.Status !== 'new' && module.Status !== 'unlinked');
981
+ }
982
+ let namespace;
983
+ if (importedNames === 'all') {
984
+ if (phase === 'defer') {
985
+ namespace = module.DeferredNamespace;
986
+ } else {
987
+ namespace = module.Namespace;
988
+ }
989
+ }
990
+ if (namespace === undefined) {
991
+ const exportedNames = module.GetExportedNames();
992
+ const unambiguousNames = [];
993
+ for (const name of exportedNames) {
994
+ if (importedNames === 'all' || importedNames.includes(name.stringValue())) {
995
+ if (phase !== 'defer' || name.stringValue() !== 'then') {
996
+ const resolution = module.ResolveExport(name);
997
+ if (resolution instanceof ResolvedBindingRecord) {
998
+ unambiguousNames.push(name);
999
+ }
1000
+ }
1001
+ }
1002
+ }
1003
+ namespace = ModuleNamespaceCreate(module, unambiguousNames, phase);
1004
+ if (importedNames === 'all') {
1005
+ if (phase === 'defer') {
1006
+ (module as Mutable<AbstractModuleRecord>).DeferredNamespace = namespace;
1007
+ } else {
1008
+ (module as Mutable<AbstractModuleRecord>).Namespace = namespace;
1009
+ }
1010
+ }
1011
+ }
1012
+ return namespace;
1013
+ }
1014
+
1015
+ /** https://tc39.es/ecma262/#sec-create-default-export-synthetic-module */
1016
+ export function CreateDefaultExportSyntheticModule(defaultExport: Value) {
1017
+ // 1. Let closure be the a Abstract Closure with parameters (module) that captures defaultExport and performs the following steps when called:
1018
+ const closure = function* closure(module: SyntheticModuleRecord): PlainEvaluator {
1019
+ // a. Return module.SetSyntheticExport("default", defaultExport).
1020
+ Q(yield* module.SetSyntheticExport(Value('default'), defaultExport));
1021
+ return NormalCompletion(undefined);
1022
+ };
1023
+ return new SyntheticModuleRecord({
1024
+ Realm: surroundingAgent.currentRealmRecord,
1025
+ Environment: undefined,
1026
+ Namespace: undefined,
1027
+ ModuleSource: undefined,
1028
+ HostDefined: undefined,
1029
+ ExportNames: [Value('default')],
1030
+ EvaluationSteps: closure,
1031
+ });
1032
+ }
1033
+
1034
+ /** https://tc39.es/proposal-import-text/#sec-create-text-module */
1035
+ export function CreateTextModule(source: JSStringValue) {
1036
+ return CreateDefaultExportSyntheticModule(source);
1037
+ }
1038
+
1039
+ export function CreateBytesModule(arrayBuffer: ArrayBufferObject) {
1040
+ // TODO: immutable array buffer
1041
+ // 1. Assert: IsImmutableBuffer(arrayBuffer) is true.
1042
+ const uint8Array = X(Construct(surroundingAgent.intrinsic('%Uint8Array%'), [arrayBuffer]));
1043
+ return CreateDefaultExportSyntheticModule(uint8Array);
1044
+ }