@engine262/engine262 0.0.1-07c72085c73f960bcf0aa06db807321f3b446518

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 (941) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +179 -0
  3. package/bin/engine262.js +6 -0
  4. package/declaration/abstract-ops/all.d.mts +35 -0
  5. package/declaration/abstract-ops/all.d.mts.map +1 -0
  6. package/declaration/abstract-ops/arguments-operations.d.mts +17 -0
  7. package/declaration/abstract-ops/arguments-operations.d.mts.map +1 -0
  8. package/declaration/abstract-ops/array-objects.d.mts +23 -0
  9. package/declaration/abstract-ops/array-objects.d.mts.map +1 -0
  10. package/declaration/abstract-ops/arraybuffer-objects.d.mts +44 -0
  11. package/declaration/abstract-ops/arraybuffer-objects.d.mts.map +1 -0
  12. package/declaration/abstract-ops/async-function-operations.d.mts +9 -0
  13. package/declaration/abstract-ops/async-function-operations.d.mts.map +1 -0
  14. package/declaration/abstract-ops/async-generator-objects.d.mts +42 -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 +32 -0
  19. package/declaration/abstract-ops/dataview-objects.d.mts.map +1 -0
  20. package/declaration/abstract-ops/date-objects.d.mts +46 -0
  21. package/declaration/abstract-ops/date-objects.d.mts.map +1 -0
  22. package/declaration/abstract-ops/error-objects.d.mts +5 -0
  23. package/declaration/abstract-ops/error-objects.d.mts.map +1 -0
  24. package/declaration/abstract-ops/execution-contexts.d.mts +22 -0
  25. package/declaration/abstract-ops/execution-contexts.d.mts.map +1 -0
  26. package/declaration/abstract-ops/function-operations.d.mts +85 -0
  27. package/declaration/abstract-ops/function-operations.d.mts.map +1 -0
  28. package/declaration/abstract-ops/generator-operations.d.mts +37 -0
  29. package/declaration/abstract-ops/generator-operations.d.mts.map +1 -0
  30. package/declaration/abstract-ops/global-object.d.mts +7 -0
  31. package/declaration/abstract-ops/global-object.d.mts.map +1 -0
  32. package/declaration/abstract-ops/immutable-prototype-objects.d.mts +7 -0
  33. package/declaration/abstract-ops/immutable-prototype-objects.d.mts.map +1 -0
  34. package/declaration/abstract-ops/import-calls.d.mts +5 -0
  35. package/declaration/abstract-ops/import-calls.d.mts.map +1 -0
  36. package/declaration/abstract-ops/iterator-operations.d.mts +56 -0
  37. package/declaration/abstract-ops/iterator-operations.d.mts.map +1 -0
  38. package/declaration/abstract-ops/module-namespace-exotic-objects.d.mts +13 -0
  39. package/declaration/abstract-ops/module-namespace-exotic-objects.d.mts.map +1 -0
  40. package/declaration/abstract-ops/module-records.d.mts +34 -0
  41. package/declaration/abstract-ops/module-records.d.mts.map +1 -0
  42. package/declaration/abstract-ops/notational-conventions.d.mts +8 -0
  43. package/declaration/abstract-ops/notational-conventions.d.mts.map +1 -0
  44. package/declaration/abstract-ops/object-operations.d.mts +96 -0
  45. package/declaration/abstract-ops/object-operations.d.mts.map +1 -0
  46. package/declaration/abstract-ops/objects.d.mts +31 -0
  47. package/declaration/abstract-ops/objects.d.mts.map +1 -0
  48. package/declaration/abstract-ops/private-names.d.mts +36 -0
  49. package/declaration/abstract-ops/private-names.d.mts.map +1 -0
  50. package/declaration/abstract-ops/promise-operations.d.mts +62 -0
  51. package/declaration/abstract-ops/promise-operations.d.mts.map +1 -0
  52. package/declaration/abstract-ops/proxy-objects.d.mts +7 -0
  53. package/declaration/abstract-ops/proxy-objects.d.mts.map +1 -0
  54. package/declaration/abstract-ops/realms.d.mts +174 -0
  55. package/declaration/abstract-ops/realms.d.mts.map +1 -0
  56. package/declaration/abstract-ops/reference-operations.d.mts +27 -0
  57. package/declaration/abstract-ops/reference-operations.d.mts.map +1 -0
  58. package/declaration/abstract-ops/regexp-objects.d.mts +40 -0
  59. package/declaration/abstract-ops/regexp-objects.d.mts.map +1 -0
  60. package/declaration/abstract-ops/spec-types.d.mts +39 -0
  61. package/declaration/abstract-ops/spec-types.d.mts.map +1 -0
  62. package/declaration/abstract-ops/string-objects.d.mts +8 -0
  63. package/declaration/abstract-ops/string-objects.d.mts.map +1 -0
  64. package/declaration/abstract-ops/symbol-objects.d.mts +6 -0
  65. package/declaration/abstract-ops/symbol-objects.d.mts.map +1 -0
  66. package/declaration/abstract-ops/testing-comparison.d.mts +46 -0
  67. package/declaration/abstract-ops/testing-comparison.d.mts.map +1 -0
  68. package/declaration/abstract-ops/type-conversion.d.mts +55 -0
  69. package/declaration/abstract-ops/type-conversion.d.mts.map +1 -0
  70. package/declaration/abstract-ops/typedarray-objects.d.mts +33 -0
  71. package/declaration/abstract-ops/typedarray-objects.d.mts.map +1 -0
  72. package/declaration/abstract-ops/weak-operations.d.mts +16 -0
  73. package/declaration/abstract-ops/weak-operations.d.mts.map +1 -0
  74. package/declaration/api-types.d.mts +3 -0
  75. package/declaration/api-types.d.mts.map +1 -0
  76. package/declaration/api.d.mts +63 -0
  77. package/declaration/api.d.mts.map +1 -0
  78. package/declaration/completion.d.mts +163 -0
  79. package/declaration/completion.d.mts.map +1 -0
  80. package/declaration/engine.d.mts +143 -0
  81. package/declaration/engine.d.mts.map +1 -0
  82. package/declaration/environment.d.mts +209 -0
  83. package/declaration/environment.d.mts.map +1 -0
  84. package/declaration/evaluator.d.mts +14 -0
  85. package/declaration/evaluator.d.mts.map +1 -0
  86. package/declaration/helpers.d.mts +92 -0
  87. package/declaration/helpers.d.mts.map +1 -0
  88. package/declaration/inspect.d.mts +4 -0
  89. package/declaration/inspect.d.mts.map +1 -0
  90. package/declaration/intrinsics/AggregateError.d.mts +3 -0
  91. package/declaration/intrinsics/AggregateError.d.mts.map +1 -0
  92. package/declaration/intrinsics/AggregateErrorPrototype.d.mts +3 -0
  93. package/declaration/intrinsics/AggregateErrorPrototype.d.mts.map +1 -0
  94. package/declaration/intrinsics/Array.d.mts +3 -0
  95. package/declaration/intrinsics/Array.d.mts.map +1 -0
  96. package/declaration/intrinsics/ArrayBuffer.d.mts +3 -0
  97. package/declaration/intrinsics/ArrayBuffer.d.mts.map +1 -0
  98. package/declaration/intrinsics/ArrayBufferPrototype.d.mts +3 -0
  99. package/declaration/intrinsics/ArrayBufferPrototype.d.mts.map +1 -0
  100. package/declaration/intrinsics/ArrayIteratorPrototype.d.mts +3 -0
  101. package/declaration/intrinsics/ArrayIteratorPrototype.d.mts.map +1 -0
  102. package/declaration/intrinsics/ArrayPrototype.d.mts +3 -0
  103. package/declaration/intrinsics/ArrayPrototype.d.mts.map +1 -0
  104. package/declaration/intrinsics/ArrayPrototypeShared.d.mts +10 -0
  105. package/declaration/intrinsics/ArrayPrototypeShared.d.mts.map +1 -0
  106. package/declaration/intrinsics/AsyncFromSyncIteratorPrototype.d.mts +6 -0
  107. package/declaration/intrinsics/AsyncFromSyncIteratorPrototype.d.mts.map +1 -0
  108. package/declaration/intrinsics/AsyncFunction.d.mts +3 -0
  109. package/declaration/intrinsics/AsyncFunction.d.mts.map +1 -0
  110. package/declaration/intrinsics/AsyncFunctionPrototype.d.mts +3 -0
  111. package/declaration/intrinsics/AsyncFunctionPrototype.d.mts.map +1 -0
  112. package/declaration/intrinsics/AsyncGeneratorFunction.d.mts +3 -0
  113. package/declaration/intrinsics/AsyncGeneratorFunction.d.mts.map +1 -0
  114. package/declaration/intrinsics/AsyncGeneratorFunctionPrototype.d.mts +3 -0
  115. package/declaration/intrinsics/AsyncGeneratorFunctionPrototype.d.mts.map +1 -0
  116. package/declaration/intrinsics/AsyncGeneratorFunctionPrototypePrototype.d.mts +3 -0
  117. package/declaration/intrinsics/AsyncGeneratorFunctionPrototypePrototype.d.mts.map +1 -0
  118. package/declaration/intrinsics/AsyncIteratorPrototype.d.mts +3 -0
  119. package/declaration/intrinsics/AsyncIteratorPrototype.d.mts.map +1 -0
  120. package/declaration/intrinsics/BigInt.d.mts +8 -0
  121. package/declaration/intrinsics/BigInt.d.mts.map +1 -0
  122. package/declaration/intrinsics/BigIntPrototype.d.mts +3 -0
  123. package/declaration/intrinsics/BigIntPrototype.d.mts.map +1 -0
  124. package/declaration/intrinsics/Boolean.d.mts +8 -0
  125. package/declaration/intrinsics/Boolean.d.mts.map +1 -0
  126. package/declaration/intrinsics/BooleanPrototype.d.mts +3 -0
  127. package/declaration/intrinsics/BooleanPrototype.d.mts.map +1 -0
  128. package/declaration/intrinsics/DataView.d.mts +11 -0
  129. package/declaration/intrinsics/DataView.d.mts.map +1 -0
  130. package/declaration/intrinsics/DataViewPrototype.d.mts +3 -0
  131. package/declaration/intrinsics/DataViewPrototype.d.mts.map +1 -0
  132. package/declaration/intrinsics/Date.d.mts +7 -0
  133. package/declaration/intrinsics/Date.d.mts.map +1 -0
  134. package/declaration/intrinsics/DatePrototype.d.mts +10 -0
  135. package/declaration/intrinsics/DatePrototype.d.mts.map +1 -0
  136. package/declaration/intrinsics/Error.d.mts +3 -0
  137. package/declaration/intrinsics/Error.d.mts.map +1 -0
  138. package/declaration/intrinsics/ErrorPrototype.d.mts +3 -0
  139. package/declaration/intrinsics/ErrorPrototype.d.mts.map +1 -0
  140. package/declaration/intrinsics/FinalizationRegistry.d.mts +16 -0
  141. package/declaration/intrinsics/FinalizationRegistry.d.mts.map +1 -0
  142. package/declaration/intrinsics/FinalizationRegistryPrototype.d.mts +3 -0
  143. package/declaration/intrinsics/FinalizationRegistryPrototype.d.mts.map +1 -0
  144. package/declaration/intrinsics/ForInIteratorPrototype.d.mts +13 -0
  145. package/declaration/intrinsics/ForInIteratorPrototype.d.mts.map +1 -0
  146. package/declaration/intrinsics/Function.d.mts +3 -0
  147. package/declaration/intrinsics/Function.d.mts.map +1 -0
  148. package/declaration/intrinsics/FunctionPrototype.d.mts +10 -0
  149. package/declaration/intrinsics/FunctionPrototype.d.mts.map +1 -0
  150. package/declaration/intrinsics/GeneratorFunction.d.mts +3 -0
  151. package/declaration/intrinsics/GeneratorFunction.d.mts.map +1 -0
  152. package/declaration/intrinsics/GeneratorFunctionPrototype.d.mts +3 -0
  153. package/declaration/intrinsics/GeneratorFunctionPrototype.d.mts.map +1 -0
  154. package/declaration/intrinsics/GeneratorFunctionPrototypePrototype.d.mts +3 -0
  155. package/declaration/intrinsics/GeneratorFunctionPrototypePrototype.d.mts.map +1 -0
  156. package/declaration/intrinsics/IteratorPrototype.d.mts +3 -0
  157. package/declaration/intrinsics/IteratorPrototype.d.mts.map +1 -0
  158. package/declaration/intrinsics/JSON.d.mts +3 -0
  159. package/declaration/intrinsics/JSON.d.mts.map +1 -0
  160. package/declaration/intrinsics/Map.d.mts +12 -0
  161. package/declaration/intrinsics/Map.d.mts.map +1 -0
  162. package/declaration/intrinsics/MapIteratorPrototype.d.mts +7 -0
  163. package/declaration/intrinsics/MapIteratorPrototype.d.mts.map +1 -0
  164. package/declaration/intrinsics/MapPrototype.d.mts +3 -0
  165. package/declaration/intrinsics/MapPrototype.d.mts.map +1 -0
  166. package/declaration/intrinsics/Math.d.mts +4 -0
  167. package/declaration/intrinsics/Math.d.mts.map +1 -0
  168. package/declaration/intrinsics/NativeError.d.mts +6 -0
  169. package/declaration/intrinsics/NativeError.d.mts.map +1 -0
  170. package/declaration/intrinsics/Number.d.mts +7 -0
  171. package/declaration/intrinsics/Number.d.mts.map +1 -0
  172. package/declaration/intrinsics/NumberPrototype.d.mts +3 -0
  173. package/declaration/intrinsics/NumberPrototype.d.mts.map +1 -0
  174. package/declaration/intrinsics/Object.d.mts +3 -0
  175. package/declaration/intrinsics/Object.d.mts.map +1 -0
  176. package/declaration/intrinsics/ObjectPrototype.d.mts +3 -0
  177. package/declaration/intrinsics/ObjectPrototype.d.mts.map +1 -0
  178. package/declaration/intrinsics/Promise.d.mts +12 -0
  179. package/declaration/intrinsics/Promise.d.mts.map +1 -0
  180. package/declaration/intrinsics/PromisePrototype.d.mts +3 -0
  181. package/declaration/intrinsics/PromisePrototype.d.mts.map +1 -0
  182. package/declaration/intrinsics/Proxy.d.mts +11 -0
  183. package/declaration/intrinsics/Proxy.d.mts.map +1 -0
  184. package/declaration/intrinsics/Reflect.d.mts +3 -0
  185. package/declaration/intrinsics/Reflect.d.mts.map +1 -0
  186. package/declaration/intrinsics/RegExp.d.mts +12 -0
  187. package/declaration/intrinsics/RegExp.d.mts.map +1 -0
  188. package/declaration/intrinsics/RegExpPrototype.d.mts +18 -0
  189. package/declaration/intrinsics/RegExpPrototype.d.mts.map +1 -0
  190. package/declaration/intrinsics/RegExpStringIteratorPrototype.d.mts +7 -0
  191. package/declaration/intrinsics/RegExpStringIteratorPrototype.d.mts.map +1 -0
  192. package/declaration/intrinsics/Set.d.mts +7 -0
  193. package/declaration/intrinsics/Set.d.mts.map +1 -0
  194. package/declaration/intrinsics/SetIteratorPrototype.d.mts +7 -0
  195. package/declaration/intrinsics/SetIteratorPrototype.d.mts.map +1 -0
  196. package/declaration/intrinsics/SetPrototype.d.mts +3 -0
  197. package/declaration/intrinsics/SetPrototype.d.mts.map +1 -0
  198. package/declaration/intrinsics/String.d.mts +9 -0
  199. package/declaration/intrinsics/String.d.mts.map +1 -0
  200. package/declaration/intrinsics/StringIteratorPrototype.d.mts +3 -0
  201. package/declaration/intrinsics/StringIteratorPrototype.d.mts.map +1 -0
  202. package/declaration/intrinsics/StringPrototype.d.mts +3 -0
  203. package/declaration/intrinsics/StringPrototype.d.mts.map +1 -0
  204. package/declaration/intrinsics/Symbol.d.mts +12 -0
  205. package/declaration/intrinsics/Symbol.d.mts.map +1 -0
  206. package/declaration/intrinsics/SymbolPrototype.d.mts +3 -0
  207. package/declaration/intrinsics/SymbolPrototype.d.mts.map +1 -0
  208. package/declaration/intrinsics/ThrowTypeError.d.mts +3 -0
  209. package/declaration/intrinsics/ThrowTypeError.d.mts.map +1 -0
  210. package/declaration/intrinsics/TypedArray.d.mts +181 -0
  211. package/declaration/intrinsics/TypedArray.d.mts.map +1 -0
  212. package/declaration/intrinsics/TypedArrayConstructors.d.mts +3 -0
  213. package/declaration/intrinsics/TypedArrayConstructors.d.mts.map +1 -0
  214. package/declaration/intrinsics/TypedArrayPrototype.d.mts +3 -0
  215. package/declaration/intrinsics/TypedArrayPrototype.d.mts.map +1 -0
  216. package/declaration/intrinsics/TypedArrayPrototypes.d.mts +4 -0
  217. package/declaration/intrinsics/TypedArrayPrototypes.d.mts.map +1 -0
  218. package/declaration/intrinsics/URIHandling.d.mts +3 -0
  219. package/declaration/intrinsics/URIHandling.d.mts.map +1 -0
  220. package/declaration/intrinsics/WeakMap.d.mts +11 -0
  221. package/declaration/intrinsics/WeakMap.d.mts.map +1 -0
  222. package/declaration/intrinsics/WeakMapPrototype.d.mts +3 -0
  223. package/declaration/intrinsics/WeakMapPrototype.d.mts.map +1 -0
  224. package/declaration/intrinsics/WeakRef.d.mts +8 -0
  225. package/declaration/intrinsics/WeakRef.d.mts.map +1 -0
  226. package/declaration/intrinsics/WeakRefPrototype.d.mts +3 -0
  227. package/declaration/intrinsics/WeakRefPrototype.d.mts.map +1 -0
  228. package/declaration/intrinsics/WeakSet.d.mts +8 -0
  229. package/declaration/intrinsics/WeakSet.d.mts.map +1 -0
  230. package/declaration/intrinsics/WeakSetPrototype.d.mts +3 -0
  231. package/declaration/intrinsics/WeakSetPrototype.d.mts.map +1 -0
  232. package/declaration/intrinsics/bootstrap.d.mts +14 -0
  233. package/declaration/intrinsics/bootstrap.d.mts.map +1 -0
  234. package/declaration/intrinsics/eval.d.mts +3 -0
  235. package/declaration/intrinsics/eval.d.mts.map +1 -0
  236. package/declaration/intrinsics/isFinite.d.mts +3 -0
  237. package/declaration/intrinsics/isFinite.d.mts.map +1 -0
  238. package/declaration/intrinsics/isNaN.d.mts +3 -0
  239. package/declaration/intrinsics/isNaN.d.mts.map +1 -0
  240. package/declaration/intrinsics/parseFloat.d.mts +3 -0
  241. package/declaration/intrinsics/parseFloat.d.mts.map +1 -0
  242. package/declaration/intrinsics/parseInt.d.mts +3 -0
  243. package/declaration/intrinsics/parseInt.d.mts.map +1 -0
  244. package/declaration/messages.d.mts +160 -0
  245. package/declaration/messages.d.mts.map +1 -0
  246. package/declaration/modules.d.mts +115 -0
  247. package/declaration/modules.d.mts.map +1 -0
  248. package/declaration/parse.d.mts +34 -0
  249. package/declaration/parse.d.mts.map +1 -0
  250. package/declaration/parser/BaseParser.d.mts +24 -0
  251. package/declaration/parser/BaseParser.d.mts.map +1 -0
  252. package/declaration/parser/ExpressionParser.d.mts +52 -0
  253. package/declaration/parser/ExpressionParser.d.mts.map +1 -0
  254. package/declaration/parser/FunctionParser.d.mts +43 -0
  255. package/declaration/parser/FunctionParser.d.mts.map +1 -0
  256. package/declaration/parser/IdentifierParser.d.mts +12 -0
  257. package/declaration/parser/IdentifierParser.d.mts.map +1 -0
  258. package/declaration/parser/LanguageParser.d.mts +10 -0
  259. package/declaration/parser/LanguageParser.d.mts.map +1 -0
  260. package/declaration/parser/Lexer.d.mts +71 -0
  261. package/declaration/parser/Lexer.d.mts.map +1 -0
  262. package/declaration/parser/ModuleParser.d.mts +16 -0
  263. package/declaration/parser/ModuleParser.d.mts.map +1 -0
  264. package/declaration/parser/ParseNode.d.mts +976 -0
  265. package/declaration/parser/ParseNode.d.mts.map +1 -0
  266. package/declaration/parser/Parser.d.mts +32 -0
  267. package/declaration/parser/Parser.d.mts.map +1 -0
  268. package/declaration/parser/RegExpParser.d.mts +46 -0
  269. package/declaration/parser/RegExpParser.d.mts.map +1 -0
  270. package/declaration/parser/Scope.d.mts +106 -0
  271. package/declaration/parser/Scope.d.mts.map +1 -0
  272. package/declaration/parser/StatementParser.d.mts +49 -0
  273. package/declaration/parser/StatementParser.d.mts.map +1 -0
  274. package/declaration/parser/tokens.d.mts +32 -0
  275. package/declaration/parser/tokens.d.mts.map +1 -0
  276. package/declaration/runtime-semantics/AdditiveExpression.d.mts +3 -0
  277. package/declaration/runtime-semantics/AdditiveExpression.d.mts.map +1 -0
  278. package/declaration/runtime-semantics/ApplyStringOrNumericBinaryOperator.d.mts +11 -0
  279. package/declaration/runtime-semantics/ApplyStringOrNumericBinaryOperator.d.mts.map +1 -0
  280. package/declaration/runtime-semantics/ArgumentListEvaluation.d.mts +6 -0
  281. package/declaration/runtime-semantics/ArgumentListEvaluation.d.mts.map +1 -0
  282. package/declaration/runtime-semantics/ArrayLiteral.d.mts +5 -0
  283. package/declaration/runtime-semantics/ArrayLiteral.d.mts.map +1 -0
  284. package/declaration/runtime-semantics/ArrowFunction.d.mts +4 -0
  285. package/declaration/runtime-semantics/ArrowFunction.d.mts.map +1 -0
  286. package/declaration/runtime-semantics/AssignmentExpression.d.mts +14 -0
  287. package/declaration/runtime-semantics/AssignmentExpression.d.mts.map +1 -0
  288. package/declaration/runtime-semantics/AsyncArrowFunction.d.mts +4 -0
  289. package/declaration/runtime-semantics/AsyncArrowFunction.d.mts.map +1 -0
  290. package/declaration/runtime-semantics/AsyncFunctionExpression.d.mts +4 -0
  291. package/declaration/runtime-semantics/AsyncFunctionExpression.d.mts.map +1 -0
  292. package/declaration/runtime-semantics/AsyncGeneratorExpression.d.mts +4 -0
  293. package/declaration/runtime-semantics/AsyncGeneratorExpression.d.mts.map +1 -0
  294. package/declaration/runtime-semantics/AwaitExpression.d.mts +5 -0
  295. package/declaration/runtime-semantics/AwaitExpression.d.mts.map +1 -0
  296. package/declaration/runtime-semantics/BindingInitialization.d.mts +8 -0
  297. package/declaration/runtime-semantics/BindingInitialization.d.mts.map +1 -0
  298. package/declaration/runtime-semantics/BitwiseOperators.d.mts +5 -0
  299. package/declaration/runtime-semantics/BitwiseOperators.d.mts.map +1 -0
  300. package/declaration/runtime-semantics/Block.d.mts +20 -0
  301. package/declaration/runtime-semantics/Block.d.mts.map +1 -0
  302. package/declaration/runtime-semantics/BreakStatement.d.mts +4 -0
  303. package/declaration/runtime-semantics/BreakStatement.d.mts.map +1 -0
  304. package/declaration/runtime-semantics/BreakableStatement.d.mts +4 -0
  305. package/declaration/runtime-semantics/BreakableStatement.d.mts.map +1 -0
  306. package/declaration/runtime-semantics/CallExpression.d.mts +5 -0
  307. package/declaration/runtime-semantics/CallExpression.d.mts.map +1 -0
  308. package/declaration/runtime-semantics/ClassDeclaration.d.mts +8 -0
  309. package/declaration/runtime-semantics/ClassDeclaration.d.mts.map +1 -0
  310. package/declaration/runtime-semantics/ClassDefinitionEvaluation.d.mts +12 -0
  311. package/declaration/runtime-semantics/ClassDefinitionEvaluation.d.mts.map +1 -0
  312. package/declaration/runtime-semantics/ClassExpression.d.mts +5 -0
  313. package/declaration/runtime-semantics/ClassExpression.d.mts.map +1 -0
  314. package/declaration/runtime-semantics/ClassFieldDefinitionEvaluation.d.mts +10 -0
  315. package/declaration/runtime-semantics/ClassFieldDefinitionEvaluation.d.mts.map +1 -0
  316. package/declaration/runtime-semantics/ClassStaticBlockDefinitionEvaluation.d.mts +10 -0
  317. package/declaration/runtime-semantics/ClassStaticBlockDefinitionEvaluation.d.mts.map +1 -0
  318. package/declaration/runtime-semantics/CoalesceExpression.d.mts +5 -0
  319. package/declaration/runtime-semantics/CoalesceExpression.d.mts.map +1 -0
  320. package/declaration/runtime-semantics/CommaOperator.d.mts +5 -0
  321. package/declaration/runtime-semantics/CommaOperator.d.mts.map +1 -0
  322. package/declaration/runtime-semantics/ConditionalExpression.d.mts +5 -0
  323. package/declaration/runtime-semantics/ConditionalExpression.d.mts.map +1 -0
  324. package/declaration/runtime-semantics/ContinueStatement.d.mts +4 -0
  325. package/declaration/runtime-semantics/ContinueStatement.d.mts.map +1 -0
  326. package/declaration/runtime-semantics/CreateDynamicFunction.d.mts +10 -0
  327. package/declaration/runtime-semantics/CreateDynamicFunction.d.mts.map +1 -0
  328. package/declaration/runtime-semantics/DebuggerStatement.d.mts +5 -0
  329. package/declaration/runtime-semantics/DebuggerStatement.d.mts.map +1 -0
  330. package/declaration/runtime-semantics/DefineMethod.d.mts +10 -0
  331. package/declaration/runtime-semantics/DefineMethod.d.mts.map +1 -0
  332. package/declaration/runtime-semantics/DestructuringAssignmentEvaluation.d.mts +5 -0
  333. package/declaration/runtime-semantics/DestructuringAssignmentEvaluation.d.mts.map +1 -0
  334. package/declaration/runtime-semantics/EmptyStatement.d.mts +5 -0
  335. package/declaration/runtime-semantics/EmptyStatement.d.mts.map +1 -0
  336. package/declaration/runtime-semantics/EqualityExpression.d.mts +5 -0
  337. package/declaration/runtime-semantics/EqualityExpression.d.mts.map +1 -0
  338. package/declaration/runtime-semantics/EvaluateBody.d.mts +69 -0
  339. package/declaration/runtime-semantics/EvaluateBody.d.mts.map +1 -0
  340. package/declaration/runtime-semantics/EvaluateCall.d.mts +11 -0
  341. package/declaration/runtime-semantics/EvaluateCall.d.mts.map +1 -0
  342. package/declaration/runtime-semantics/EvaluatePropertyAccess.d.mts +9 -0
  343. package/declaration/runtime-semantics/EvaluatePropertyAccess.d.mts.map +1 -0
  344. package/declaration/runtime-semantics/EvaluateStringOrNumericBinaryExpression.d.mts +6 -0
  345. package/declaration/runtime-semantics/EvaluateStringOrNumericBinaryExpression.d.mts.map +1 -0
  346. package/declaration/runtime-semantics/ExponentiationExpression.d.mts +5 -0
  347. package/declaration/runtime-semantics/ExponentiationExpression.d.mts.map +1 -0
  348. package/declaration/runtime-semantics/ExportDeclaration.d.mts +17 -0
  349. package/declaration/runtime-semantics/ExportDeclaration.d.mts.map +1 -0
  350. package/declaration/runtime-semantics/ExpressionStatement.d.mts +5 -0
  351. package/declaration/runtime-semantics/ExpressionStatement.d.mts.map +1 -0
  352. package/declaration/runtime-semantics/FunctionDeclaration.d.mts +5 -0
  353. package/declaration/runtime-semantics/FunctionDeclaration.d.mts.map +1 -0
  354. package/declaration/runtime-semantics/FunctionDeclarationInstantiation.d.mts +6 -0
  355. package/declaration/runtime-semantics/FunctionDeclarationInstantiation.d.mts.map +1 -0
  356. package/declaration/runtime-semantics/FunctionExpression.d.mts +4 -0
  357. package/declaration/runtime-semantics/FunctionExpression.d.mts.map +1 -0
  358. package/declaration/runtime-semantics/FunctionStatementList.d.mts +15 -0
  359. package/declaration/runtime-semantics/FunctionStatementList.d.mts.map +1 -0
  360. package/declaration/runtime-semantics/GeneratorExpression.d.mts +4 -0
  361. package/declaration/runtime-semantics/GeneratorExpression.d.mts.map +1 -0
  362. package/declaration/runtime-semantics/GetSubstitution.d.mts +5 -0
  363. package/declaration/runtime-semantics/GetSubstitution.d.mts.map +1 -0
  364. package/declaration/runtime-semantics/GlobalDeclarationInstantiation.d.mts +12 -0
  365. package/declaration/runtime-semantics/GlobalDeclarationInstantiation.d.mts.map +1 -0
  366. package/declaration/runtime-semantics/HoistableDeclaration.d.mts +5 -0
  367. package/declaration/runtime-semantics/HoistableDeclaration.d.mts.map +1 -0
  368. package/declaration/runtime-semantics/IdentifierReference.d.mts +6 -0
  369. package/declaration/runtime-semantics/IdentifierReference.d.mts.map +1 -0
  370. package/declaration/runtime-semantics/IfStatement.d.mts +17 -0
  371. package/declaration/runtime-semantics/IfStatement.d.mts.map +1 -0
  372. package/declaration/runtime-semantics/ImportCall.d.mts +6 -0
  373. package/declaration/runtime-semantics/ImportCall.d.mts.map +1 -0
  374. package/declaration/runtime-semantics/ImportDeclaration.d.mts +5 -0
  375. package/declaration/runtime-semantics/ImportDeclaration.d.mts.map +1 -0
  376. package/declaration/runtime-semantics/ImportMeta.d.mts +5 -0
  377. package/declaration/runtime-semantics/ImportMeta.d.mts.map +1 -0
  378. package/declaration/runtime-semantics/InstantiateArrowFunctionExpression.d.mts +5 -0
  379. package/declaration/runtime-semantics/InstantiateArrowFunctionExpression.d.mts.map +1 -0
  380. package/declaration/runtime-semantics/InstantiateAsyncArrowFunctionExpression.d.mts +5 -0
  381. package/declaration/runtime-semantics/InstantiateAsyncArrowFunctionExpression.d.mts.map +1 -0
  382. package/declaration/runtime-semantics/InstantiateAsyncFunctionExpression.d.mts +5 -0
  383. package/declaration/runtime-semantics/InstantiateAsyncFunctionExpression.d.mts.map +1 -0
  384. package/declaration/runtime-semantics/InstantiateAsyncGeneratorFunctionExpression.d.mts +5 -0
  385. package/declaration/runtime-semantics/InstantiateAsyncGeneratorFunctionExpression.d.mts.map +1 -0
  386. package/declaration/runtime-semantics/InstantiateFunctionObject.d.mts +12 -0
  387. package/declaration/runtime-semantics/InstantiateFunctionObject.d.mts.map +1 -0
  388. package/declaration/runtime-semantics/InstantiateGeneratorFunctionExpression.d.mts +5 -0
  389. package/declaration/runtime-semantics/InstantiateGeneratorFunctionExpression.d.mts.map +1 -0
  390. package/declaration/runtime-semantics/InstantiateOrdinaryFunctionExpression.d.mts +5 -0
  391. package/declaration/runtime-semantics/InstantiateOrdinaryFunctionExpression.d.mts.map +1 -0
  392. package/declaration/runtime-semantics/IteratorBindingInitialization.d.mts +9 -0
  393. package/declaration/runtime-semantics/IteratorBindingInitialization.d.mts.map +1 -0
  394. package/declaration/runtime-semantics/KeyedBindingInitialization.d.mts +6 -0
  395. package/declaration/runtime-semantics/KeyedBindingInitialization.d.mts.map +1 -0
  396. package/declaration/runtime-semantics/LabelledEvaluation.d.mts +9 -0
  397. package/declaration/runtime-semantics/LabelledEvaluation.d.mts.map +1 -0
  398. package/declaration/runtime-semantics/LabelledStatement.d.mts +4 -0
  399. package/declaration/runtime-semantics/LabelledStatement.d.mts.map +1 -0
  400. package/declaration/runtime-semantics/LexicalDeclaration.d.mts +10 -0
  401. package/declaration/runtime-semantics/LexicalDeclaration.d.mts.map +1 -0
  402. package/declaration/runtime-semantics/Literal.d.mts +6 -0
  403. package/declaration/runtime-semantics/Literal.d.mts.map +1 -0
  404. package/declaration/runtime-semantics/LogicalANDExpression.d.mts +5 -0
  405. package/declaration/runtime-semantics/LogicalANDExpression.d.mts.map +1 -0
  406. package/declaration/runtime-semantics/LogicalORExpression.d.mts +5 -0
  407. package/declaration/runtime-semantics/LogicalORExpression.d.mts.map +1 -0
  408. package/declaration/runtime-semantics/MV.d.mts +3 -0
  409. package/declaration/runtime-semantics/MV.d.mts.map +1 -0
  410. package/declaration/runtime-semantics/MemberExpression.d.mts +7 -0
  411. package/declaration/runtime-semantics/MemberExpression.d.mts.map +1 -0
  412. package/declaration/runtime-semantics/MethodDefinitionEvaluation.d.mts +16 -0
  413. package/declaration/runtime-semantics/MethodDefinitionEvaluation.d.mts.map +1 -0
  414. package/declaration/runtime-semantics/Module.d.mts +17 -0
  415. package/declaration/runtime-semantics/Module.d.mts.map +1 -0
  416. package/declaration/runtime-semantics/ModuleBody.d.mts +15 -0
  417. package/declaration/runtime-semantics/ModuleBody.d.mts.map +1 -0
  418. package/declaration/runtime-semantics/MultiplicativeExpression.d.mts +5 -0
  419. package/declaration/runtime-semantics/MultiplicativeExpression.d.mts.map +1 -0
  420. package/declaration/runtime-semantics/NamedEvaluation.d.mts +4 -0
  421. package/declaration/runtime-semantics/NamedEvaluation.d.mts.map +1 -0
  422. package/declaration/runtime-semantics/NewExpression.d.mts +5 -0
  423. package/declaration/runtime-semantics/NewExpression.d.mts.map +1 -0
  424. package/declaration/runtime-semantics/NewTarget.d.mts +3 -0
  425. package/declaration/runtime-semantics/NewTarget.d.mts.map +1 -0
  426. package/declaration/runtime-semantics/NumberToBigInt.d.mts +10 -0
  427. package/declaration/runtime-semantics/NumberToBigInt.d.mts.map +1 -0
  428. package/declaration/runtime-semantics/ObjectLiteral.d.mts +5 -0
  429. package/declaration/runtime-semantics/ObjectLiteral.d.mts.map +1 -0
  430. package/declaration/runtime-semantics/OptionalExpression.d.mts +5 -0
  431. package/declaration/runtime-semantics/OptionalExpression.d.mts.map +1 -0
  432. package/declaration/runtime-semantics/ParenthesizedExpression.d.mts +4 -0
  433. package/declaration/runtime-semantics/ParenthesizedExpression.d.mts.map +1 -0
  434. package/declaration/runtime-semantics/PropertyBindingInitialization.d.mts +6 -0
  435. package/declaration/runtime-semantics/PropertyBindingInitialization.d.mts.map +1 -0
  436. package/declaration/runtime-semantics/PropertyDefinitionEvaluation.d.mts +7 -0
  437. package/declaration/runtime-semantics/PropertyDefinitionEvaluation.d.mts.map +1 -0
  438. package/declaration/runtime-semantics/PropertyName.d.mts +6 -0
  439. package/declaration/runtime-semantics/PropertyName.d.mts.map +1 -0
  440. package/declaration/runtime-semantics/RegExp.d.mts +17 -0
  441. package/declaration/runtime-semantics/RegExp.d.mts.map +1 -0
  442. package/declaration/runtime-semantics/RegularExpressionLiteral.d.mts +4 -0
  443. package/declaration/runtime-semantics/RegularExpressionLiteral.d.mts.map +1 -0
  444. package/declaration/runtime-semantics/RelationalExpression.d.mts +26 -0
  445. package/declaration/runtime-semantics/RelationalExpression.d.mts.map +1 -0
  446. package/declaration/runtime-semantics/RestBindingInitialization.d.mts +5 -0
  447. package/declaration/runtime-semantics/RestBindingInitialization.d.mts.map +1 -0
  448. package/declaration/runtime-semantics/ReturnStatement.d.mts +6 -0
  449. package/declaration/runtime-semantics/ReturnStatement.d.mts.map +1 -0
  450. package/declaration/runtime-semantics/Script.d.mts +17 -0
  451. package/declaration/runtime-semantics/Script.d.mts.map +1 -0
  452. package/declaration/runtime-semantics/ScriptBody.d.mts +14 -0
  453. package/declaration/runtime-semantics/ScriptBody.d.mts.map +1 -0
  454. package/declaration/runtime-semantics/ShiftExpression.d.mts +7 -0
  455. package/declaration/runtime-semantics/ShiftExpression.d.mts.map +1 -0
  456. package/declaration/runtime-semantics/StatementList.d.mts +16 -0
  457. package/declaration/runtime-semantics/StatementList.d.mts.map +1 -0
  458. package/declaration/runtime-semantics/StringIndexOf.d.mts +3 -0
  459. package/declaration/runtime-semantics/StringIndexOf.d.mts.map +1 -0
  460. package/declaration/runtime-semantics/StringPad.d.mts +5 -0
  461. package/declaration/runtime-semantics/StringPad.d.mts.map +1 -0
  462. package/declaration/runtime-semantics/SuperCall.d.mts +11 -0
  463. package/declaration/runtime-semantics/SuperCall.d.mts.map +1 -0
  464. package/declaration/runtime-semantics/SuperProperty.d.mts +5 -0
  465. package/declaration/runtime-semantics/SuperProperty.d.mts.map +1 -0
  466. package/declaration/runtime-semantics/SwitchStatement.d.mts +20 -0
  467. package/declaration/runtime-semantics/SwitchStatement.d.mts.map +1 -0
  468. package/declaration/runtime-semantics/TaggedTemplateExpression.d.mts +5 -0
  469. package/declaration/runtime-semantics/TaggedTemplateExpression.d.mts.map +1 -0
  470. package/declaration/runtime-semantics/TemplateLiteral.d.mts +5 -0
  471. package/declaration/runtime-semantics/TemplateLiteral.d.mts.map +1 -0
  472. package/declaration/runtime-semantics/This.d.mts +5 -0
  473. package/declaration/runtime-semantics/This.d.mts.map +1 -0
  474. package/declaration/runtime-semantics/ThrowStatement.d.mts +10 -0
  475. package/declaration/runtime-semantics/ThrowStatement.d.mts.map +1 -0
  476. package/declaration/runtime-semantics/TrimString.d.mts +5 -0
  477. package/declaration/runtime-semantics/TrimString.d.mts.map +1 -0
  478. package/declaration/runtime-semantics/TryStatement.d.mts +16 -0
  479. package/declaration/runtime-semantics/TryStatement.d.mts.map +1 -0
  480. package/declaration/runtime-semantics/UnaryExpression.d.mts +4 -0
  481. package/declaration/runtime-semantics/UnaryExpression.d.mts.map +1 -0
  482. package/declaration/runtime-semantics/Unicode.d.mts +118 -0
  483. package/declaration/runtime-semantics/Unicode.d.mts.map +1 -0
  484. package/declaration/runtime-semantics/UpdateExpression.d.mts +4 -0
  485. package/declaration/runtime-semantics/UpdateExpression.d.mts.map +1 -0
  486. package/declaration/runtime-semantics/VariableStatement.d.mts +9 -0
  487. package/declaration/runtime-semantics/VariableStatement.d.mts.map +1 -0
  488. package/declaration/runtime-semantics/WithStatement.d.mts +16 -0
  489. package/declaration/runtime-semantics/WithStatement.d.mts.map +1 -0
  490. package/declaration/runtime-semantics/YieldExpression.d.mts +6 -0
  491. package/declaration/runtime-semantics/YieldExpression.d.mts.map +1 -0
  492. package/declaration/runtime-semantics/all.d.mts +109 -0
  493. package/declaration/runtime-semantics/all.d.mts.map +1 -0
  494. package/declaration/static-semantics/BodyText.d.mts +4 -0
  495. package/declaration/static-semantics/BodyText.d.mts.map +1 -0
  496. package/declaration/static-semantics/BoundNames.d.mts +4 -0
  497. package/declaration/static-semantics/BoundNames.d.mts.map +1 -0
  498. package/declaration/static-semantics/CharacterValue.d.mts +3 -0
  499. package/declaration/static-semantics/CharacterValue.d.mts.map +1 -0
  500. package/declaration/static-semantics/CodePointAt.d.mts +7 -0
  501. package/declaration/static-semantics/CodePointAt.d.mts.map +1 -0
  502. package/declaration/static-semantics/CodePointsToString.d.mts +3 -0
  503. package/declaration/static-semantics/CodePointsToString.d.mts.map +1 -0
  504. package/declaration/static-semantics/ConstructorMethod.d.mts +4 -0
  505. package/declaration/static-semantics/ConstructorMethod.d.mts.map +1 -0
  506. package/declaration/static-semantics/ContainsArguments.d.mts +4 -0
  507. package/declaration/static-semantics/ContainsArguments.d.mts.map +1 -0
  508. package/declaration/static-semantics/ContainsExpression.d.mts +3 -0
  509. package/declaration/static-semantics/ContainsExpression.d.mts.map +1 -0
  510. package/declaration/static-semantics/DeclarationPart.d.mts +3 -0
  511. package/declaration/static-semantics/DeclarationPart.d.mts.map +1 -0
  512. package/declaration/static-semantics/ExpectedArgumentCount.d.mts +3 -0
  513. package/declaration/static-semantics/ExpectedArgumentCount.d.mts.map +1 -0
  514. package/declaration/static-semantics/ExportEntries.d.mts +10 -0
  515. package/declaration/static-semantics/ExportEntries.d.mts.map +1 -0
  516. package/declaration/static-semantics/ExportEntriesForModule.d.mts +5 -0
  517. package/declaration/static-semantics/ExportEntriesForModule.d.mts.map +1 -0
  518. package/declaration/static-semantics/FlagText.d.mts +4 -0
  519. package/declaration/static-semantics/FlagText.d.mts.map +1 -0
  520. package/declaration/static-semantics/HasInitializer.d.mts +5 -0
  521. package/declaration/static-semantics/HasInitializer.d.mts.map +1 -0
  522. package/declaration/static-semantics/HasName.d.mts +3 -0
  523. package/declaration/static-semantics/HasName.d.mts.map +1 -0
  524. package/declaration/static-semantics/ImportEntries.d.mts +9 -0
  525. package/declaration/static-semantics/ImportEntries.d.mts.map +1 -0
  526. package/declaration/static-semantics/ImportEntriesForModule.d.mts +5 -0
  527. package/declaration/static-semantics/ImportEntriesForModule.d.mts.map +1 -0
  528. package/declaration/static-semantics/ImportedLocalNames.d.mts +4 -0
  529. package/declaration/static-semantics/ImportedLocalNames.d.mts.map +1 -0
  530. package/declaration/static-semantics/IsAnonymousFunctionDefinition.d.mts +4 -0
  531. package/declaration/static-semantics/IsAnonymousFunctionDefinition.d.mts.map +1 -0
  532. package/declaration/static-semantics/IsComputedPropertyKey.d.mts +3 -0
  533. package/declaration/static-semantics/IsComputedPropertyKey.d.mts.map +1 -0
  534. package/declaration/static-semantics/IsConstantDeclaration.d.mts +3 -0
  535. package/declaration/static-semantics/IsConstantDeclaration.d.mts.map +1 -0
  536. package/declaration/static-semantics/IsDestructuring.d.mts +4 -0
  537. package/declaration/static-semantics/IsDestructuring.d.mts.map +1 -0
  538. package/declaration/static-semantics/IsFunctionDefinition.d.mts +6 -0
  539. package/declaration/static-semantics/IsFunctionDefinition.d.mts.map +1 -0
  540. package/declaration/static-semantics/IsIdentifierRef.d.mts +3 -0
  541. package/declaration/static-semantics/IsIdentifierRef.d.mts.map +1 -0
  542. package/declaration/static-semantics/IsInTailPosition.d.mts +3 -0
  543. package/declaration/static-semantics/IsInTailPosition.d.mts.map +1 -0
  544. package/declaration/static-semantics/IsSimpleParameterList.d.mts +3 -0
  545. package/declaration/static-semantics/IsSimpleParameterList.d.mts.map +1 -0
  546. package/declaration/static-semantics/IsStatic.d.mts +4 -0
  547. package/declaration/static-semantics/IsStatic.d.mts.map +1 -0
  548. package/declaration/static-semantics/IsStrict.d.mts +4 -0
  549. package/declaration/static-semantics/IsStrict.d.mts.map +1 -0
  550. package/declaration/static-semantics/IsStringWellFormedUnicode.d.mts +3 -0
  551. package/declaration/static-semantics/IsStringWellFormedUnicode.d.mts.map +1 -0
  552. package/declaration/static-semantics/LexicallyDeclaredNames.d.mts +4 -0
  553. package/declaration/static-semantics/LexicallyDeclaredNames.d.mts.map +1 -0
  554. package/declaration/static-semantics/LexicallyScopedDeclarations.d.mts +3 -0
  555. package/declaration/static-semantics/LexicallyScopedDeclarations.d.mts.map +1 -0
  556. package/declaration/static-semantics/ModuleRequests.d.mts +4 -0
  557. package/declaration/static-semantics/ModuleRequests.d.mts.map +1 -0
  558. package/declaration/static-semantics/NonConstructorElements.d.mts +4 -0
  559. package/declaration/static-semantics/NonConstructorElements.d.mts.map +1 -0
  560. package/declaration/static-semantics/NumericValue.d.mts +4 -0
  561. package/declaration/static-semantics/NumericValue.d.mts.map +1 -0
  562. package/declaration/static-semantics/PrivateBoundIdentifiers.d.mts +5 -0
  563. package/declaration/static-semantics/PrivateBoundIdentifiers.d.mts.map +1 -0
  564. package/declaration/static-semantics/PropName.d.mts +3 -0
  565. package/declaration/static-semantics/PropName.d.mts.map +1 -0
  566. package/declaration/static-semantics/StringToCodePoints.d.mts +3 -0
  567. package/declaration/static-semantics/StringToCodePoints.d.mts.map +1 -0
  568. package/declaration/static-semantics/StringValue.d.mts +3 -0
  569. package/declaration/static-semantics/StringValue.d.mts.map +1 -0
  570. package/declaration/static-semantics/TemplateStrings.d.mts +4 -0
  571. package/declaration/static-semantics/TemplateStrings.d.mts.map +1 -0
  572. package/declaration/static-semantics/TopLevelLexicallyDeclaredNames.d.mts +4 -0
  573. package/declaration/static-semantics/TopLevelLexicallyDeclaredNames.d.mts.map +1 -0
  574. package/declaration/static-semantics/TopLevelLexicallyScopedDeclarations.d.mts +4 -0
  575. package/declaration/static-semantics/TopLevelLexicallyScopedDeclarations.d.mts.map +1 -0
  576. package/declaration/static-semantics/TopLevelVarDeclaredNames.d.mts +4 -0
  577. package/declaration/static-semantics/TopLevelVarDeclaredNames.d.mts.map +1 -0
  578. package/declaration/static-semantics/TopLevelVarScopedDeclarations.d.mts +4 -0
  579. package/declaration/static-semantics/TopLevelVarScopedDeclarations.d.mts.map +1 -0
  580. package/declaration/static-semantics/UTF16EncodeCodePoint.d.mts +3 -0
  581. package/declaration/static-semantics/UTF16EncodeCodePoint.d.mts.map +1 -0
  582. package/declaration/static-semantics/UTF16SurrogatePairToCodePoint.d.mts +3 -0
  583. package/declaration/static-semantics/UTF16SurrogatePairToCodePoint.d.mts.map +1 -0
  584. package/declaration/static-semantics/VarDeclaredNames.d.mts +4 -0
  585. package/declaration/static-semantics/VarDeclaredNames.d.mts.map +1 -0
  586. package/declaration/static-semantics/VarScopedDeclarations.d.mts +4 -0
  587. package/declaration/static-semantics/VarScopedDeclarations.d.mts.map +1 -0
  588. package/declaration/static-semantics/all.d.mts +48 -0
  589. package/declaration/static-semantics/all.d.mts.map +1 -0
  590. package/declaration/value.d.mts +283 -0
  591. package/declaration/value.d.mts.map +1 -0
  592. package/lib/engine262.js +58136 -0
  593. package/lib/engine262.js.map +1 -0
  594. package/lib/engine262.mjs +57577 -0
  595. package/lib/engine262.mjs.map +1 -0
  596. package/lib/inspector/context.d.mts +17 -0
  597. package/lib/inspector/context.d.mts.map +1 -0
  598. package/lib/inspector/context.mjs +343 -0
  599. package/lib/inspector/context.mjs.map +1 -0
  600. package/lib/inspector/index.d.mts +15 -0
  601. package/lib/inspector/index.d.mts.map +1 -0
  602. package/lib/inspector/index.mjs +64 -0
  603. package/lib/inspector/index.mjs.map +1 -0
  604. package/lib/inspector/methods.d.mts +6 -0
  605. package/lib/inspector/methods.d.mts.map +1 -0
  606. package/lib/inspector/methods.mjs +117 -0
  607. package/lib/inspector/methods.mjs.map +1 -0
  608. package/lib/inspector/types.d.mts +208 -0
  609. package/lib/inspector/types.d.mts.map +1 -0
  610. package/lib/inspector/types.mjs +2 -0
  611. package/lib/inspector/types.mjs.map +1 -0
  612. package/lib/inspector/utils.d.mts +7 -0
  613. package/lib/inspector/utils.d.mts.map +1 -0
  614. package/lib/inspector/utils.mjs +72 -0
  615. package/lib/inspector/utils.mjs.map +1 -0
  616. package/lib/inspector.js +682 -0
  617. package/lib/inspector.js.map +1 -0
  618. package/lib/inspector.mjs +674 -0
  619. package/lib/inspector.mjs.map +1 -0
  620. package/lib/node/bin.d.mts +3 -0
  621. package/lib/node/bin.d.mts.map +1 -0
  622. package/lib/node/bin.mjs +194 -0
  623. package/lib/node/bin.mjs.map +1 -0
  624. package/lib/node/inspector.d.mts +15 -0
  625. package/lib/node/inspector.d.mts.map +1 -0
  626. package/lib/node/inspector.mjs +112 -0
  627. package/lib/node/inspector.mjs.map +1 -0
  628. package/lib/node/module.d.mts +7 -0
  629. package/lib/node/module.d.mts.map +1 -0
  630. package/lib/node/module.mjs +61 -0
  631. package/lib/node/module.mjs.map +1 -0
  632. package/lib-src/inspector/context.mts +370 -0
  633. package/lib-src/inspector/index.mts +79 -0
  634. package/lib-src/inspector/js_protocol.json +3288 -0
  635. package/lib-src/inspector/methods.mts +123 -0
  636. package/lib-src/inspector/tsconfig.json +23 -0
  637. package/lib-src/inspector/types.mts +213 -0
  638. package/lib-src/inspector/utils.mts +86 -0
  639. package/lib-src/node/bin.mts +200 -0
  640. package/lib-src/node/inspector.mts +124 -0
  641. package/lib-src/node/module.mts +64 -0
  642. package/lib-src/node/tsconfig.json +20 -0
  643. package/package.json +127 -0
  644. package/src/abstract-ops/all.mts +34 -0
  645. package/src/abstract-ops/arguments-operations.mts +246 -0
  646. package/src/abstract-ops/array-objects.mts +316 -0
  647. package/src/abstract-ops/arraybuffer-objects.mts +247 -0
  648. package/src/abstract-ops/async-function-operations.mts +43 -0
  649. package/src/abstract-ops/async-generator-objects.mts +383 -0
  650. package/src/abstract-ops/data-types-and-values.mts +43 -0
  651. package/src/abstract-ops/dataview-objects.mts +151 -0
  652. package/src/abstract-ops/date-objects.mts +232 -0
  653. package/src/abstract-ops/error-objects.mts +26 -0
  654. package/src/abstract-ops/execution-contexts.mts +80 -0
  655. package/src/abstract-ops/function-operations.mts +606 -0
  656. package/src/abstract-ops/generator-operations.mts +291 -0
  657. package/src/abstract-ops/global-object.mts +386 -0
  658. package/src/abstract-ops/immutable-prototype-objects.mts +20 -0
  659. package/src/abstract-ops/import-calls.mts +73 -0
  660. package/src/abstract-ops/iterator-operations.mts +306 -0
  661. package/src/abstract-ops/module-namespace-exotic-objects.mts +223 -0
  662. package/src/abstract-ops/module-records.mts +458 -0
  663. package/src/abstract-ops/notational-conventions.mts +53 -0
  664. package/src/abstract-ops/object-operations.mts +468 -0
  665. package/src/abstract-ops/objects.mts +435 -0
  666. package/src/abstract-ops/private-names.mts +106 -0
  667. package/src/abstract-ops/promise-operations.mts +478 -0
  668. package/src/abstract-ops/proxy-objects.mts +585 -0
  669. package/src/abstract-ops/realms.mts +517 -0
  670. package/src/abstract-ops/reference-operations.mts +211 -0
  671. package/src/abstract-ops/regexp-objects.mts +299 -0
  672. package/src/abstract-ops/spec-types.mts +239 -0
  673. package/src/abstract-ops/string-objects.mts +156 -0
  674. package/src/abstract-ops/symbol-objects.mts +30 -0
  675. package/src/abstract-ops/testing-comparison.mts +387 -0
  676. package/src/abstract-ops/type-conversion.mts +579 -0
  677. package/src/abstract-ops/typedarray-objects.mts +402 -0
  678. package/src/abstract-ops/weak-operations.mts +83 -0
  679. package/src/api-types.mts +2 -0
  680. package/src/api.mts +326 -0
  681. package/src/completion.mts +466 -0
  682. package/src/data-gen.json +1 -0
  683. package/src/engine.mts +451 -0
  684. package/src/environment.mts +1013 -0
  685. package/src/evaluator.mts +268 -0
  686. package/src/helpers.mts +538 -0
  687. package/src/inspect.mts +236 -0
  688. package/src/intrinsics/AggregateError.mts +64 -0
  689. package/src/intrinsics/AggregateErrorPrototype.mts +12 -0
  690. package/src/intrinsics/Array.mts +216 -0
  691. package/src/intrinsics/ArrayBuffer.mts +48 -0
  692. package/src/intrinsics/ArrayBufferPrototype.mts +120 -0
  693. package/src/intrinsics/ArrayIteratorPrototype.mts +25 -0
  694. package/src/intrinsics/ArrayPrototype.mts +630 -0
  695. package/src/intrinsics/ArrayPrototypeShared.mts +644 -0
  696. package/src/intrinsics/AsyncFromSyncIteratorPrototype.mts +163 -0
  697. package/src/intrinsics/AsyncFunction.mts +31 -0
  698. package/src/intrinsics/AsyncFunctionPrototype.mts +8 -0
  699. package/src/intrinsics/AsyncGeneratorFunction.mts +37 -0
  700. package/src/intrinsics/AsyncGeneratorFunctionPrototype.mts +19 -0
  701. package/src/intrinsics/AsyncGeneratorFunctionPrototypePrototype.mts +148 -0
  702. package/src/intrinsics/AsyncIteratorPrototype.mts +17 -0
  703. package/src/intrinsics/BigInt.mts +69 -0
  704. package/src/intrinsics/BigIntPrototype.mts +81 -0
  705. package/src/intrinsics/Boolean.mts +47 -0
  706. package/src/intrinsics/BooleanPrototype.mts +58 -0
  707. package/src/intrinsics/DataView.mts +82 -0
  708. package/src/intrinsics/DataViewPrototype.mts +271 -0
  709. package/src/intrinsics/Date.mts +215 -0
  710. package/src/intrinsics/DatePrototype.mts +736 -0
  711. package/src/intrinsics/Error.mts +59 -0
  712. package/src/intrinsics/ErrorPrototype.mts +62 -0
  713. package/src/intrinsics/FinalizationRegistry.mts +64 -0
  714. package/src/intrinsics/FinalizationRegistryPrototype.mts +109 -0
  715. package/src/intrinsics/ForInIteratorPrototype.mts +120 -0
  716. package/src/intrinsics/Function.mts +21 -0
  717. package/src/intrinsics/FunctionPrototype.mts +272 -0
  718. package/src/intrinsics/GeneratorFunction.mts +32 -0
  719. package/src/intrinsics/GeneratorFunctionPrototype.mts +21 -0
  720. package/src/intrinsics/GeneratorFunctionPrototypePrototype.mts +57 -0
  721. package/src/intrinsics/IteratorPrototype.mts +17 -0
  722. package/src/intrinsics/JSON.mts +570 -0
  723. package/src/intrinsics/Map.mts +98 -0
  724. package/src/intrinsics/MapIteratorPrototype.mts +79 -0
  725. package/src/intrinsics/MapPrototype.mts +226 -0
  726. package/src/intrinsics/Math.mts +178 -0
  727. package/src/intrinsics/NativeError.mts +82 -0
  728. package/src/intrinsics/Number.mts +131 -0
  729. package/src/intrinsics/NumberPrototype.mts +123 -0
  730. package/src/intrinsics/Object.mts +442 -0
  731. package/src/intrinsics/ObjectPrototype.mts +297 -0
  732. package/src/intrinsics/Promise.mts +693 -0
  733. package/src/intrinsics/PromisePrototype.mts +120 -0
  734. package/src/intrinsics/Proxy.mts +100 -0
  735. package/src/intrinsics/Reflect.mts +211 -0
  736. package/src/intrinsics/RegExp.mts +103 -0
  737. package/src/intrinsics/RegExpPrototype.mts +803 -0
  738. package/src/intrinsics/RegExpStringIteratorPrototype.mts +81 -0
  739. package/src/intrinsics/Set.mts +72 -0
  740. package/src/intrinsics/SetIteratorPrototype.mts +77 -0
  741. package/src/intrinsics/SetPrototype.mts +191 -0
  742. package/src/intrinsics/String.mts +134 -0
  743. package/src/intrinsics/StringIteratorPrototype.mts +25 -0
  744. package/src/intrinsics/StringPrototype.mts +833 -0
  745. package/src/intrinsics/Symbol.mts +103 -0
  746. package/src/intrinsics/SymbolPrototype.mts +83 -0
  747. package/src/intrinsics/ThrowTypeError.mts +21 -0
  748. package/src/intrinsics/TypedArray.mts +574 -0
  749. package/src/intrinsics/TypedArrayConstructors.mts +85 -0
  750. package/src/intrinsics/TypedArrayPrototype.mts +648 -0
  751. package/src/intrinsics/TypedArrayPrototypes.mts +17 -0
  752. package/src/intrinsics/URIHandling.mts +321 -0
  753. package/src/intrinsics/WeakMap.mts +56 -0
  754. package/src/intrinsics/WeakMapPrototype.mts +129 -0
  755. package/src/intrinsics/WeakRef.mts +42 -0
  756. package/src/intrinsics/WeakRefPrototype.mts +23 -0
  757. package/src/intrinsics/WeakSet.mts +66 -0
  758. package/src/intrinsics/WeakSetPrototype.mts +99 -0
  759. package/src/intrinsics/bootstrap.mts +145 -0
  760. package/src/intrinsics/eval.mts +25 -0
  761. package/src/intrinsics/isFinite.mts +23 -0
  762. package/src/intrinsics/isNaN.mts +23 -0
  763. package/src/intrinsics/parseFloat.mts +78 -0
  764. package/src/intrinsics/parseInt.mts +101 -0
  765. package/src/messages.mts +176 -0
  766. package/src/modules.mts +720 -0
  767. package/src/parse.mts +222 -0
  768. package/src/parser/BaseParser.mts +36 -0
  769. package/src/parser/ExpressionParser.mts +1498 -0
  770. package/src/parser/FunctionParser.mts +389 -0
  771. package/src/parser/IdentifierParser.mts +144 -0
  772. package/src/parser/LanguageParser.mts +94 -0
  773. package/src/parser/Lexer.mts +986 -0
  774. package/src/parser/ModuleParser.mts +271 -0
  775. package/src/parser/ParseNode.mts +2510 -0
  776. package/src/parser/Parser.mts +192 -0
  777. package/src/parser/RegExpParser.mts +930 -0
  778. package/src/parser/Scope.mts +535 -0
  779. package/src/parser/StatementParser.mts +958 -0
  780. package/src/parser/tokens.mts +212 -0
  781. package/src/parser/unicode.d.ts +20 -0
  782. package/src/runtime-semantics/AdditiveExpression.mts +29 -0
  783. package/src/runtime-semantics/ApplyStringOrNumericBinaryOperator.mts +78 -0
  784. package/src/runtime-semantics/ArgumentListEvaluation.mts +178 -0
  785. package/src/runtime-semantics/ArrayLiteral.mts +97 -0
  786. package/src/runtime-semantics/ArrowFunction.mts +8 -0
  787. package/src/runtime-semantics/AssignmentExpression.mts +282 -0
  788. package/src/runtime-semantics/AsyncArrowFunction.mts +8 -0
  789. package/src/runtime-semantics/AsyncFunctionExpression.mts +11 -0
  790. package/src/runtime-semantics/AsyncGeneratorExpression.mts +11 -0
  791. package/src/runtime-semantics/AwaitExpression.mts +17 -0
  792. package/src/runtime-semantics/BindingInitialization.mts +93 -0
  793. package/src/runtime-semantics/BitwiseOperators.mts +14 -0
  794. package/src/runtime-semantics/Block.mts +73 -0
  795. package/src/runtime-semantics/BreakStatement.mts +18 -0
  796. package/src/runtime-semantics/BreakableStatement.mts +18 -0
  797. package/src/runtime-semantics/CallExpression.mts +59 -0
  798. package/src/runtime-semantics/ClassDeclaration.mts +46 -0
  799. package/src/runtime-semantics/ClassDefinitionEvaluation.mts +343 -0
  800. package/src/runtime-semantics/ClassExpression.mts +32 -0
  801. package/src/runtime-semantics/ClassFieldDefinitionEvaluation.mts +61 -0
  802. package/src/runtime-semantics/ClassStaticBlockDefinitionEvaluation.mts +44 -0
  803. package/src/runtime-semantics/CoalesceExpression.mts +24 -0
  804. package/src/runtime-semantics/CommaOperator.mts +18 -0
  805. package/src/runtime-semantics/ConditionalExpression.mts +31 -0
  806. package/src/runtime-semantics/ContinueStatement.mts +18 -0
  807. package/src/runtime-semantics/CreateDynamicFunction.mts +200 -0
  808. package/src/runtime-semantics/DebuggerStatement.mts +20 -0
  809. package/src/runtime-semantics/DefineMethod.mts +42 -0
  810. package/src/runtime-semantics/DestructuringAssignmentEvaluation.mts +311 -0
  811. package/src/runtime-semantics/EmptyStatement.mts +9 -0
  812. package/src/runtime-semantics/EqualityExpression.mts +61 -0
  813. package/src/runtime-semantics/EvaluateBody.mts +196 -0
  814. package/src/runtime-semantics/EvaluateCall.mts +63 -0
  815. package/src/runtime-semantics/EvaluatePropertyAccess.mts +47 -0
  816. package/src/runtime-semantics/EvaluateStringOrNumericBinaryExpression.mts +19 -0
  817. package/src/runtime-semantics/ExponentiationExpression.mts +11 -0
  818. package/src/runtime-semantics/ExportDeclaration.mts +90 -0
  819. package/src/runtime-semantics/ExpressionStatement.mts +14 -0
  820. package/src/runtime-semantics/FunctionDeclaration.mts +11 -0
  821. package/src/runtime-semantics/FunctionDeclarationInstantiation.mts +272 -0
  822. package/src/runtime-semantics/FunctionExpression.mts +11 -0
  823. package/src/runtime-semantics/FunctionStatementList.mts +11 -0
  824. package/src/runtime-semantics/GeneratorExpression.mts +11 -0
  825. package/src/runtime-semantics/GetSubstitution.mts +119 -0
  826. package/src/runtime-semantics/GlobalDeclarationInstantiation.mts +146 -0
  827. package/src/runtime-semantics/HoistableDeclaration.mts +12 -0
  828. package/src/runtime-semantics/IdentifierReference.mts +15 -0
  829. package/src/runtime-semantics/IfStatement.mts +49 -0
  830. package/src/runtime-semantics/ImportCall.mts +43 -0
  831. package/src/runtime-semantics/ImportDeclaration.mts +9 -0
  832. package/src/runtime-semantics/ImportMeta.mts +45 -0
  833. package/src/runtime-semantics/InstantiateArrowFunctionExpression.mts +35 -0
  834. package/src/runtime-semantics/InstantiateAsyncArrowFunctionExpression.mts +37 -0
  835. package/src/runtime-semantics/InstantiateAsyncFunctionExpression.mts +75 -0
  836. package/src/runtime-semantics/InstantiateAsyncGeneratorFunctionExpression.mts +90 -0
  837. package/src/runtime-semantics/InstantiateFunctionObject.mts +123 -0
  838. package/src/runtime-semantics/InstantiateGeneratorFunctionExpression.mts +82 -0
  839. package/src/runtime-semantics/InstantiateOrdinaryFunctionExpression.mts +64 -0
  840. package/src/runtime-semantics/IteratorBindingInitialization.mts +214 -0
  841. package/src/runtime-semantics/KeyedBindingInitialization.mts +61 -0
  842. package/src/runtime-semantics/LabelledEvaluation.mts +753 -0
  843. package/src/runtime-semantics/LabelledStatement.mts +11 -0
  844. package/src/runtime-semantics/LexicalDeclaration.mts +96 -0
  845. package/src/runtime-semantics/Literal.mts +36 -0
  846. package/src/runtime-semantics/LogicalANDExpression.mts +25 -0
  847. package/src/runtime-semantics/LogicalORExpression.mts +25 -0
  848. package/src/runtime-semantics/MV.mts +10 -0
  849. package/src/runtime-semantics/MemberExpression.mts +73 -0
  850. package/src/runtime-semantics/MethodDefinitionEvaluation.mts +273 -0
  851. package/src/runtime-semantics/Module.mts +15 -0
  852. package/src/runtime-semantics/ModuleBody.mts +10 -0
  853. package/src/runtime-semantics/MultiplicativeExpression.mts +18 -0
  854. package/src/runtime-semantics/NamedEvaluation.mts +98 -0
  855. package/src/runtime-semantics/NewExpression.mts +52 -0
  856. package/src/runtime-semantics/NewTarget.mts +8 -0
  857. package/src/runtime-semantics/NumberToBigInt.mts +17 -0
  858. package/src/runtime-semantics/ObjectLiteral.mts +26 -0
  859. package/src/runtime-semantics/OptionalExpression.mts +132 -0
  860. package/src/runtime-semantics/ParenthesizedExpression.mts +8 -0
  861. package/src/runtime-semantics/PropertyBindingInitialization.mts +46 -0
  862. package/src/runtime-semantics/PropertyDefinitionEvaluation.mts +124 -0
  863. package/src/runtime-semantics/PropertyName.mts +62 -0
  864. package/src/runtime-semantics/RegExp.mts +1187 -0
  865. package/src/runtime-semantics/RegularExpressionLiteral.mts +16 -0
  866. package/src/runtime-semantics/RelationalExpression.mts +156 -0
  867. package/src/runtime-semantics/RestBindingInitialization.mts +29 -0
  868. package/src/runtime-semantics/ReturnStatement.mts +32 -0
  869. package/src/runtime-semantics/Script.mts +15 -0
  870. package/src/runtime-semantics/ScriptBody.mts +7 -0
  871. package/src/runtime-semantics/ShiftExpression.mts +17 -0
  872. package/src/runtime-semantics/StatementList.mts +31 -0
  873. package/src/runtime-semantics/StringIndexOf.mts +43 -0
  874. package/src/runtime-semantics/StringPad.mts +33 -0
  875. package/src/runtime-semantics/SuperCall.mts +65 -0
  876. package/src/runtime-semantics/SuperProperty.mts +61 -0
  877. package/src/runtime-semantics/SwitchStatement.mts +221 -0
  878. package/src/runtime-semantics/TaggedTemplateExpression.mts +23 -0
  879. package/src/runtime-semantics/TemplateLiteral.mts +34 -0
  880. package/src/runtime-semantics/This.mts +9 -0
  881. package/src/runtime-semantics/ThrowStatement.mts +22 -0
  882. package/src/runtime-semantics/TrimString.mts +19 -0
  883. package/src/runtime-semantics/TryStatement.mts +120 -0
  884. package/src/runtime-semantics/UnaryExpression.mts +219 -0
  885. package/src/runtime-semantics/Unicode.mts +555 -0
  886. package/src/runtime-semantics/UpdateExpression.mts +126 -0
  887. package/src/runtime-semantics/VariableStatement.mts +72 -0
  888. package/src/runtime-semantics/WithStatement.mts +33 -0
  889. package/src/runtime-semantics/YieldExpression.mts +175 -0
  890. package/src/runtime-semantics/all.mts +108 -0
  891. package/src/static-semantics/BodyText.mts +7 -0
  892. package/src/static-semantics/BoundNames.mts +101 -0
  893. package/src/static-semantics/CharacterValue.mts +92 -0
  894. package/src/static-semantics/CodePointAt.mts +53 -0
  895. package/src/static-semantics/CodePointsToString.mts +16 -0
  896. package/src/static-semantics/ConstructorMethod.mts +10 -0
  897. package/src/static-semantics/ContainsArguments.mts +33 -0
  898. package/src/static-semantics/ContainsExpression.mts +59 -0
  899. package/src/static-semantics/DeclarationPart.mts +5 -0
  900. package/src/static-semantics/ExpectedArgumentCount.mts +26 -0
  901. package/src/static-semantics/ExportEntries.mts +127 -0
  902. package/src/static-semantics/ExportEntriesForModule.mts +63 -0
  903. package/src/static-semantics/FlagText.mts +7 -0
  904. package/src/static-semantics/HasInitializer.mts +5 -0
  905. package/src/static-semantics/HasName.mts +8 -0
  906. package/src/static-semantics/ImportEntries.mts +36 -0
  907. package/src/static-semantics/ImportEntriesForModule.mts +95 -0
  908. package/src/static-semantics/ImportedLocalNames.mts +14 -0
  909. package/src/static-semantics/IsAnonymousFunctionDefinition.mts +18 -0
  910. package/src/static-semantics/IsComputedPropertyKey.mts +7 -0
  911. package/src/static-semantics/IsConstantDeclaration.mts +5 -0
  912. package/src/static-semantics/IsDestructuring.mts +21 -0
  913. package/src/static-semantics/IsFunctionDefinition.mts +15 -0
  914. package/src/static-semantics/IsIdentifierRef.mts +5 -0
  915. package/src/static-semantics/IsInTailPosition.mts +5 -0
  916. package/src/static-semantics/IsSimpleParameterList.mts +23 -0
  917. package/src/static-semantics/IsStatic.mts +10 -0
  918. package/src/static-semantics/IsStrict.mts +7 -0
  919. package/src/static-semantics/IsStringWellFormedUnicode.mts +24 -0
  920. package/src/static-semantics/LexicallyDeclaredNames.mts +26 -0
  921. package/src/static-semantics/LexicallyScopedDeclarations.mts +82 -0
  922. package/src/static-semantics/ModuleRequests.mts +34 -0
  923. package/src/static-semantics/NonConstructorElements.mts +15 -0
  924. package/src/static-semantics/NumericValue.mts +7 -0
  925. package/src/static-semantics/PrivateBoundIdentifiers.mts +23 -0
  926. package/src/static-semantics/PropName.mts +18 -0
  927. package/src/static-semantics/StringToCodePoints.mts +23 -0
  928. package/src/static-semantics/StringValue.mts +19 -0
  929. package/src/static-semantics/TemplateStrings.mts +108 -0
  930. package/src/static-semantics/TopLevelLexicallyDeclaredNames.mts +21 -0
  931. package/src/static-semantics/TopLevelLexicallyScopedDeclarations.mts +23 -0
  932. package/src/static-semantics/TopLevelVarDeclaredNames.mts +26 -0
  933. package/src/static-semantics/TopLevelVarScopedDeclarations.mts +34 -0
  934. package/src/static-semantics/UTF16EncodeCodePoint.mts +17 -0
  935. package/src/static-semantics/UTF16SurrogatePairToCodePoint.mts +12 -0
  936. package/src/static-semantics/VarDeclaredNames.mts +109 -0
  937. package/src/static-semantics/VarScopedDeclarations.mts +115 -0
  938. package/src/static-semantics/all.mts +47 -0
  939. package/src/syntax-error.d.ts +4 -0
  940. package/src/tsconfig.json +11 -0
  941. package/src/value.mts +981 -0
