@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,272 @@
1
+ import { surroundingAgent } from '../engine.mts';
2
+ import { Value, type Arguments } from '../value.mts';
3
+ import {
4
+ Assert,
5
+ CreateListIteratorRecord,
6
+ CreateMappedArgumentsObject,
7
+ CreateUnmappedArgumentsObject,
8
+ type ECMAScriptFunctionObject,
9
+ } from '../abstract-ops/all.mts';
10
+ import {
11
+ BoundNames,
12
+ IsConstantDeclaration,
13
+ IsSimpleParameterList,
14
+ ContainsExpression,
15
+ VarDeclaredNames,
16
+ VarScopedDeclarations,
17
+ LexicallyDeclaredNames,
18
+ LexicallyScopedDeclarations,
19
+ } from '../static-semantics/all.mts';
20
+ import { DeclarativeEnvironmentRecord } from '../environment.mts';
21
+ import { Q, X, NormalCompletion } from '../completion.mts';
22
+ import { JSStringSet } from '../helpers.mts';
23
+ import type { StatementEvaluator } from '../evaluator.mts';
24
+ import {
25
+ InstantiateFunctionObject,
26
+ IteratorBindingInitialization_FormalParameters,
27
+ } from './all.mts';
28
+
29
+ /** https://tc39.es/ecma262/#sec-functiondeclarationinstantiation */
30
+ export function* FunctionDeclarationInstantiation(func: ECMAScriptFunctionObject, argumentsList: Arguments): StatementEvaluator {
31
+ // 1. Let calleeContext be the running execution context.
32
+ const calleeContext = surroundingAgent.runningExecutionContext;
33
+ // 2. Let code be func.[[ECMAScriptCode]].
34
+ const code = func.ECMAScriptCode;
35
+ // 3. Let strict be func.[[Strict]].
36
+ const strict = func.Strict;
37
+ // 4. Let formals be func.[[FormalParameters]].
38
+ const formals = func.FormalParameters;
39
+ // 5. Let parameterNames be BoundNames of formals.
40
+ const parameterNames = BoundNames(formals);
41
+ // 6. If parameterNames has any duplicate entries, let hasDuplicates be true. Otherwise, let hasDuplicates be false.
42
+ const hasDuplicates = new JSStringSet(parameterNames).size !== parameterNames.length;
43
+ // 7. Let simpleParameterList be IsSimpleParameterList of formals.
44
+ const simpleParameterList = IsSimpleParameterList(formals);
45
+ // 8. Let hasParameterExpressions be ContainsExpression of formals.
46
+ const hasParameterExpressions = ContainsExpression(formals);
47
+ // 9. Let varNames be the VarDeclaredNames of code.
48
+ const varNames = VarDeclaredNames(code);
49
+ // 10. Let varDeclarations be the VarScopedDeclarations of code.
50
+ const varDeclarations = VarScopedDeclarations(code);
51
+ // 11. Let lexicalNames be the LexicallyDeclaredNames of code.
52
+ const lexicalNames = new JSStringSet(LexicallyDeclaredNames(code));
53
+ // 12. Let functionNames be a new empty List.
54
+ const functionNames = new JSStringSet();
55
+ // 13. Let functionNames be a new empty List.
56
+ const functionsToInitialize = [];
57
+ // 14. For each d in varDeclarations, in reverse list order, do
58
+ for (const d of [...varDeclarations].reverse()) {
59
+ // a. If d is neither a VariableDeclaration nor a ForBinding nor a BindingIdentifier, then
60
+ if (d.type !== 'VariableDeclaration'
61
+ && d.type !== 'ForBinding'
62
+ && d.type !== 'BindingIdentifier') {
63
+ // i. Assert: d is either a FunctionDeclaration, a GeneratorDeclaration, an AsyncFunctionDeclaration, or an AsyncGeneratorDeclaration.
64
+ Assert(d.type === 'FunctionDeclaration'
65
+ || d.type === 'GeneratorDeclaration'
66
+ || d.type === 'AsyncFunctionDeclaration'
67
+ || d.type === 'AsyncGeneratorDeclaration');
68
+ // ii. Let fn be the sole element of the BoundNames of d.
69
+ const fn = BoundNames(d)[0];
70
+ // iii. If fn is not an element of functionNames, then
71
+ if (!functionNames.has(fn)) {
72
+ // 1. Insert fn as the first element of functionNames.
73
+ functionNames.add(fn);
74
+ // 2. NOTE: If there are multiple function declarations for the same name, the last declaration is used.
75
+ // 3. Insert d as the first element of functionsToInitialize.
76
+ functionsToInitialize.unshift(d);
77
+ }
78
+ }
79
+ }
80
+ // 15. Let argumentsObjectNeeded be true.
81
+ let argumentsObjectNeeded = true;
82
+ // If func.[[ThisMode]] is lexical, then
83
+ if (func.ThisMode === 'lexical') {
84
+ // a. NOTE: Arrow functions never have an arguments objects.
85
+ // b. Set argumentsObjectNeeded to false.
86
+ argumentsObjectNeeded = false;
87
+ } else if (new JSStringSet(parameterNames).has('arguments')) {
88
+ // a. Set argumentsObjectNeeded to false.
89
+ argumentsObjectNeeded = false;
90
+ } else if (hasParameterExpressions === false) {
91
+ // a. If "arguments" is an element of functionNames or if "arguments" is an element of lexicalNames, then
92
+ if (functionNames.has('arguments') || lexicalNames.has('arguments')) {
93
+ // i. Set argumentsObjectNeeded to false.
94
+ argumentsObjectNeeded = false;
95
+ }
96
+ }
97
+ let env;
98
+ // 19. If strict is true or if hasParameterExpressions is false, then
99
+ if (strict || hasParameterExpressions === false) {
100
+ // a. NOTE: Only a single lexical environment is needed for the parameters and top-level vars.
101
+ // b. Let env be the LexicalEnvironment of calleeContext.
102
+ env = calleeContext.LexicalEnvironment;
103
+ } else {
104
+ // a. NOTE: A separate Environment Record is needed to ensure that bindings created by direct eval
105
+ // calls in the formal parameter list are outside the environment where parameters are declared.
106
+ // b. Let calleeEnv be the LexicalEnvironment of calleeContext.
107
+ const calleeEnv = calleeContext.LexicalEnvironment;
108
+ // c. Let env be NewDeclarativeEnvironment(calleeEnv).
109
+ env = new DeclarativeEnvironmentRecord(calleeEnv);
110
+ // d. Assert: The VariableEnvironment of calleeContext is calleeEnv.
111
+ Assert(calleeContext.VariableEnvironment === calleeEnv);
112
+ // e. Set the LexicalEnvironment of calleeContext to env.
113
+ calleeContext.LexicalEnvironment = env;
114
+ }
115
+ // 21. For each String paramName in parameterNames, do
116
+ for (const paramName of parameterNames) {
117
+ // a. Let alreadyDeclared be env.HasBinding(paramName).
118
+ const alreadyDeclared = env.HasBinding(paramName);
119
+ // b. NOTE: Early errors ensure that duplicate parameter names can only occur in
120
+ // non-strict functions that do not have parameter default values or rest parameters.
121
+ // c. If alreadyDeclared is false, then
122
+ if (alreadyDeclared === Value.false) {
123
+ // i. Perform ! env.CreateMutableBinding(paramName, false).
124
+ X(env.CreateMutableBinding(paramName, Value.false));
125
+ // ii. If hasDuplicates is true, then
126
+ if (hasDuplicates === true) {
127
+ // 1. Perform ! env.InitializeBinding(paramName, undefined).
128
+ X(env.InitializeBinding(paramName, Value.undefined));
129
+ }
130
+ }
131
+ }
132
+ // 22. If argumentsObjectNeeded is true, then
133
+ let parameterBindings: JSStringSet;
134
+ if (argumentsObjectNeeded === true) {
135
+ let ao;
136
+ // a. If strict is true or if simpleParameterList is false, then
137
+ if (strict || simpleParameterList === false) {
138
+ // i. Let ao be CreateUnmappedArgumentsObject(argumentsList).
139
+ ao = CreateUnmappedArgumentsObject(argumentsList);
140
+ } else {
141
+ // i. NOTE: mapped argument object is only provided for non-strict functions
142
+ // that don't have a rest parameter, any parameter default value initializers,
143
+ // or any destructured parameters.
144
+ // ii. Let ao be CreateMappedArgumentsObject(func, formals, argumentsList, env).
145
+ ao = CreateMappedArgumentsObject(func, formals, argumentsList, env);
146
+ }
147
+ // c. If strict is true, then
148
+ if (strict) {
149
+ // i. Perform ! env.CreateImmutableBinding("arguments", false).
150
+ X(env.CreateImmutableBinding(Value('arguments'), Value.false));
151
+ } else {
152
+ // i. Perform ! env.CreateMutableBinding("arguments", false).
153
+ X(env.CreateMutableBinding(Value('arguments'), Value.false));
154
+ }
155
+ // e. Call env.InitializeBinding("arguments", ao).
156
+ env.InitializeBinding(Value('arguments'), ao);
157
+ // f. Let parameterBindings be a new List of parameterNames with "arguments" appended.
158
+ parameterBindings = new JSStringSet(parameterNames);
159
+ parameterBindings.add('arguments');
160
+ } else {
161
+ // a. Let parameterBindings be parameterNames.
162
+ parameterBindings = new JSStringSet(parameterNames);
163
+ }
164
+ // 24. Let iteratorRecord be CreateListIteratorRecord(argumentsList).
165
+ const iteratorRecord = CreateListIteratorRecord(argumentsList);
166
+ // 25. If hasDuplicates is true, then
167
+ if (hasDuplicates) {
168
+ // a. Perform ? IteratorBindingInitialization for formals with iteratorRecord and undefined as arguments.
169
+ Q(yield* IteratorBindingInitialization_FormalParameters(formals, iteratorRecord, Value.undefined));
170
+ } else {
171
+ // a. Perform ? IteratorBindingInitialization for formals with iteratorRecord and env as arguments.
172
+ Q(yield* IteratorBindingInitialization_FormalParameters(formals, iteratorRecord, env));
173
+ }
174
+ let varEnv;
175
+ // 27. If hasParameterExpressions is false, then
176
+ if (hasParameterExpressions === false) {
177
+ // a. NOTE: Only a single lexical environment is needed for the parameters and top-level vars.
178
+ // b. Let instantiatedVarNames be a copy of the List parameterBindings.
179
+ const instantiatedVarNames = new JSStringSet(parameterBindings);
180
+ // c. For each n in varNames, do
181
+ for (const n of varNames) {
182
+ // i. If n is not an element of instantiatedVarNames, then
183
+ if (!instantiatedVarNames.has(n)) {
184
+ // 1. Append n to instantiatedVarNames.
185
+ instantiatedVarNames.add(n);
186
+ // 2. Perform ! env.CreateMutableBinding(n, false).
187
+ X(env.CreateMutableBinding(n, Value.false));
188
+ // 3. Call env.InitializeBinding(n, undefined).
189
+ env.InitializeBinding(n, Value.undefined);
190
+ }
191
+ }
192
+ // d. Let varEnv be env.
193
+ varEnv = env;
194
+ } else {
195
+ // a. NOTE: A separate Environment Record is needed to ensure that closures created by expressions
196
+ // in the formal parameter list do not have visibility of declarations in the function body.
197
+ // b. Let varEnv be NewDeclarativeEnvironment(env).
198
+ varEnv = new DeclarativeEnvironmentRecord(env);
199
+ // c. Set the VariableEnvironment of calleeContext to varEnv.
200
+ calleeContext.VariableEnvironment = varEnv;
201
+ // d. Let instantiatedVarNames be a new empty List.
202
+ const instantiatedVarNames = new JSStringSet();
203
+ // e. For each n in varNames, do
204
+ for (const n of varNames) {
205
+ // If n is not an element of instantiatedVarNames, then
206
+ if (!instantiatedVarNames.has(n)) {
207
+ // 1. Append n to instantiatedVarNames.
208
+ instantiatedVarNames.add(n);
209
+ // 2. Perform ! varEnv.CreateMutableBinding(n, false).
210
+ X(varEnv.CreateMutableBinding(n, Value.false));
211
+ let initialValue;
212
+ // 3. If n is not an element of parameterBindings or if n is an element of functionNames, let initialValue be undefined.
213
+ if (!parameterBindings.has(n) || functionNames.has(n)) {
214
+ initialValue = Value.undefined;
215
+ } else {
216
+ // a. Let initialValue be ! env.GetBindingValue(n, false).
217
+ initialValue = X(env.GetBindingValue(n, Value.false));
218
+ }
219
+ // 5. Call varEnv.InitializeBinding(n, initialValue).
220
+ varEnv.InitializeBinding(n, initialValue);
221
+ // 6. NOTE: vars whose names are the same as a formal parameter, initially have the same value as the corresponding initialized parameter.
222
+ }
223
+ }
224
+ }
225
+ // 29. NOTE: Annex B.3.3.1 adds additional steps at this point.
226
+ let lexEnv;
227
+ // 30. If strict is false, then
228
+ if (strict === false) {
229
+ // a. Let lexEnv be NewDeclarativeEnvironment(varEnv).
230
+ lexEnv = new DeclarativeEnvironmentRecord(varEnv);
231
+ // b. NOTE: Non-strict functions use a separate lexical Environment Record for top-level lexical declarations
232
+ // so that a direct eval can determine whether any var scoped declarations introduced by the eval code
233
+ // conflict with pre-existing top-level lexically scoped declarations. This is not needed for strict functions
234
+ // because a strict direct eval always places all declarations into a new Environment Record.
235
+ } else {
236
+ // a. Else, let lexEnv be varEnv.
237
+ lexEnv = varEnv;
238
+ }
239
+ // 32. Set the LexicalEnvironment of calleeContext to lexEnv.
240
+ calleeContext.LexicalEnvironment = lexEnv;
241
+ // 33. Let lexDeclarations be the LexicallyScopedDeclarations of code.
242
+ const lexDeclarations = LexicallyScopedDeclarations(code);
243
+ // 34. For each element d in lexDeclarations, do
244
+ for (const d of lexDeclarations) {
245
+ // a. NOTE: A lexically declared name cannot be the same as a function/generator declaration, formal
246
+ // parameter, or a var name. Lexically declared names are only instantiated here but not initialized.
247
+ // b. For each element dn of the BoundNames of d, do
248
+ for (const dn of BoundNames(d)) {
249
+ // i. If IsConstantDeclaration of d is true, then
250
+ if (IsConstantDeclaration(d)) {
251
+ // 1. Perform ! lexEnv.CreateImmutableBinding(dn, true).
252
+ X(lexEnv.CreateImmutableBinding(dn, Value.true));
253
+ } else {
254
+ // 1. Perform ! lexEnv.CreateMutableBinding(dn, false).
255
+ X(lexEnv.CreateMutableBinding(dn, Value.false));
256
+ }
257
+ }
258
+ }
259
+ // 35. Let privateEnv be the PrivateEnvironment of calleeContext.
260
+ const privateEnv = calleeContext.PrivateEnvironment;
261
+ // 36. For each Parse Node f in functionsToInitialize, do
262
+ for (const f of functionsToInitialize) {
263
+ // a. Let fn be the sole element of the BoundNames of f.
264
+ const fn = BoundNames(f)[0];
265
+ // b. Let fo be InstantiateFunctionObject of f with argument lexEnv and privateEnv.
266
+ const fo = InstantiateFunctionObject(f, lexEnv, privateEnv);
267
+ // c. Perform ! varEnv.SetMutableBinding(fn, fo, false).
268
+ X(varEnv.SetMutableBinding(fn, fo, Value.false));
269
+ }
270
+ // 37. Return NormalCompletion(empty).
271
+ return NormalCompletion(undefined);
272
+ }
@@ -0,0 +1,11 @@
1
+ import type { ParseNode } from '../parser/ParseNode.mts';
2
+ import { InstantiateOrdinaryFunctionExpression } from './all.mts';
3
+
4
+ /** https://tc39.es/ecma262/#sec-function-definitions-runtime-semantics-evaluation */
5
+ // FunctionExpression :
6
+ // `function` `(` FormalParameters `)` `{` FunctionBody `}`
7
+ // `function` BindingIdentifier `(` FormalParameters `)` `{` FunctionBody `}`
8
+ export function Evaluate_FunctionExpression(FunctionExpression: ParseNode.FunctionExpression) {
9
+ // 1. Return InstantiateOrdinaryFunctionExpression of FunctionExpression.
10
+ return InstantiateOrdinaryFunctionExpression(FunctionExpression);
11
+ }
@@ -0,0 +1,11 @@
1
+ import type { ParseNode } from '../parser/ParseNode.mts';
2
+ import { Evaluate_StatementList } from './all.mts';
3
+
4
+ /** https://tc39.es/ecma262/#sec-function-definitions-runtime-semantics-evaluation */
5
+ // FunctionStatementList : [empty]
6
+ //
7
+ // (implicit)
8
+ // FunctionStatementList : StatementList
9
+ export function Evaluate_FunctionStatementList(FunctionStatementList: ParseNode.FunctionStatementList) {
10
+ return Evaluate_StatementList(FunctionStatementList);
11
+ }
@@ -0,0 +1,11 @@
1
+ import type { ParseNode } from '../parser/ParseNode.mts';
2
+ import { InstantiateGeneratorFunctionExpression } from './all.mts';
3
+
4
+ /** https://tc39.es/ecma262/#sec-generator-function-definitions-runtime-semantics-evaluation */
5
+ // GeneratorExpression :
6
+ // `function` `*` `(` FormalParameters `)` `{` GeneratorBody `}`
7
+ // `function` `*` BindingIdentifier `(` FormalParameters `)` `{` GeneratorBody `}`
8
+ export function Evaluate_GeneratorExpression(GeneratorExpression: ParseNode.GeneratorExpression) {
9
+ // 1. Return InstantiateGeneratorFunctionExpression of GeneratorExpression.
10
+ return InstantiateGeneratorFunctionExpression(GeneratorExpression);
11
+ }
@@ -0,0 +1,119 @@
1
+ import {
2
+ Assert,
3
+ Get,
4
+ ToString,
5
+ isNonNegativeInteger,
6
+ } from '../abstract-ops/all.mts';
7
+ import {
8
+ ObjectValue, UndefinedValue, JSStringValue, Value,
9
+ } from '../value.mts';
10
+ import { Q, type ExpressionCompletion } from '../completion.mts';
11
+
12
+ /** https://tc39.es/ecma262/#sec-getsubstitution */
13
+ export function GetSubstitution(matched: JSStringValue, str: JSStringValue, position: number, captures: readonly (JSStringValue | UndefinedValue)[], namedCaptures: UndefinedValue | ObjectValue, replacement: JSStringValue): ExpressionCompletion<JSStringValue> {
14
+ // 1. Assert: Type(matched) is String.
15
+ Assert(matched instanceof JSStringValue);
16
+ // 2. Let matchLength be the number of code units in matched.
17
+ const matchLength = matched.stringValue().length;
18
+ // 3. Assert: Type(str) is String.
19
+ Assert(str instanceof JSStringValue);
20
+ // 4. Let stringLength be the number of code units in str.
21
+ const stringLength = str.stringValue().length;
22
+ // 5. Assert: position is a non-negative integer.
23
+ Assert(isNonNegativeInteger(position));
24
+ // 6. Assert: position ≤ stringLength.
25
+ Assert(position <= stringLength);
26
+ // 7. Assert: captures is a possibly empty List of Strings.
27
+ Assert(Array.isArray(captures) && captures.every((value) => value instanceof JSStringValue || value instanceof UndefinedValue));
28
+ // 8. Assert: Type(replacement) is String.
29
+ Assert(replacement instanceof JSStringValue);
30
+ // 9. Let tailPos be position + matchLength.
31
+ const tailPos = position + matchLength;
32
+ // 10. Let m be the number of elements in captures.
33
+ const m = captures.length;
34
+ // 11. Let result be the String value derived from replacement by copying code unit elements from replacement
35
+ // to result while performing replacements as specified in Table 52. These $ replacements are done left-to-right,
36
+ // and, once such a replacement is performed, the new replacement text is not subject to further replacements.
37
+ const replacementStr = replacement.stringValue();
38
+ let result = '';
39
+ let i = 0;
40
+ while (i < replacementStr.length) {
41
+ const currentChar = replacementStr[i];
42
+ if (currentChar === '$' && i < replacementStr.length - 1) {
43
+ const nextChar = replacementStr[i + 1];
44
+ if (nextChar === '$') {
45
+ result += '$';
46
+ i += 2;
47
+ } else if (nextChar === '&') {
48
+ result += matched.stringValue();
49
+ i += 2;
50
+ } else if (nextChar === '`') {
51
+ if (position === 0) {
52
+ // Replacement is the empty String
53
+ } else {
54
+ result += str.stringValue().substring(0, position);
55
+ }
56
+ i += 2;
57
+ } else if (nextChar === '\'') {
58
+ if (tailPos >= stringLength) {
59
+ // Replacement is the empty String
60
+ } else {
61
+ result += str.stringValue().substring(tailPos);
62
+ }
63
+ i += 2;
64
+ } else if ('123456789'.includes(nextChar) && (i === replacementStr.length - 2 || !'0123456789'.includes(replacementStr[i + 2]))) {
65
+ const n = Number(nextChar);
66
+ if (n <= m) {
67
+ const capture = captures[n - 1];
68
+ if (!(capture instanceof UndefinedValue)) {
69
+ result += capture.stringValue();
70
+ }
71
+ } else {
72
+ result += `$${nextChar}`;
73
+ }
74
+ i += 2;
75
+ } else if (i < replacementStr.length - 2 && '0123456789'.includes(nextChar) && '0123456789'.includes(replacementStr[i + 2])) {
76
+ const nextNextChar = replacementStr[i + 2];
77
+ const n = Number(nextChar + nextNextChar);
78
+ if (n !== 0 && n <= m) {
79
+ const capture = captures[n - 1];
80
+ if (!(capture instanceof UndefinedValue)) {
81
+ result += capture.stringValue();
82
+ }
83
+ } else {
84
+ result += `$${nextChar}${nextNextChar}`;
85
+ }
86
+ i += 3;
87
+ } else if (nextChar === '<') {
88
+ if (namedCaptures === Value.undefined) {
89
+ result += '$<';
90
+ i += 2;
91
+ } else {
92
+ Assert(namedCaptures instanceof ObjectValue);
93
+ const nextSign = replacementStr.indexOf('>', i);
94
+ if (nextSign === -1) {
95
+ result += '$<';
96
+ i += 2;
97
+ } else {
98
+ const groupName = Value(replacementStr.substring(i + 2, nextSign));
99
+ const capture = Q(Get(namedCaptures, groupName));
100
+ if (capture === Value.undefined) {
101
+ // Replace the text with the empty string
102
+ } else {
103
+ result += Q(ToString(capture)).stringValue();
104
+ }
105
+ i = nextSign + 1;
106
+ }
107
+ }
108
+ } else {
109
+ result += '$';
110
+ i += 1;
111
+ }
112
+ } else {
113
+ result += currentChar;
114
+ i += 1;
115
+ }
116
+ }
117
+ // 12. Return result.
118
+ return Value(result);
119
+ }
@@ -0,0 +1,146 @@
1
+ import { surroundingAgent } from '../engine.mts';
2
+ import { GlobalEnvironmentRecord } from '../environment.mts';
3
+ import { Assert } from '../abstract-ops/all.mts';
4
+ import {
5
+ BoundNames,
6
+ IsConstantDeclaration,
7
+ LexicallyDeclaredNames,
8
+ LexicallyScopedDeclarations,
9
+ VarDeclaredNames,
10
+ VarScopedDeclarations,
11
+ } from '../static-semantics/all.mts';
12
+ import { Value } from '../value.mts';
13
+ import { Q, NormalCompletion } from '../completion.mts';
14
+ import { JSStringSet } from '../helpers.mts';
15
+ import type { ParseNode } from '../parser/ParseNode.mts';
16
+ import { InstantiateFunctionObject } from './all.mts';
17
+
18
+ export function GlobalDeclarationInstantiation(script: ParseNode.Script, env: GlobalEnvironmentRecord) {
19
+ // 2. Let lexNames be the LexicallyDeclaredNames of script.
20
+ const lexNames = LexicallyDeclaredNames(script);
21
+ // 3. Let varNames be the VarDeclaredNames of script.
22
+ const varNames = VarDeclaredNames(script);
23
+ // 4. For each name in lexNames, do
24
+ for (const name of lexNames) {
25
+ // 1. If env.HasVarDeclaration(name) is true, throw a SyntaxError exception.
26
+ if (env.HasVarDeclaration(name) === Value.true) {
27
+ return surroundingAgent.Throw('SyntaxError', 'AlreadyDeclared', name);
28
+ }
29
+ // 1. If env.HasLexicalDeclaration(name) is true, throw a SyntaxError exception.
30
+ if (env.HasLexicalDeclaration(name) === Value.true) {
31
+ return surroundingAgent.Throw('SyntaxError', 'AlreadyDeclared', name);
32
+ }
33
+ // 1. Let hasRestrictedGlobal be ? env.HasRestrictedGlobalProperty(name).
34
+ const hasRestrictedGlobal = Q(env.HasRestrictedGlobalProperty(name));
35
+ // 1. If hasRestrictedGlobal is true, throw a SyntaxError exception.
36
+ if (hasRestrictedGlobal === Value.true) {
37
+ return surroundingAgent.Throw('SyntaxError', 'AlreadyDeclared', name);
38
+ }
39
+ }
40
+ // 5. For each name in varNames, do
41
+ for (const name of varNames) {
42
+ // 1. If env.HasLexicalDeclaration(name) is true, throw a SyntaxError exception.
43
+ if (env.HasLexicalDeclaration(name) === Value.true) {
44
+ return surroundingAgent.Throw('SyntaxError', 'AlreadyDeclared', name);
45
+ }
46
+ }
47
+ // 6. Let varDeclarations be the VarScopedDeclarations of script.
48
+ const varDeclarations = VarScopedDeclarations(script);
49
+ // 7. Let functionsToInitialize be a new empty List.
50
+ const functionsToInitialize = [];
51
+ // 8. Let declaredFunctionNames be a new empty List.
52
+ const declaredFunctionNames = new JSStringSet();
53
+ // 9. For each d in varDeclarations, in reverse list order, do
54
+ for (const d of [...varDeclarations].reverse()) {
55
+ // a. If d is neither a VariableDeclaration nor a ForBinding nor a BindingIdentifier, then
56
+ if (d.type !== 'VariableDeclaration'
57
+ && d.type !== 'ForBinding'
58
+ && d.type !== 'BindingIdentifier') {
59
+ // i. Assert: d is either a FunctionDeclaration, a GeneratorDeclaration, an AsyncFunctionDeclaration, or an AsyncGeneratorDeclaration.
60
+ Assert(d.type === 'FunctionDeclaration'
61
+ || d.type === 'GeneratorDeclaration'
62
+ || d.type === 'AsyncFunctionDeclaration'
63
+ || d.type === 'AsyncGeneratorDeclaration');
64
+ // ii. NOTE: If there are multiple function declarations for the same name, the last declaration is used.
65
+ // iii. Let fn be the sole element of the BoundNames of d.
66
+ const fn = BoundNames(d)[0];
67
+ // iv. If fn is not an element of declaredFunctionNames, then
68
+ if (!declaredFunctionNames.has(fn)) {
69
+ // 1. Let fnDefinable be ? env.CanDeclareGlobalFunction(fn).
70
+ const fnDefinable = Q(env.CanDeclareGlobalFunction(fn));
71
+ // 2. If fnDefinable is false, throw a TypeError exception.
72
+ if (fnDefinable === Value.false) {
73
+ return surroundingAgent.Throw('TypeError', 'AlreadyDeclared', fn);
74
+ }
75
+ // 3. Append fn to declaredFunctionNames.
76
+ declaredFunctionNames.add(fn);
77
+ // 4. Insert d as the first element of functionsToInitialize.
78
+ functionsToInitialize.unshift(d);
79
+ }
80
+ }
81
+ }
82
+ // 10. Let declaredVarNames be a new empty List.
83
+ const declaredVarNames = new JSStringSet();
84
+ // 11. For each d in varDeclarations, do
85
+ for (const d of varDeclarations) {
86
+ // a. If d is a VariableDeclaration, a ForBinding, or a BindingIdentifier, then
87
+ if (d.type === 'VariableDeclaration'
88
+ || d.type === 'ForBinding'
89
+ || d.type === 'BindingIdentifier') {
90
+ // i. For each String vn in the BoundNames of d, do
91
+ for (const vn of BoundNames(d)) {
92
+ // 1. If vn is not an element of declaredFunctionNames, then
93
+ if (!declaredFunctionNames.has(vn)) {
94
+ // a. Let vnDefinable be ? env.CanDeclareGlobalVar(vn).
95
+ const vnDefinable = Q(env.CanDeclareGlobalVar(vn));
96
+ // b. If vnDefinable is false, throw a TypeError exception.
97
+ if (vnDefinable === Value.false) {
98
+ return surroundingAgent.Throw('TypeError', 'AlreadyDeclared', vn);
99
+ }
100
+ // c. If vn is not an element of declaredVarNames, then
101
+ if (!declaredVarNames.has(vn)) {
102
+ // i. Append vn to declaredVarNames.
103
+ declaredVarNames.add(vn);
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ // 12. NOTE: No abnormal terminations occur after this algorithm step if the global object is an ordinary object. However, if the global object is a Proxy exotic object it may exhibit behaviours that cause abnormal terminations in some of the following steps.
110
+ // 13. NOTE: Annex B.3.3.2 adds additional steps at this point.
111
+ // 14. Let lexDeclarations be the LexicallyScopedDeclarations of script.
112
+ const lexDeclarations = LexicallyScopedDeclarations(script);
113
+ // 15. Let privateEnv be null.
114
+ const privateEnv = Value.null;
115
+ // 16. For each element d in lexDeclarations, do
116
+ for (const d of lexDeclarations) {
117
+ // a. NOTE: Lexically declared names are only instantiated here but not initialized.
118
+ // b. For each element dn of the BoundNames of d, do
119
+ for (const dn of BoundNames(d)) {
120
+ // 1. If IsConstantDeclaration of d is true, then
121
+ if (IsConstantDeclaration(d)) {
122
+ // 1. Perform ? env.CreateImmutableBinding(dn, true).
123
+ Q(env.CreateImmutableBinding(dn, Value.true));
124
+ } else { // 1. Else,
125
+ // 1. Perform ? env.CreateMutableBinding(dn, false).
126
+ Q(env.CreateMutableBinding(dn, Value.false));
127
+ }
128
+ }
129
+ }
130
+ // 17. For each Parse Node f in functionsToInitialize, do
131
+ for (const f of functionsToInitialize) {
132
+ // a. Let fn be the sole element of the BoundNames of f.
133
+ const fn = BoundNames(f)[0];
134
+ // b. Let fo be InstantiateFunctionObject of f with argument env and privateEnv.
135
+ const fo = InstantiateFunctionObject(f, env, privateEnv);
136
+ // c. Perform ? env.CreateGlobalFunctionBinding(fn, fo, false).
137
+ Q(env.CreateGlobalFunctionBinding(fn, fo, Value.false));
138
+ }
139
+ // 18. For each String vn in declaredVarNames, in list order, do
140
+ for (const vn of declaredVarNames) {
141
+ // a. Perform ? env.CreateGlobalVarBinding(vn, false).
142
+ Q(env.CreateGlobalVarBinding(vn, Value.false));
143
+ }
144
+ // 19. Return NormalCompletion(empty).
145
+ return NormalCompletion(undefined);
146
+ }
@@ -0,0 +1,12 @@
1
+ import { NormalCompletion } from '../completion.mts';
2
+ import type { ParseNode } from '../parser/ParseNode.mts';
3
+
4
+ /** https://tc39.es/ecma262/#sec-statement-semantics-runtime-semantics-evaluation */
5
+ // HoistableDeclaration :
6
+ // GeneratorDeclaration
7
+ // AsyncFunctionDeclaration
8
+ // AsyncGeneratorDeclaration
9
+ export function Evaluate_HoistableDeclaration(_HoistableDeclaration: ParseNode.HoistableDeclaration) {
10
+ // 1. Return NormalCompletion(empty).
11
+ return NormalCompletion(undefined);
12
+ }
@@ -0,0 +1,15 @@
1
+ import { ResolveBinding } from '../abstract-ops/all.mts';
2
+ import { StringValue } from '../static-semantics/all.mts';
3
+ import { type PlainCompletion } from '../completion.mts';
4
+ import type { ParseNode } from '../parser/ParseNode.mts';
5
+ import type { ReferenceRecord } from '../value.mts';
6
+
7
+ /** https://tc39.es/ecma262/#sec-identifiers-runtime-semantics-evaluation */
8
+ // IdentifierReference :
9
+ // Identifier
10
+ // `yield`
11
+ // `await`
12
+ export function Evaluate_IdentifierReference(IdentifierReference: ParseNode.IdentifierReference): PlainCompletion<ReferenceRecord> {
13
+ // 1. Return ? ResolveBinding(StringValue of Identifier).
14
+ return ResolveBinding(StringValue(IdentifierReference), undefined, IdentifierReference.strict);
15
+ }
@@ -0,0 +1,49 @@
1
+ import { Evaluate } from '../evaluator.mts';
2
+ import {
3
+ GetValue,
4
+ ToBoolean,
5
+ } from '../abstract-ops/all.mts';
6
+ import {
7
+ Completion,
8
+ EnsureCompletion,
9
+ NormalCompletion,
10
+ Q,
11
+ UpdateEmpty,
12
+ } from '../completion.mts';
13
+ import { Value } from '../value.mts';
14
+ import type { ParseNode } from '../parser/ParseNode.mts';
15
+
16
+ /** https://tc39.es/ecma262/#sec-if-statement-runtime-semantics-evaluation */
17
+ // IfStatement :
18
+ // `if` `(` Expression `)` Statement `else` Statement
19
+ // `if` `(` Expression `)` Statement
20
+ export function* Evaluate_IfStatement({ Expression, Statement_a, Statement_b }: ParseNode.IfStatement) {
21
+ // 1. Let exprRef be the result of evaluating Expression.
22
+ const exprRef = yield* Evaluate(Expression);
23
+ // 2. Let exprValue be ! ToBoolean(? GetValue(exprRef)).
24
+ const exprValue = ToBoolean(Q(GetValue(exprRef)));
25
+ if (Statement_b) {
26
+ let stmtCompletion;
27
+ // 3. If exprValue is true, then
28
+ if (exprValue === Value.true) {
29
+ // a. Let stmtCompletion be the result of evaluating the first Statement.
30
+ stmtCompletion = yield* Evaluate(Statement_a);
31
+ } else { // 4. Else,
32
+ // a. Let stmtCompletion be the result of evaluating the second Statement.
33
+ stmtCompletion = yield* Evaluate(Statement_b);
34
+ }
35
+ // 5. Return Completion(UpdateEmpty(stmtCompletion, undefined)).
36
+ return Completion(UpdateEmpty(EnsureCompletion(stmtCompletion), Value.undefined));
37
+ } else {
38
+ // 3. If exprValue is false, then
39
+ if (exprValue === Value.false) {
40
+ // a. Return NormalCompletion(undefined).
41
+ return NormalCompletion(Value.undefined);
42
+ } else { // 4. Else,
43
+ // a. Let stmtCompletion be the result of evaluating Statement.
44
+ const stmtCompletion = yield* Evaluate(Statement_a);
45
+ // b. Return Completion(UpdateEmpty(stmtCompletion, undefined)).
46
+ return Completion(UpdateEmpty(EnsureCompletion(stmtCompletion), Value.undefined));
47
+ }
48
+ }
49
+ }