@@ -0,0 +1,200 @@
1
+ import {
2
+ Assert,
3
+ DefinePropertyOrThrow,
4
+ GetPrototypeFromConstructor,
5
+ MakeConstructor,
6
+ OrdinaryFunctionCreate,
7
+ OrdinaryObjectCreate,
8
+ SetFunctionName,
9
+ ToString,
10
+ type FunctionObject,
11
+ type Intrinsics,
12
+ } from '../abstract-ops/all.mts';
13
+ import { Q, ThrowCompletion, X } from '../completion.mts';
14
+ import {
15
+ HostEnsureCanCompileStrings,
16
+ surroundingAgent,
17
+ } from '../engine.mts';
18
+ import { wrappedParse } from '../parse.mts';
19
+ import { Token } from '../parser/tokens.mts';
20
+ import {
21
+ Descriptor, UndefinedValue, Value,
22
+ type Arguments,
23
+ } from '../value.mts';
24
+ import { __ts_cast__, OutOfRange } from '../helpers.mts';
25
+ import type { ParseNode } from '../parser/ParseNode.mts';
26
+
27
+ // #table-dynamic-function-sourcetext-prefixes
28
+ const DynamicFunctionSourceTextPrefixes = {
29
+ 'normal': 'function',
30
+ 'generator': 'function*',
31
+ 'async': 'async function',
32
+ 'asyncGenerator': 'async function*',
33
+ };
34
+
35
+ export function CreateDynamicFunction(constructor: FunctionObject, newTarget: FunctionObject | UndefinedValue, kind: 'normal' | 'generator' | 'async' | 'asyncGenerator', args: Arguments) {
36
+ // 1. Assert: The execution context stack has at least two elements.
37
+ Assert(surroundingAgent.executionContextStack.length >= 2);
38
+ // 2. Let callerContext be the second to top element of the execution context stack.
39
+ const callerContext = surroundingAgent.executionContextStack[surroundingAgent.executionContextStack.length - 2];
40
+ // 3. Let callerRealm be callerContext's Realm.
41
+ const callerRealm = callerContext.Realm;
42
+ // 4. Let calleeRealm be the current Realm Record.
43
+ const calleeRealm = surroundingAgent.currentRealmRecord;
44
+ // 5. Perform ? HostEnsureCanCompileStrings(callerRealm, calleeRealm).
45
+ Q(HostEnsureCanCompileStrings(callerRealm, calleeRealm));
46
+ // 6. If newTarget is undefined, set newTarget to constructor.
47
+ if (newTarget instanceof UndefinedValue) {
48
+ newTarget = constructor;
49
+ }
50
+ // 7. If kind is normal, then
51
+ let fallbackProto: keyof Intrinsics;
52
+ if (kind === 'normal') {
53
+ // a. Let goal be the grammar symbol FunctionBody[~Yield, ~Await].
54
+ // b. Let parameterGoal be the grammar symbol FormalParameters[~Yield, ~Await].
55
+ // c. Let fallbackProto be "%Function.prototype%".
56
+ fallbackProto = '%Function.prototype%';
57
+ } else if (kind === 'generator') { // 8. Else if kind is generator, then
58
+ // a. Let goal be the grammar symbol GeneratorBody.
59
+ // b. Let parameterGoal be the grammar symbol FormalParameters[+Yield, ~Await].
60
+ // c. Let fallbackProto be "%GeneratorFunction.prototype%".
61
+ fallbackProto = '%GeneratorFunction.prototype%';
62
+ } else if (kind === 'async') { // 9. Else if kind is async, then
63
+ // a. Let goal be the grammar symbol AsyncBody.
64
+ // b. Let parameterGoal be the grammar symbol FormalParameters[~Yield, +Await].
65
+ // c. Let fallbackProto be "%AsyncFunction.prototype%".
66
+ fallbackProto = '%AsyncFunction.prototype%';
67
+ } else { // 10. Else,
68
+ // a. Assert: kind is asyncGenerator.
69
+ Assert(kind === 'asyncGenerator');
70
+ // b. Let goal be the grammar symbol AsyncGeneratorBody.
71
+ // c. Let parameterGoal be the grammar symbol FormalParameters[+Yield, +Await].
72
+ // d. Let fallbackProto be "%AsyncGeneratorFunction.prototype%".
73
+ fallbackProto = '%AsyncGeneratorFunction.prototype%';
74
+ }
75
+ // 11. Let argCount be the number of elements in args.
76
+ const argCount = args.length;
77
+ // 12. Let P be the empty String.
78
+ let P = '';
79
+ // 13. If argCount = 0, let bodyArg be the empty String.
80
+ let bodyArg;
81
+ if (argCount === 0) {
82
+ bodyArg = Value('');
83
+ } else if (argCount === 1) { // 14. Else if argCount = 1, let bodyArg be args[0].
84
+ bodyArg = args[0];
85
+ } else { // 15. Else,
86
+ // a. Assert: argCount > 1.
87
+ Assert(argCount > 1);
88
+ // b. Let firstArg be args[0].
89
+ const firstArg = args[0];
90
+ // c. Set P to ? ToString(firstArg).
91
+ P = Q(ToString(firstArg)).stringValue();
92
+ // d. Let k be 1.
93
+ let k = 1;
94
+ // e. Repeat, while k < argCount - 1
95
+ while (k < argCount - 1) {
96
+ // i. Let nextArg be args[k].
97
+ const nextArg = args[k];
98
+ // ii. Let nextArgString be ? ToString(nextArg).
99
+ const nextArgString = Q(ToString(nextArg));
100
+ // iii. Set P to the string-concatenation of the previous value of P, "," (a comma), and nextArgString.
101
+ P = `${P},${nextArgString.stringValue()}`;
102
+ // iv. Set k to k + 1.
103
+ k += 1;
104
+ }
105
+ // f. Let bodyArg be args[k].
106
+ bodyArg = args[k];
107
+ }
108
+ // 16. Let bodyString be the string-concatenation of 0x000A (LINE FEED), ? ToString(bodyArg), and 0x000A (LINE FEED).
109
+ const bodyString = `\u{000A}${Q(ToString(bodyArg)).stringValue()}\u{000A}`;
110
+ // 17. Let prefix be the prefix associated with kind in Table 48.
111
+ const prefix = DynamicFunctionSourceTextPrefixes[kind];
112
+ // 18. Let sourceString be the string-concatenation of prefix, " anonymous(", P, 0x000A (LINE FEED), ") {", bodyString, and "}".
113
+ const sourceString = `${prefix} anonymous(${P}\u{000A}) {${bodyString}}`;
114
+ // 19. Let sourceText be ! UTF16DecodeString(sourceString).
115
+ const sourceText = sourceString;
116
+ // 20. Perform the following substeps in an implementation-dependent order, possibly interleaving parsing and error detection:
117
+ // a. Let parameters be the result of parsing ! UTF16DecodeString(P), using parameterGoal as the goal symbol. Throw a SyntaxError exception if the parse fails.
118
+ // b. Let body be the result of parsing ! UTF16DecodeString(bodyString), using goal as the goal symbol. Throw a SyntaxError exception if the parse fails.
119
+ // c. Let strict be ContainsUseStrict of body.
120
+ // d. If any static semantics errors are detected for parameters or body, throw a SyntaxError exception. If strict is true, the Early Error rules for UniqueFormalParameters:FormalParameters are applied.
121
+ // e. If strict is true and IsSimpleParameterList of parameters is false, throw a SyntaxError exception.
122
+ // f. If any element of the BoundNames of parameters also occurs in the LexicallyDeclaredNames of body, throw a SyntaxError exception.
123
+ // g. If body Contains SuperCall is true, throw a SyntaxError exception.
124
+ // h. If parameters Contains SuperCall is true, throw a SyntaxError exception.
125
+ // i. If body Contains SuperProperty is true, throw a SyntaxError exception.
126
+ // j. If parameters Contains SuperProperty is true, throw a SyntaxError exception.
127
+ // k. If kind is generator or asyncGenerator, then
128
+ // i. If parameters Contains YieldExpression is true, throw a SyntaxError exception.
129
+ // l. If kind is async or asyncGenerator, then
130
+ // i. If parameters Contains AwaitExpression is true, throw a SyntaxError exception.
131
+ // m. If strict is true, then
132
+ // i. If BoundNames of parameters contains any duplicate elements, throw a SyntaxError exception.
133
+ let parameters;
134
+ let body;
135
+ {
136
+ const f = wrappedParse({ source: sourceString }, (p) => {
137
+ const r = p.parseExpression();
138
+ p.expect(Token.EOS);
139
+ return r;
140
+ });
141
+ if (Array.isArray(f)) {
142
+ return ThrowCompletion(f[0]);
143
+ }
144
+ __ts_cast__<ParseNode.FunctionExpression | ParseNode.GeneratorExpression | ParseNode.AsyncFunctionExpression | ParseNode.AsyncGeneratorExpression>(f);
145
+ parameters = f.FormalParameters;
146
+ switch (kind) {
147
+ case 'normal':
148
+ body = (f as ParseNode.FunctionExpression).FunctionBody;
149
+ break;
150
+ case 'generator':
151
+ body = (f as ParseNode.GeneratorExpression).GeneratorBody;
152
+ break;
153
+ case 'async':
154
+ body = (f as ParseNode.AsyncFunctionExpression).AsyncBody;
155
+ break;
156
+ case 'asyncGenerator':
157
+ body = (f as ParseNode.AsyncGeneratorExpression).AsyncGeneratorBody;
158
+ break;
159
+ default:
160
+ throw new OutOfRange('kind', kind);
161
+ }
162
+ }
163
+ // 21. Let proto be ? GetPrototypeFromConstructor(newTarget, fallbackProto).
164
+ const proto = Q(GetPrototypeFromConstructor(newTarget, fallbackProto));
165
+ // 22. Let realmF be the current Realm Record.
166
+ const realmF = surroundingAgent.currentRealmRecord;
167
+ // 23. Let scope be realmF.[[GlobalEnv]].
168
+ const scope = realmF.GlobalEnv;
169
+ // 24. Let F be ! OrdinaryFunctionCreate(proto, sourceText, parameters, body, non-lexical-this, scope, null).
170
+ const F = X(OrdinaryFunctionCreate(proto, sourceText, parameters, body, 'non-lexical-this', scope, Value.null));
171
+ // 25. Perform SetFunctionName(F, "anonymous").
172
+ SetFunctionName(F, Value('anonymous'));
173
+ // 26. If kind is generator, then
174
+ if (kind === 'generator') {
175
+ // a. Let prototype be OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%).
176
+ const prototype = OrdinaryObjectCreate(surroundingAgent.intrinsic('%GeneratorFunction.prototype.prototype%'));
177
+ // b. Perform DefinePropertyOrThrow(F, "prototype", PropertyDescriptor { [[Value]]: prototype, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: false }).
178
+ DefinePropertyOrThrow(F, Value('prototype'), Descriptor({
179
+ Value: prototype,
180
+ Writable: Value.true,
181
+ Enumerable: Value.false,
182
+ Configurable: Value.false,
183
+ }));
184
+ } else if (kind === 'asyncGenerator') { // 27. Else if kind is asyncGenerator, then
185
+ // a. Let prototype be OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%).
186
+ const prototype = OrdinaryObjectCreate(surroundingAgent.intrinsic('%AsyncGeneratorFunction.prototype.prototype%'));
187
+ // b. Perform DefinePropertyOrThrow(F, "prototype", PropertyDescriptor { [[Value]]: prototype, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: false }).
188
+ DefinePropertyOrThrow(F, Value('prototype'), Descriptor({
189
+ Value: prototype,
190
+ Writable: Value.true,
191
+ Enumerable: Value.false,
192
+ Configurable: Value.false,
193
+ }));
194
+ } else if (kind === 'normal') { // 28. Else if kind is normal, then perform MakeConstructor(F).
195
+ MakeConstructor(F);
196
+ }
197
+ // 29. NOTE: Functions whose kind is async are not constructible and do not have a [[Construct]] internal method or a "prototype" property.
198
+ // 20. Return F.
199
+ return F;
200
+ }
@@ -0,0 +1,20 @@
1
+ import { surroundingAgent } from '../engine.mts';
2
+ import { NormalCompletion, EnsureCompletion } from '../completion.mts';
3
+ import type { ParseNode } from '../parser/ParseNode.mts';
4
+
5
+ /** https://tc39.es/ecma262/#sec-debugger-statement-runtime-semantics-evaluation */
6
+ // DebuggerStatement : `debugger` `;`
7
+ export function Evaluate_DebuggerStatement(_node: ParseNode.DebuggerStatement) {
8
+ let result;
9
+ // 1. If an implementation-defined debugging facility is available and enabled, then
10
+ if (surroundingAgent.hostDefinedOptions.onDebugger && !surroundingAgent.debugger_isPreviewing) {
11
+ // a. Perform an implementation-defined debugging action.
12
+ // b. Let result be an implementation-defined Completion value.
13
+ result = EnsureCompletion(surroundingAgent.hostDefinedOptions.onDebugger());
14
+ } else {
15
+ // a. Let result be NormalCompletion(empty).
16
+ result = NormalCompletion(undefined);
17
+ }
18
+ // 2. Return result.
19
+ return result;
20
+ }
@@ -0,0 +1,42 @@
1
+ import { surroundingAgent } from '../engine.mts';
2
+ import { OrdinaryFunctionCreate, MakeMethod, sourceTextMatchedBy } from '../abstract-ops/all.mts';
3
+ import { ReturnIfAbrupt } from '../completion.mts';
4
+ import type { ParseNode } from '../parser/ParseNode.mts';
5
+ import type { Evaluator } from '../evaluator.mts';
6
+ import { Evaluate_PropertyName } from './all.mts';
7
+ import type {
8
+ ECMAScriptFunctionObject, ObjectValue, PlainCompletion, PrivateName, PropertyKeyValue,
9
+ } from '#self';
10
+
11
+ export interface DefineMethodRecord {
12
+ readonly Key: PropertyKeyValue | PrivateName;
13
+ readonly Closure: ECMAScriptFunctionObject;
14
+ }
15
+ /** https://tc39.es/ecma262/#sec-runtime-semantics-definemethod */
16
+ export function* DefineMethod(MethodDefinition: ParseNode.MethodDefinition, object: ObjectValue, functionPrototype?: ObjectValue): Evaluator<PlainCompletion<DefineMethodRecord>> {
17
+ const { ClassElementName, UniqueFormalParameters, FunctionBody } = MethodDefinition;
18
+ // 1. Let propKey be the result of evaluating ClassElementName.
19
+ const propKey = ReturnIfAbrupt(yield* Evaluate_PropertyName(ClassElementName));
20
+ // 2. ReturnIfAbrupt(propKey).
21
+ // 3. Let scope be the running execution context's LexicalEnvironment.
22
+ const scope = surroundingAgent.runningExecutionContext.LexicalEnvironment;
23
+ // 4. Let privateScope be the running execution context's PrivateEnvironment.
24
+ const privateScope = surroundingAgent.runningExecutionContext.PrivateEnvironment;
25
+ let prototype;
26
+ // 5. If functionPrototype is present as a parameter, then
27
+ if (functionPrototype !== undefined) {
28
+ // a. Let prototype be functionPrototype.
29
+ prototype = functionPrototype;
30
+ } else { // 6. Else,
31
+ // a. Let prototype be %Function.prototype%.
32
+ prototype = surroundingAgent.intrinsic('%Function.prototype%');
33
+ }
34
+ // 7. Let sourceText be the source text matched by MethodDefinition.
35
+ const sourceText = sourceTextMatchedBy(MethodDefinition);
36
+ // 8. Let closure be OrdinaryFunctionCreate(prototype, sourceText, UniqueFormalParameters, FunctionBody, non-lexical-this, scope, privateScope).
37
+ const closure = OrdinaryFunctionCreate(prototype, sourceText, UniqueFormalParameters!, FunctionBody, 'non-lexical-this', scope, privateScope);
38
+ // 9. Perform MakeMethod(closure, object).
39
+ MakeMethod(closure, object);
40
+ // 10. Return the Record { [[Key]]: propKey, [[Closure]]: closure }.
41
+ return { Key: propKey, Closure: closure };
42
+ }
@@ -0,0 +1,311 @@
1
+ import { surroundingAgent } from '../engine.mts';
2
+ import {
3
+ JSStringValue, ReferenceRecord, Value, type PropertyKeyValue,
4
+ } from '../value.mts';
5
+ import {
6
+ ArrayCreate,
7
+ CopyDataProperties,
8
+ CreateDataPropertyOrThrow,
9
+ GetIterator,
10
+ GetV,
11
+ GetValue,
12
+ IteratorClose,
13
+ IteratorStep,
14
+ OrdinaryObjectCreate,
15
+ PutValue,
16
+ ResolveBinding,
17
+ RequireObjectCoercible,
18
+ ToString,
19
+ F,
20
+ Assert,
21
+ type IteratorRecord,
22
+ IteratorStepValue,
23
+ } from '../abstract-ops/all.mts';
24
+ import {
25
+ IsAnonymousFunctionDefinition,
26
+ IsIdentifierRef,
27
+ StringValue,
28
+ type FunctionDeclaration,
29
+ } from '../static-semantics/all.mts';
30
+ import { Evaluate, type Evaluator, type StatementEvaluator } from '../evaluator.mts';
31
+ import {
32
+ Q, X,
33
+ Completion,
34
+ AbruptCompletion,
35
+ NormalCompletion,
36
+ ReturnIfAbrupt,
37
+ EnsureCompletion,
38
+ type ExpressionCompletion,
39
+ type PlainCompletion,
40
+ } from '../completion.mts';
41
+ import { OutOfRange } from '../helpers.mts';
42
+ import type { ParseNode } from '../parser/ParseNode.mts';
43
+ import {
44
+ Evaluate_PropertyName,
45
+ NamedEvaluation,
46
+ refineLeftHandSideExpression,
47
+ } from './all.mts';
48
+
49
+ // ObjectAssignmentPattern :
50
+ // `{` `}`
51
+ // `{` AssignmentPropertyList `}`
52
+ // `{` AssignmentPropertyList `,` `}`
53
+ // `{` AssignmentPropertyList `,` AssignmentRestProperty? `}`
54
+ function* DestructuringAssignmentEvaluation_ObjectAssignmentPattern({ AssignmentPropertyList, AssignmentRestProperty }: ParseNode.ObjectAssignmentPattern, value: Value): Evaluator<PlainCompletion<void>> {
55
+ // 1. Perform ? RequireObjectCoercible(value).
56
+ Q(RequireObjectCoercible(value));
57
+ // 2. Perform ? PropertyDestructuringAssignmentEvaluation for AssignmentPropertyList using value as the argument.
58
+ const excludedNames: readonly PropertyKeyValue[] = Q(yield* PropertyDestructuringAssignmentEvaluation(AssignmentPropertyList, value));
59
+ if (AssignmentRestProperty) {
60
+ Q(yield* RestDestructuringAssignmentEvaluation(AssignmentRestProperty, value, excludedNames));
61
+ }
62
+ // 3. Return NormalCompletion(empty).
63
+ return NormalCompletion(undefined);
64
+ }
65
+
66
+ /** https://tc39.es/ecma262/#sec-runtime-semantics-restdestructuringassignmentevaluation */
67
+ // AssignmentRestProperty : `...` DestructuringAssignmentTarget
68
+ function* RestDestructuringAssignmentEvaluation({ DestructuringAssignmentTarget }: ParseNode.AssignmentRestProperty, value: Value, excludedNames: readonly PropertyKeyValue[]) {
69
+ // 1. Let lref be the result of evaluating DestructuringAssignmentTarget.
70
+ const lref = yield* Evaluate(DestructuringAssignmentTarget);
71
+ // 2. ReturnIfAbrupt(lref).
72
+ ReturnIfAbrupt(lref);
73
+ // 3. Let restObj be OrdinaryObjectCreate(%Object.prototype%).
74
+ const restObj = OrdinaryObjectCreate(surroundingAgent.intrinsic('%Object.prototype%'));
75
+ // 4. Perform ? CopyDataProperties(restObj, value, excludedNames).
76
+ Q(CopyDataProperties(restObj, value, excludedNames));
77
+ // 5. Return PutValue(lref, restObj).
78
+ return PutValue(lref, restObj);
79
+ }
80
+
81
+ function* PropertyDestructuringAssignmentEvaluation(AssignmentPropertyList: ParseNode.ObjectAssignmentPattern['AssignmentPropertyList'], value: Value): Evaluator<PlainCompletion<PropertyKeyValue[]>> {
82
+ const propertyNames: PropertyKeyValue[] = [];
83
+ for (const AssignmentProperty of AssignmentPropertyList) {
84
+ if ('IdentifierReference' in AssignmentProperty) {
85
+ // 1. Let P be StringValue of IdentifierReference.
86
+ const P = StringValue(AssignmentProperty.IdentifierReference);
87
+ // 2. Let lref be ? ResolveBinding(P).
88
+ const lref = Q(ResolveBinding(P, undefined, AssignmentProperty.IdentifierReference.strict));
89
+ // 3. Let v be ? GetV(value, P).
90
+ let v = Q(GetV(value, P));
91
+ // 4. If Initializer? is present and v is undefined, then
92
+ if (AssignmentProperty.Initializer && v === Value.undefined) {
93
+ // a. If IsAnonymousFunctionDefinition(Initializer) is true, then
94
+ if (IsAnonymousFunctionDefinition(AssignmentProperty.Initializer)) {
95
+ // i. Set v to the result of performing NamedEvaluation for Initializer with argument P.
96
+ v = Q(yield* NamedEvaluation(AssignmentProperty.Initializer as FunctionDeclaration, P));
97
+ } else { // b. Else,
98
+ // i. Let defaultValue be the result of evaluating Initializer.
99
+ const defaultValue = yield* Evaluate(AssignmentProperty.Initializer);
100
+ // ii. Set v to ? GetValue(defaultValue)
101
+ v = Q(GetValue(defaultValue));
102
+ }
103
+ }
104
+ // 5. Perform ? PutValue(lref, v).
105
+ Q(PutValue(lref, v));
106
+ // 6. Return a new List containing P.
107
+ propertyNames.push(P);
108
+ } else {
109
+ Assert('PropertyName' in AssignmentProperty);
110
+ // 1. Let name be the result of evaluating PropertyName.
111
+ const name = yield* Evaluate_PropertyName(AssignmentProperty.PropertyName!);
112
+ // 2. ReturnIfAbrupt(name).
113
+ ReturnIfAbrupt(name);
114
+ // 3. Perform ? KeyedDestructuringAssignmentEvaluation of AssignmentElement with value and name as the arguments.
115
+ Q(yield* KeyedDestructuringAssignmentEvaluation(AssignmentProperty.AssignmentElement, value, name as PropertyKeyValue));
116
+ // 4. Return a new List containing name.
117
+ propertyNames.push(name as PropertyKeyValue);
118
+ }
119
+ }
120
+ return propertyNames;
121
+ }
122
+
123
+ // AssignmentElement : DestructuringAssignmentTarget Initializer?
124
+ function* KeyedDestructuringAssignmentEvaluation({
125
+ DestructuringAssignmentTarget,
126
+ Initializer,
127
+ }: ParseNode.AssignmentElement, value: Value, propertyName: PropertyKeyValue) {
128
+ // 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then
129
+ let lref;
130
+ if (DestructuringAssignmentTarget.type !== 'ObjectLiteral'
131
+ && DestructuringAssignmentTarget.type !== 'ArrayLiteral') {
132
+ // a. Let lref be the result of evaluating DestructuringAssignmentTarget.
133
+ lref = yield* Evaluate(DestructuringAssignmentTarget);
134
+ // b. ReturnIfAbrupt(lref).
135
+ ReturnIfAbrupt(lref);
136
+ }
137
+ // 2. Let v be ? GetV(value, propertyName).
138
+ const v = Q(GetV(value, propertyName));
139
+ // 3. If Initializer is present and v is undefined, then
140
+ let rhsValue: ExpressionCompletion;
141
+ if (Initializer && v === Value.undefined) {
142
+ // a. If IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then
143
+ if (IsAnonymousFunctionDefinition(Initializer) && IsIdentifierRef(DestructuringAssignmentTarget)) {
144
+ // i. Let rhsValue be NamedEvaluation of Initializer with argument GetReferencedName(lref).
145
+ rhsValue = yield* NamedEvaluation(Initializer as FunctionDeclaration, (lref as ReferenceRecord).ReferencedName as JSStringValue);
146
+ } else {
147
+ // i. Let defaultValue be the result of evaluating Initializer.
148
+ const defaultValue = yield* Evaluate(Initializer);
149
+ // ii. Let rhsValue be ? GetValue(defaultValue).
150
+ rhsValue = Q(GetValue(defaultValue));
151
+ }
152
+ } else { // 4. Else, let rhsValue be v.
153
+ rhsValue = v;
154
+ }
155
+ // 5. If DestructuringAssignmentTarget is an ObjectLiteral or an ArrayLiteral, then
156
+ if (DestructuringAssignmentTarget.type === 'ObjectLiteral'
157
+ || DestructuringAssignmentTarget.type === 'ArrayLiteral') {
158
+ // a. Let assignmentPattern be the AssignmentPattern that is covered by DestructuringAssignmentTarget.
159
+ const assignmentPattern = refineLeftHandSideExpression(DestructuringAssignmentTarget) as ParseNode.ObjectAssignmentPattern | ParseNode.ArrayAssignmentPattern;
160
+ // b. Return the result of performing DestructuringAssignmentEvaluation of assignmentPattern with rhsValue as the argument.
161
+ return yield* DestructuringAssignmentEvaluation(assignmentPattern, X(rhsValue));
162
+ }
163
+ // 6. Return ? PutValue(lref, rhsValue).
164
+ return Q(PutValue(X(lref!), rhsValue));
165
+ }
166
+
167
+ // ArrayAssignmentPattern :
168
+ // `[` `]`
169
+ // `[` AssignmentElementList `]`
170
+ // `[` AssignmentElementList `,` AssignmentRestElement? `]`
171
+ function* DestructuringAssignmentEvaluation_ArrayAssignmentPattern({ AssignmentElementList, AssignmentRestElement }: ParseNode.ArrayAssignmentPattern, value: Value) {
172
+ // 1. Let iteratorRecord be ? GetIterator(value).
173
+ const iteratorRecord = Q(GetIterator(value, 'sync'));
174
+ // 2. Let status be IteratorDestructuringAssignmentEvaluation of AssignmentElementList with argument iteratorRecord.
175
+ let status = EnsureCompletion(yield* IteratorDestructuringAssignmentEvaluation(AssignmentElementList, iteratorRecord));
176
+ // 3. If status is an abrupt completion, then
177
+ if (status instanceof AbruptCompletion) {
178
+ // a. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, status).
179
+ if (iteratorRecord.Done === Value.false) {
180
+ return Q(IteratorClose(iteratorRecord, status));
181
+ }
182
+ // b. Return Completion(status).
183
+ return status;
184
+ }
185
+ // 4. If Elision is present, then
186
+ // ...
187
+ // 5. If AssignmentRestElement is present, then
188
+ if (AssignmentRestElement) {
189
+ // a. Set status to the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument.
190
+ status = EnsureCompletion(yield* IteratorDestructuringAssignmentEvaluation(AssignmentRestElement, iteratorRecord));
191
+ }
192
+ // 6. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, status).
193
+ if (iteratorRecord.Done === Value.false) {
194
+ return Q(IteratorClose(iteratorRecord, status));
195
+ }
196
+ return Completion(status);
197
+ }
198
+
199
+ function* IteratorDestructuringAssignmentEvaluation(node: ParseNode.AssignmentElisionElement[] | ParseNode.AssignmentElisionElement | ParseNode.AssignmentRestElement, iteratorRecord: IteratorRecord): StatementEvaluator {
200
+ if (Array.isArray(node)) {
201
+ for (const n of node) {
202
+ Q(yield* IteratorDestructuringAssignmentEvaluation(n, iteratorRecord));
203
+ }
204
+ return NormalCompletion(undefined);
205
+ }
206
+ switch (node.type) {
207
+ case 'Elision':
208
+ // 1. If iteratorRecord.[[Done]] is false, then
209
+ if (iteratorRecord.Done === Value.false) {
210
+ // a. Perform ? IteratorStep(iteratorRecord).
211
+ Q(IteratorStep(iteratorRecord));
212
+ }
213
+ // 2. Return NormalCompletion(empty).
214
+ return NormalCompletion(undefined);
215
+ case 'AssignmentElement': {
216
+ const { DestructuringAssignmentTarget, Initializer } = node;
217
+ let lref;
218
+ // 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then
219
+ if (DestructuringAssignmentTarget.type !== 'ObjectLiteral'
220
+ && DestructuringAssignmentTarget.type !== 'ArrayLiteral') {
221
+ lref = Q(yield* Evaluate(DestructuringAssignmentTarget));
222
+ }
223
+ let value: Value = Value.undefined;
224
+ // 2. If iteratorRecord.[[Done]] is false, then
225
+ if (iteratorRecord.Done === Value.false) {
226
+ // a. Let next be ? IteratorStepValue(iteratorRecord).
227
+ const next = Q(IteratorStepValue(iteratorRecord));
228
+ // d. If next is not done, set value to next.
229
+ if (next !== 'done') {
230
+ value = next;
231
+ }
232
+ }
233
+ let v: ExpressionCompletion;
234
+ // 4. If Initializer is present and value is undefined, then
235
+ if (Initializer && value === Value.undefined) {
236
+ // a. If IsAnonymousFunctionDefinition(AssignmentExpression) is true and IsIdentifierRef of LeftHandSideExpression is true, then
237
+ if (IsAnonymousFunctionDefinition(Initializer) && IsIdentifierRef(DestructuringAssignmentTarget)) {
238
+ // i. Let target be the StringValue of DestructuringAssignmentTarget.
239
+ const target = (lref as ReferenceRecord).ReferencedName as JSStringValue;
240
+ // i. ii. Let v be ? NamedEvaluation of Initializer with argument target.
241
+ v = yield* NamedEvaluation(Initializer as FunctionDeclaration, target);
242
+ } else { // b. Else,
243
+ // i. Let defaultValue be the result of evaluating Initializer.
244
+ const defaultValue = yield* Evaluate(Initializer);
245
+ // ii. Let v be ? GetValue(defaultValue).
246
+ v = Q(GetValue(defaultValue));
247
+ }
248
+ } else { // 5. Else, let v be value.
249
+ v = Q(value!);
250
+ }
251
+ // 6. If DestructuringAssignmentTarget is an ObjectLiteral or an ArrayLiteral, then
252
+ if (DestructuringAssignmentTarget.type === 'ObjectLiteral'
253
+ || DestructuringAssignmentTarget.type === 'ArrayLiteral') {
254
+ // a. Let nestedAssignmentPattern be the AssignmentPattern that is covered by DestructuringAssignmentTarget.
255
+ const nestedAssignmentPattern = refineLeftHandSideExpression(DestructuringAssignmentTarget) as ParseNode.ObjectAssignmentPattern | ParseNode.ArrayAssignmentPattern;
256
+ // b. Return the result of performing DestructuringAssignmentEvaluation of nestedAssignmentPattern with v as the argument.
257
+ return yield* DestructuringAssignmentEvaluation(nestedAssignmentPattern, X(v));
258
+ }
259
+ // 7. Return ? PutValue(lref, v).
260
+ return Q(PutValue(lref as ReferenceRecord, v));
261
+ }
262
+ case 'AssignmentRestElement': {
263
+ const { AssignmentExpression: DestructuringAssignmentTarget } = node;
264
+ let lref;
265
+ // 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then
266
+ if (DestructuringAssignmentTarget.type !== 'ObjectLiteral'
267
+ && DestructuringAssignmentTarget.type !== 'ArrayLiteral') {
268
+ lref = yield* Evaluate(DestructuringAssignmentTarget);
269
+ ReturnIfAbrupt(lref);
270
+ }
271
+ // 2. Let A be ! ArrayCreate(0).
272
+ const A = X(ArrayCreate(0));
273
+ // 3. Let n be 0.
274
+ let n = 0;
275
+ // 4. Repeat, while iteratorRecord.[[Done]] is false,
276
+ while (iteratorRecord.Done === Value.false) {
277
+ // a. Let next be IteratorStep(iteratorRecord).
278
+ const next = Q(IteratorStepValue(iteratorRecord));
279
+ // d. If next is not done, then
280
+ if (next !== 'done') {
281
+ // i. Perform ! CreateDataPropertyOrThrow(A, ! ToString(𝔽(n)), next).
282
+ X(CreateDataPropertyOrThrow(A, X(ToString(F(n))), X(next)));
283
+ // v. Set n to n + 1.
284
+ n += 1;
285
+ }
286
+ }
287
+ // 5. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then
288
+ if (DestructuringAssignmentTarget.type !== 'ObjectLiteral'
289
+ && DestructuringAssignmentTarget.type !== 'ArrayLiteral') {
290
+ return Q(PutValue(lref as ReferenceRecord, A));
291
+ }
292
+ // 6. Let nestedAssignmentPattern be the AssignmentPattern that is covered by DestructuringAssignmentTarget.
293
+ const nestedAssignmentPattern = refineLeftHandSideExpression(DestructuringAssignmentTarget) as ParseNode.ObjectAssignmentPattern | ParseNode.ArrayAssignmentPattern;
294
+ // 7. Return the result of performing DestructuringAssignmentEvaluation of nestedAssignmentPattern with A as the argument.
295
+ return yield* DestructuringAssignmentEvaluation(nestedAssignmentPattern, A);
296
+ }
297
+ default:
298
+ throw new OutOfRange('IteratorDestructuringAssignmentEvaluation', node);
299
+ }
300
+ }
301
+
302
+ export function DestructuringAssignmentEvaluation(node: ParseNode.ObjectAssignmentPattern | ParseNode.ArrayAssignmentPattern, value: Value): StatementEvaluator {
303
+ switch (node.type) {
304
+ case 'ObjectAssignmentPattern':
305
+ return DestructuringAssignmentEvaluation_ObjectAssignmentPattern(node, value);
306
+ case 'ArrayAssignmentPattern':
307
+ return DestructuringAssignmentEvaluation_ArrayAssignmentPattern(node, value);
308
+ default:
309
+ throw new OutOfRange('DestructuringAssignmentEvaluation', node);
310
+ }
311
+ }
@@ -0,0 +1,9 @@
1
+ import { NormalCompletion } from '../completion.mts';
2
+ import type { ParseNode } from '../parser/ParseNode.mts';
3
+
4
+ /** https://tc39.es/ecma262/#sec-empty-statement-runtime-semantics-evaluation */
5
+ // EmptyStatement : `;`
6
+ export function Evaluate_EmptyStatement(_EmptyStatement: ParseNode.EmptyStatement) {
7
+ // 1. Return NormalCompletion(empty).
8
+ return NormalCompletion(undefined);
9
+ }
@@ -0,0 +1,61 @@
1
+ import {
2
+ AbstractEqualityComparison,
3
+ GetValue,
4
+ IsStrictlyEqual,
5
+ } from '../abstract-ops/all.mts';
6
+ import { ReturnIfAbrupt, Q, X } from '../completion.mts';
7
+ import { Evaluate } from '../evaluator.mts';
8
+ import { Value } from '../value.mts';
9
+ import { OutOfRange } from '../helpers.mts';
10
+ import type { ParseNode } from '../parser/ParseNode.mts';
11
+
12
+ /** https://tc39.es/ecma262/#sec-equality-operators-runtime-semantics-evaluation */
13
+ // EqualityExpression :
14
+ // EqualityExpression `==` RelationalExpression
15
+ // EqualityExpression `!=` RelationalExpression
16
+ // EqualityExpression `===` RelationalExpression
17
+ // EqualityExpression `!==` RelationalExpression
18
+ export function* Evaluate_EqualityExpression({ EqualityExpression, operator, RelationalExpression }: ParseNode.EqualityExpression) {
19
+ // 1. Let lref be the result of evaluating EqualityExpression.
20
+ const lref = yield* Evaluate(EqualityExpression);
21
+ // 2. Let lval be ? GetValue(lref).
22
+ const lval = Q(GetValue(lref));
23
+ // 3. Let rref be the result of evaluating RelationalExpression.
24
+ const rref = yield* Evaluate(RelationalExpression);
25
+ // 4. Let rval be ? GetValue(rref).
26
+ const rval = Q(GetValue(rref));
27
+ switch (operator) {
28
+ case '==':
29
+ // 5. Return the result of performing Abstract Equality Comparison rval == lval.
30
+ return AbstractEqualityComparison(rval, lval);
31
+ case '!=': {
32
+ // 5. Let r be the result of performing Abstract Equality Comparison rval == lval.
33
+ const r = AbstractEqualityComparison(rval, lval);
34
+ // 6. ReturnIfAbrupt(r).
35
+ ReturnIfAbrupt(r);
36
+ // 7. If r is true, return false. Otherwise, return true.
37
+ if (r === Value.true) {
38
+ return Value.false;
39
+ } else {
40
+ return Value.true;
41
+ }
42
+ }
43
+ case '===':
44
+ // 5. Return the result of performing Strict Equality Comparison rval === lval.
45
+ return IsStrictlyEqual(rval, lval);
46
+ case '!==': {
47
+ // 5. Let r be the result of performing Strict Equality Comparison rval === lval.
48
+ // 6. Assert: r is a normal completion.
49
+ const r = X(IsStrictlyEqual(rval, lval));
50
+ // 7. If r.[[Value]] is true, return false. Otherwise, return true.
51
+ if (r === Value.true) {
52
+ return Value.false;
53
+ } else {
54
+ return Value.true;
55
+ }
56
+ }
57
+
58
+ default:
59
+ throw new OutOfRange('Evaluate_EqualityExpression', operator);
60
+ }
61
+ }