@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
package/src/value.mts ADDED
@@ -0,0 +1,981 @@
1
+ import { type GCMarker, surroundingAgent } from './engine.mts';
2
+ import {
3
+ Assert,
4
+ OrdinaryDefineOwnProperty,
5
+ OrdinaryDelete,
6
+ OrdinaryGet,
7
+ OrdinaryGetOwnProperty,
8
+ OrdinaryGetPrototypeOf,
9
+ OrdinaryHasProperty,
10
+ OrdinaryIsExtensible,
11
+ OrdinaryOwnPropertyKeys,
12
+ OrdinaryPreventExtensions,
13
+ OrdinarySet,
14
+ OrdinarySetPrototypeOf,
15
+ ToInt32,
16
+ ToUint32,
17
+ Z,
18
+ F, R, type OrdinaryObject, type FunctionObject,
19
+ type BuiltinFunctionObject,
20
+ } from './abstract-ops/all.mts';
21
+ import { EnvironmentRecord } from './environment.mts';
22
+ import {
23
+ Completion, Q, X, type ExpressionCompletion, type PlainCompletion,
24
+ } from './completion.mts';
25
+ import { PropertyKeyMap, OutOfRange, callable } from './helpers.mts';
26
+ import type { PrivateElementRecord } from './runtime-semantics/MethodDefinitionEvaluation.mts';
27
+
28
+ let createStringValue: (value: string) => JSStringValue; // set by static block in StringValue for privileged access to constructor
29
+ let createNumberValue: (value: number) => NumberValue; // set by static block in NumberValue for privileged access to constructor
30
+ let createBigIntValue: (value: bigint) => BigIntValue; // set by static block in BigIntValue for privileged access to constructor
31
+
32
+ abstract class BaseValue {
33
+ static declare readonly null: NullValue; // defined in static block of NullValue
34
+
35
+ static declare readonly undefined: UndefinedValue; // defined in static block of UndefinedValue
36
+
37
+ static declare readonly true: BooleanValue<true>; // defined in static block of BooleanValue
38
+
39
+ static declare readonly false: BooleanValue<false>; // defined in static block of BooleanValue
40
+
41
+ abstract type: Value['type']; // ensures new `Value` subtypes must be added to `Value` union
42
+
43
+ declare [Symbol.hasInstance]: (value: unknown) => value is Value; // no need to actually declare it.
44
+ }
45
+
46
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types */
47
+ export type Value =
48
+ | UndefinedValue
49
+ | NullValue
50
+ | BooleanValue
51
+ | JSStringValue
52
+ | SymbolValue
53
+ | NumberValue
54
+ | BigIntValue
55
+ | ObjectValue;
56
+
57
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types */
58
+ export const Value = (() => {
59
+ // NOTE: Using IIFE so that the class does not conflict with the type of the same name
60
+ @callable((_target, _thisArg, [value]) => {
61
+ if (value === null) {
62
+ return Value.null;
63
+ } else if (value === undefined) {
64
+ return Value.undefined;
65
+ } else if (value === true) {
66
+ return Value.true;
67
+ } else if (value === false) {
68
+ return Value.false;
69
+ }
70
+ switch (typeof value) {
71
+ case 'string':
72
+ return createStringValue(value);
73
+ case 'number':
74
+ return createNumberValue(value);
75
+ case 'bigint':
76
+ return createBigIntValue(value);
77
+ default:
78
+ throw new OutOfRange('new Value', value);
79
+ }
80
+ })
81
+ abstract class Value extends BaseValue {
82
+ }
83
+ return Value;
84
+ })() as typeof BaseValue & {
85
+ <T extends null | undefined | boolean | string | number | bigint>(value: T): // eslint-disable-line @engine262/no-use-in-def
86
+ T extends null ? NullValue :
87
+ T extends undefined ? UndefinedValue :
88
+ T extends boolean ? BooleanValue<T> :
89
+ T extends string ? JSStringValue :
90
+ T extends number ? NumberValue :
91
+ T extends bigint ? BigIntValue :
92
+ never;
93
+ };
94
+
95
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types */
96
+ export type PropertyKeyValue =
97
+ | JSStringValue
98
+ | SymbolValue;
99
+
100
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types */
101
+ export type PrimitiveValue =
102
+ | UndefinedValue
103
+ | NullValue
104
+ | BooleanValue
105
+ | JSStringValue
106
+ | SymbolValue
107
+ | NumberValue
108
+ | BigIntValue;
109
+
110
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types */
111
+ export const PrimitiveValue = (() => {
112
+ // NOTE: Using IIFE so that the class does not conflict with the type of the same name
113
+ // NOTE: Only using IIFE because TypeScript errors when `abstract` is used on class expressions
114
+ abstract class PrimitiveValue extends Value {
115
+ }
116
+ return PrimitiveValue;
117
+ })();
118
+
119
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types-undefined-type */
120
+ export class UndefinedValue extends PrimitiveValue {
121
+ declare readonly type: 'Undefined'; // defined on prototype by static block
122
+
123
+ declare readonly value: undefined; // defined on prototype by static block
124
+
125
+ private constructor() { // eslint-disable-line no-useless-constructor -- Sets privacy for constructor
126
+ super();
127
+ }
128
+
129
+ static {
130
+ Object.defineProperty(this.prototype, 'type', { value: 'Undefined' });
131
+ Object.defineProperty(this.prototype, 'value', { value: undefined });
132
+ Object.defineProperty(Value, 'undefined', { value: new this() });
133
+ }
134
+ }
135
+
136
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types-null-type */
137
+ export class NullValue extends PrimitiveValue {
138
+ declare readonly type: 'Null'; // defined on prototype by static block
139
+
140
+ declare readonly value: null; // defined on prototype by static block
141
+
142
+ private constructor() { // eslint-disable-line no-useless-constructor -- Sets privacy for constructor
143
+ super();
144
+ }
145
+
146
+ static {
147
+ Object.defineProperty(this.prototype, 'type', { value: 'Null' });
148
+ Object.defineProperty(this.prototype, 'value', { value: null });
149
+ Object.defineProperty(Value, 'null', { value: new this() });
150
+ }
151
+ }
152
+
153
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types-boolean-type */
154
+ export class BooleanValue<T extends boolean = boolean> extends PrimitiveValue {
155
+ declare readonly type: 'Boolean'; // defined on prototype by static block
156
+
157
+ readonly value: T;
158
+
159
+ private constructor(value: T) {
160
+ super();
161
+ this.value = value;
162
+ }
163
+
164
+ booleanValue() {
165
+ return this.value;
166
+ }
167
+
168
+ [Symbol.for('nodejs.util.inspect.custom')]() {
169
+ return `Boolean { ${this.value} }`;
170
+ }
171
+
172
+ static {
173
+ Object.defineProperty(this.prototype, 'type', { value: 'Boolean' });
174
+ Object.defineProperty(Value, 'true', { value: new this(true) });
175
+ Object.defineProperty(Value, 'false', { value: new this(false) });
176
+ }
177
+ }
178
+
179
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types-string-type */
180
+ export class JSStringValue extends PrimitiveValue {
181
+ declare readonly type: 'String'; // defined on prototype by static block
182
+
183
+ readonly value: string;
184
+
185
+ private constructor(value: string) {
186
+ super();
187
+ this.value = value;
188
+ }
189
+
190
+ stringValue() {
191
+ return this.value;
192
+ }
193
+
194
+ static {
195
+ Object.defineProperty(this.prototype, 'type', { value: 'String' });
196
+ createStringValue = (value) => new this(value);
197
+ }
198
+ }
199
+
200
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type */
201
+ export class SymbolValue extends PrimitiveValue {
202
+ declare readonly type: 'Symbol'; // defined on prototype by static block
203
+
204
+ readonly Description: JSStringValue | UndefinedValue;
205
+
206
+ constructor(Description: JSStringValue | UndefinedValue) {
207
+ super();
208
+ this.Description = Description;
209
+ }
210
+
211
+ static {
212
+ Object.defineProperty(this.prototype, 'type', { value: 'Symbol' });
213
+ }
214
+ }
215
+
216
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type */
217
+ export const wellKnownSymbols = {
218
+ asyncIterator: new SymbolValue(Value('Symbol.asyncIterator')),
219
+ hasInstance: new SymbolValue(Value('Symbol.hasInstance')),
220
+ isConcatSpreadable: new SymbolValue(Value('Symbol.isConcatSpreadable')),
221
+ iterator: new SymbolValue(Value('Symbol.iterator')),
222
+ match: new SymbolValue(Value('Symbol.match')),
223
+ matchAll: new SymbolValue(Value('Symbol.matchAll')),
224
+ replace: new SymbolValue(Value('Symbol.replace')),
225
+ search: new SymbolValue(Value('Symbol.search')),
226
+ species: new SymbolValue(Value('Symbol.species')),
227
+ split: new SymbolValue(Value('Symbol.split')),
228
+ toPrimitive: new SymbolValue(Value('Symbol.toPrimitive')),
229
+ toStringTag: new SymbolValue(Value('Symbol.toStringTag')),
230
+ unscopables: new SymbolValue(Value('Symbol.unscopables')),
231
+ } as const;
232
+ Object.setPrototypeOf(wellKnownSymbols, null);
233
+ Object.freeze(wellKnownSymbols);
234
+
235
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types-number-type */
236
+ export class NumberValue extends PrimitiveValue {
237
+ declare readonly type: 'Number'; // defined on prototype by static block
238
+
239
+ readonly value: number;
240
+
241
+ private constructor(value: number) {
242
+ super();
243
+ this.value = value;
244
+ }
245
+
246
+ numberValue() {
247
+ return this.value;
248
+ }
249
+
250
+ isNaN() {
251
+ return Number.isNaN(this.value);
252
+ }
253
+
254
+ isInfinity() {
255
+ return !Number.isFinite(this.value) && !this.isNaN();
256
+ }
257
+
258
+ isFinite() {
259
+ return Number.isFinite(this.value);
260
+ }
261
+
262
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-unaryMinus */
263
+ static unaryMinus(x: NumberValue) {
264
+ if (x.isNaN()) {
265
+ return F(NaN);
266
+ }
267
+ return F(-R(x));
268
+ }
269
+
270
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-bitwiseNOT */
271
+ static bitwiseNOT(x: NumberValue) {
272
+ // 1. Let oldValue be ! ToInt32(x).
273
+ const oldValue = X(ToInt32(x));
274
+ // 2. Return the result of applying bitwise complement to oldValue. The result is a signed 32-bit integer.
275
+ return F(~R(oldValue));
276
+ }
277
+
278
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-exponentiate */
279
+ static exponentiate(base: NumberValue, exponent: NumberValue) {
280
+ return F(R(base) ** R(exponent));
281
+ }
282
+
283
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-multiply */
284
+ static multiply(x: NumberValue, y: NumberValue) {
285
+ return F(R(x) * R(y));
286
+ }
287
+
288
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-divide */
289
+ static divide(x: NumberValue, y: NumberValue) {
290
+ return F(R(x) / R(y));
291
+ }
292
+
293
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-remainder */
294
+ static remainder(n: NumberValue, d: NumberValue) {
295
+ return F(R(n) % R(d));
296
+ }
297
+
298
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-add */
299
+ static add(x: NumberValue, y: NumberValue) {
300
+ return F(R(x) + R(y));
301
+ }
302
+
303
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-subtract */
304
+ static subtract(x: NumberValue, y: NumberValue) {
305
+ // The result of - operator is x + (-y).
306
+ return NumberValue.add(x, F(-R(y)));
307
+ }
308
+
309
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-leftShift */
310
+ static leftShift(x: NumberValue, y: NumberValue) {
311
+ // 1. Let lnum be ! ToInt32(x).
312
+ const lnum = X(ToInt32(x));
313
+ // 2. Let rnum be ! ToUint32(y).
314
+ const rnum = X(ToUint32(y));
315
+ // 3. Let shiftCount be the result of masking out all but the least significant 5 bits of rnum, that is, compute rnum & 0x1F.
316
+ const shiftCount = R(rnum) & 0x1F; // eslint-disable-line no-bitwise
317
+ // 4. Return the result of left shifting lnum by shiftCount bits. The result is a signed 32-bit integer.
318
+ return F(R(lnum) << shiftCount); // eslint-disable-line no-bitwise
319
+ }
320
+
321
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-signedRightShift */
322
+ static signedRightShift(x: NumberValue, y: NumberValue) {
323
+ // 1. Let lnum be ! ToInt32(x).
324
+ const lnum = X(ToInt32(x));
325
+ // 2. Let rnum be ! ToUint32(y).
326
+ const rnum = X(ToUint32(y));
327
+ // 3. Let shiftCount be the result of masking out all but the least significant 5 bits of rnum, that is, compute rnum & 0x1F.
328
+ const shiftCount = R(rnum) & 0x1F; // eslint-disable-line no-bitwise
329
+ // 4. Return the result of performing a sign-extending right shift of lnum by shiftCount bits.
330
+ // The most significant bit is propagated. The result is a signed 32-bit integer.
331
+ return F(R(lnum) >> shiftCount); // eslint-disable-line no-bitwise
332
+ }
333
+
334
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-unsignedRightShift */
335
+ static unsignedRightShift(x: NumberValue, y: NumberValue) {
336
+ // 1. Let lnum be ! ToInt32(x).
337
+ const lnum = X(ToInt32(x));
338
+ // 2. Let rnum be ! ToUint32(y).
339
+ const rnum = X(ToUint32(y));
340
+ // 3. Let shiftCount be the result of masking out all but the least significant 5 bits of rnum, that is, compute rnum & 0x1F.
341
+ const shiftCount = R(rnum) & 0x1F; // eslint-disable-line no-bitwise
342
+ // 4. Return the result of performing a zero-filling right shift of lnum by shiftCount bits.
343
+ // Vacated bits are filled with zero. The result is an unsigned 32-bit integer.
344
+ return F(R(lnum) >>> shiftCount); // eslint-disable-line no-bitwise
345
+ }
346
+
347
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-lessThan */
348
+ static lessThan(x: NumberValue, y: NumberValue) {
349
+ if (x.isNaN()) {
350
+ return Value.undefined;
351
+ }
352
+ if (y.isNaN()) {
353
+ return Value.undefined;
354
+ }
355
+ // If nx and ny are the same Number value, return false.
356
+ // If nx is +0 and ny is -0, return false.
357
+ // If nx is -0 and ny is +0, return false.
358
+ if (R(x) === R(y)) {
359
+ return Value.false;
360
+ }
361
+ if (R(x) === +Infinity) {
362
+ return Value.false;
363
+ }
364
+ if (R(y) === +Infinity) {
365
+ return Value.true;
366
+ }
367
+ if (R(y) === -Infinity) {
368
+ return Value.false;
369
+ }
370
+ if (R(x) === -Infinity) {
371
+ return Value.true;
372
+ }
373
+ return R(x) < R(y) ? Value.true : Value.false;
374
+ }
375
+
376
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-equal */
377
+ static equal(x: NumberValue, y: NumberValue) {
378
+ if (x.isNaN()) {
379
+ return Value.false;
380
+ }
381
+ if (y.isNaN()) {
382
+ return Value.false;
383
+ }
384
+ const xVal = R(x);
385
+ const yVal = R(y);
386
+ if (xVal === yVal) {
387
+ return Value.true;
388
+ }
389
+ if (Object.is(xVal, 0) && Object.is(yVal, -0)) {
390
+ return Value.true;
391
+ }
392
+ if (Object.is(xVal, -0) && Object.is(yVal, 0)) {
393
+ return Value.true;
394
+ }
395
+ return Value.false;
396
+ }
397
+
398
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-sameValue */
399
+ static sameValue(x: NumberValue, y: NumberValue) {
400
+ if (x.isNaN() && y.isNaN()) {
401
+ return Value.true;
402
+ }
403
+ const xVal = R(x);
404
+ const yVal = R(y);
405
+ if (Object.is(xVal, 0) && Object.is(yVal, -0)) {
406
+ return Value.false;
407
+ }
408
+ if (Object.is(xVal, -0) && Object.is(yVal, 0)) {
409
+ return Value.false;
410
+ }
411
+ if (xVal === yVal) {
412
+ return Value.true;
413
+ }
414
+ return Value.false;
415
+ }
416
+
417
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-sameValueZero */
418
+ static sameValueZero(x: NumberValue, y: NumberValue) {
419
+ if (x.isNaN() && y.isNaN()) {
420
+ return Value.true;
421
+ }
422
+ const xVal = R(x);
423
+ const yVal = R(y);
424
+ if (Object.is(xVal, 0) && Object.is(yVal, -0)) {
425
+ return Value.true;
426
+ }
427
+ if (Object.is(xVal, -0) && Object.is(yVal, 0)) {
428
+ return Value.true;
429
+ }
430
+ if (xVal === yVal) {
431
+ return Value.true;
432
+ }
433
+ return Value.false;
434
+ }
435
+
436
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-bitwiseAND */
437
+ static bitwiseAND(x: NumberValue, y: NumberValue) {
438
+ // 1. Return NumberBitwiseOp(&, x, y).
439
+ return NumberBitwiseOp('&', x, y);
440
+ }
441
+
442
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-bitwiseXOR */
443
+ static bitwiseXOR(x: NumberValue, y: NumberValue) {
444
+ // 1. Return NumberBitwiseOp(^, x, y).
445
+ return NumberBitwiseOp('^', x, y);
446
+ }
447
+
448
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-bitwiseOR */
449
+ static bitwiseOR(x: NumberValue, y: NumberValue) {
450
+ // 1. Return NumberBitwiseOp(|, x, y).
451
+ return NumberBitwiseOp('|', x, y);
452
+ }
453
+
454
+ /** https://tc39.es/ecma262/#sec-numeric-types-number-tostring */
455
+ static override toString(x: NumberValue): JSStringValue {
456
+ if (x.isNaN()) {
457
+ return Value('NaN');
458
+ }
459
+ const xVal = R(x);
460
+ if (xVal === 0) {
461
+ return Value('0');
462
+ }
463
+ if (xVal < 0) {
464
+ const str = X(NumberValue.toString(F(-xVal))).stringValue();
465
+ return Value(`-${str}`);
466
+ }
467
+ if (x.isInfinity()) {
468
+ return Value('Infinity');
469
+ }
470
+ // TODO: implement properly
471
+ return Value(`${xVal}`);
472
+ }
473
+
474
+ static readonly unit = new NumberValue(1);
475
+
476
+ static {
477
+ Object.defineProperty(this.prototype, 'type', { value: 'Number' });
478
+ createNumberValue = (value) => new NumberValue(value);
479
+ }
480
+ }
481
+
482
+ /** https://tc39.es/ecma262/#sec-numberbitwiseop */
483
+ function NumberBitwiseOp(op: '&' | '|' | '^', x: NumberValue, y: NumberValue) {
484
+ // 1. Let lnum be ! ToInt32(x).
485
+ const lnum = X(ToInt32(x));
486
+ // 2. Let rnum be ! ToUint32(y).
487
+ const rnum = X(ToUint32(y));
488
+ // 3. Return the result of applying the bitwise operator op to lnum and rnum. The result is a signed 32-bit integer.
489
+ switch (op) {
490
+ case '&':
491
+ return F(R(lnum) & R(rnum));
492
+ case '|':
493
+ return F(R(lnum) | R(rnum));
494
+ case '^':
495
+ return F(R(lnum) ^ R(rnum));
496
+ default:
497
+ throw new OutOfRange('NumberBitwiseOp', op);
498
+ }
499
+ }
500
+
501
+ /** https://tc39.es/ecma262/#sec-ecmascript-language-types-bigint-type */
502
+ export class BigIntValue extends PrimitiveValue {
503
+ declare readonly type: 'BigInt'; // defined on prototype by static block
504
+
505
+ readonly value: bigint;
506
+
507
+ private constructor(value: bigint) {
508
+ super();
509
+ this.value = value;
510
+ }
511
+
512
+ bigintValue() {
513
+ return this.value;
514
+ }
515
+
516
+ isNaN() {
517
+ return false;
518
+ }
519
+
520
+ isFinite() {
521
+ return true;
522
+ }
523
+
524
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-unaryMinus */
525
+ static unaryMinus(x: BigIntValue) {
526
+ if (R(x) === 0n) {
527
+ return Z(0n);
528
+ }
529
+ return Z(-R(x));
530
+ }
531
+
532
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-bitwiseNOT */
533
+ static bitwiseNOT(x: BigIntValue) {
534
+ return Z(-R(x) - 1n);
535
+ }
536
+
537
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-exponentiate */
538
+ static exponentiate(base: BigIntValue, exponent: BigIntValue) {
539
+ // 1. If exponent < 0n, throw a RangeError exception.
540
+ if (R(exponent) < 0n) {
541
+ return surroundingAgent.Throw('RangeError', 'BigIntNegativeExponent');
542
+ }
543
+ // 2. If base is 0n and exponent is 0n, return 1n.
544
+ if (R(base) === 0n && R(exponent) === 0n) {
545
+ return Z(1n);
546
+ }
547
+ // 3. Return the BigInt value that represents the mathematical value of base raised to the power exponent.
548
+ return Z(R(base) ** R(exponent));
549
+ }
550
+
551
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-multiply */
552
+ static multiply(x: BigIntValue, y: BigIntValue) {
553
+ return Z(R(x) * R(y));
554
+ }
555
+
556
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-divide */
557
+ static divide(x: BigIntValue, y: BigIntValue) {
558
+ // 1. If y is 0n, throw a RangeError exception.
559
+ if (R(y) === 0n) {
560
+ return surroundingAgent.Throw('RangeError', 'BigIntDivideByZero');
561
+ }
562
+ // 2. Let quotient be the mathematical value of x divided by y.
563
+ const quotient = R(x) / R(y);
564
+ // 3. Return the BigInt value that represents quotient rounded towards 0 to the next integral value.
565
+ return Z(quotient);
566
+ }
567
+
568
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-remainder */
569
+ static remainder(n: BigIntValue, d: BigIntValue) {
570
+ // 1. If d is 0n, throw a RangeError exception.
571
+ if (R(d) === 0n) {
572
+ return surroundingAgent.Throw('RangeError', 'BigIntDivideByZero');
573
+ }
574
+ // 2. If n is 0n, return 0n.
575
+ if (R(n) === 0n) {
576
+ return Z(0n);
577
+ }
578
+ // 3. Let r be the BigInt defined by the mathematical relation r = n - (d × q)
579
+ // where q is a BigInt that is negative only if n/d is negative and positive
580
+ // only if n/d is positive, and whose magnitude is as large as possible without
581
+ // exceeding the magnitude of the true mathematical quotient of n and d.
582
+ const r = Z(R(n) % R(d));
583
+ // 4. Return r.
584
+ return r;
585
+ }
586
+
587
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-add */
588
+ static add(x: BigIntValue, y: BigIntValue) {
589
+ return Z(R(x) + R(y));
590
+ }
591
+
592
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-subtract */
593
+ static subtract(x: BigIntValue, y: BigIntValue) {
594
+ return Z(R(x) - R(y));
595
+ }
596
+
597
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-leftShift */
598
+ static leftShift(x: BigIntValue, y: BigIntValue) {
599
+ return Z(R(x) << R(y)); // eslint-disable-line no-bitwise
600
+ }
601
+
602
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-signedRightShift */
603
+ static signedRightShift(x: BigIntValue, y: BigIntValue) {
604
+ // 1. Return BigInt::leftShift(x, -y).
605
+ return BigIntValue.leftShift(x, Z(-R(y)));
606
+ }
607
+
608
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-unsignedRightShift */
609
+ static unsignedRightShift(_x: BigIntValue, _y: BigIntValue) {
610
+ return surroundingAgent.Throw('TypeError', 'BigIntUnsignedRightShift');
611
+ }
612
+
613
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-lessThan */
614
+ static lessThan(x: BigIntValue, y: BigIntValue) {
615
+ return R(x) < R(y) ? Value.true : Value.false;
616
+ }
617
+
618
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-equal */
619
+ static equal(x: BigIntValue, y: BigIntValue) {
620
+ // Return true if x and y have the same mathematical integer value and false otherwise.
621
+ return R(x) === R(y) ? Value.true : Value.false;
622
+ }
623
+
624
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-sameValue */
625
+ static sameValue(x: BigIntValue, y: BigIntValue) {
626
+ // 1. Return BigInt::equal(x, y).
627
+ return BigIntValue.equal(x, y);
628
+ }
629
+
630
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-sameValueZero */
631
+ static sameValueZero(x: BigIntValue, y: BigIntValue) {
632
+ // 1. Return BigInt::equal(x, y).
633
+ return BigIntValue.equal(x, y);
634
+ }
635
+
636
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-bitwiseAND */
637
+ static bitwiseAND(x: BigIntValue, y: BigIntValue) {
638
+ // 1. Return BigIntBitwiseOp(&, x, y).
639
+ return BigIntBitwiseOp('&', x, y);
640
+ }
641
+
642
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-bitwiseXOR */
643
+ static bitwiseXOR(x: BigIntValue, y: BigIntValue) {
644
+ // 1. Return BigIntBitwiseOp(^, x, y).
645
+ return BigIntBitwiseOp('^', x, y);
646
+ }
647
+
648
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-bitwiseOR */
649
+ static bitwiseOR(x: BigIntValue, y: BigIntValue) {
650
+ // 1. Return BigIntBitwiseOp(|, x, y);
651
+ return BigIntBitwiseOp('|', x, y);
652
+ }
653
+
654
+ /** https://tc39.es/ecma262/#sec-numeric-types-bigint-tostring */
655
+ static override toString(x: BigIntValue): JSStringValue {
656
+ // 1. If x is less than zero, return the string-concatenation of the String "-" and ! BigInt::toString(-x).
657
+ if (R(x) < 0n) {
658
+ const str = X(BigIntValue.toString(Z(-R(x)))).stringValue();
659
+ return Value(`-${str}`);
660
+ }
661
+ // 2. Return the String value consisting of the code units of the digits of the decimal representation of x.
662
+ return Value(`${R(x)}`);
663
+ }
664
+
665
+ static readonly unit = new BigIntValue(1n);
666
+
667
+ static {
668
+ Object.defineProperty(this.prototype, 'type', { value: 'BigInt' });
669
+ createBigIntValue = (value) => new BigIntValue(value);
670
+ }
671
+ }
672
+
673
+ /** https://tc39.es/ecma262/#sec-bigintbitwiseop */
674
+ function BigIntBitwiseOp(op: '&' | '|' | '^', x: BigIntValue, y: BigIntValue) {
675
+ // TODO: figure out why this doesn't work, probably the modulo.
676
+ /*
677
+ // 1. Assert: op is "&", "|", or "^".
678
+ Assert(['&', '|', '^'].includes(op));
679
+ // 2. Let result be 0n.
680
+ let result = 0n;
681
+ // 3. Let shift be 0.
682
+ let shift = 0n;
683
+ // 4. Repeat, until (x = 0 or x = -1) and (y = 0 or y = -1),
684
+ while (!((x === 0n || x === -1n) && (y === 0n || y === -1n))) {
685
+ // a. Let xDigit be x modulo 2.
686
+ const xDigit = x % 2n;
687
+ // b. Let yDigit be y modulo 2.
688
+ const yDigit = y % 2n;
689
+ // c. If op is "&", set result to result + 2^shift × BinaryAnd(xDigit, yDigit).
690
+ if (op === '&') {
691
+ result += (2n ** shift) * BinaryAnd(xDigit, yDigit);
692
+ } else if (op === '|') {
693
+ // d. Else if op is "|", set result to result + 2shift × BinaryOr(xDigit, yDigit).
694
+ result += (2n ** shift) * BinaryXor(xDigit, yDigit);
695
+ } else {
696
+ // i. Assert: op is "^".
697
+ Assert(op === '^');
698
+ // ii. Set result to result + 2^shift × BinaryXor(xDigit, yDigit).
699
+ result += (2n ** shift) * BinaryXor(xDigit, yDigit);
700
+ }
701
+ // f. Set shift to shift + 1.
702
+ shift += 1n;
703
+ // g. Set x to (x - xDigit) / 2.
704
+ x = (x - xDigit) / 2n;
705
+ // h. Set y to (y - yDigit) / 2.
706
+ y = (y - yDigit) / 2n;
707
+ }
708
+ let tmp;
709
+ // 5. If op is "&", let tmp be BinaryAnd(x modulo 2, y modulo 2).
710
+ if (op === '&') {
711
+ tmp = BinaryAnd(x % 2n, y % 2n);
712
+ } else if (op === '|') {
713
+ // 6. Else if op is "|", let tmp be BinaryOr(x modulo 2, y modulo 2).
714
+ tmp = BinaryOr(x % 2n, y % 2n);
715
+ } else {
716
+ // a. Assert: op is "^".
717
+ Assert(op === '^');
718
+ // b. Let tmp be BinaryXor(x modulo 2, y modulo 2).
719
+ tmp = BinaryXor(x % 2n, y % 2n);
720
+ }
721
+ // 8. If tmp ≠ 0, then
722
+ if (tmp !== 0n) {
723
+ // a. Set result to result - 2^shift. NOTE: This extends the sign.
724
+ result -= 2n ** shift;
725
+ }
726
+ // 9. Return result.
727
+ return Z(result);
728
+ */
729
+ switch (op) {
730
+ case '&':
731
+ return Z(R(x) & R(y));
732
+ case '|':
733
+ return Z(R(x) | R(y));
734
+ case '^':
735
+ return Z(R(x) ^ R(y));
736
+ default:
737
+ throw new OutOfRange('BigIntBitwiseOp', op);
738
+ }
739
+ }
740
+
741
+ export interface ObjectInternalMethods<Self> {
742
+ GetPrototypeOf(this: Self): ExpressionCompletion<ObjectValue | NullValue>;
743
+ SetPrototypeOf(this: Self, V: ObjectValue | NullValue): ExpressionCompletion<BooleanValue>;
744
+ IsExtensible(this: Self): ExpressionCompletion<BooleanValue>;
745
+ PreventExtensions(this: Self): ExpressionCompletion<BooleanValue>;
746
+ GetOwnProperty(this: Self, P: PropertyKeyValue): PlainCompletion<Descriptor | UndefinedValue>;
747
+ DefineOwnProperty(this: Self, P: PropertyKeyValue, Desc: Descriptor): ExpressionCompletion<BooleanValue>;
748
+ HasProperty(this: Self, P: PropertyKeyValue): ExpressionCompletion<BooleanValue>;
749
+ Get(this: Self, P: PropertyKeyValue, Receiver: Value): ExpressionCompletion;
750
+ Set(this: Self, P: PropertyKeyValue, V: Value, Receiver: Value): ExpressionCompletion<BooleanValue>;
751
+ Delete(this: Self, P: PropertyKeyValue): ExpressionCompletion<BooleanValue>;
752
+ OwnPropertyKeys(this: Self): PlainCompletion<PropertyKeyValue[]>;
753
+ Call?(this: Self, thisArg: Value, args: Arguments): ExpressionCompletion;
754
+ Construct?(this: Self, args: Arguments, newTarget: FunctionObject | UndefinedValue): ExpressionCompletion<ObjectValue>;
755
+ }
756
+
757
+ /** https://tc39.es/ecma262/#sec-object-type */
758
+ export class ObjectValue extends Value implements ObjectInternalMethods<ObjectValue> {
759
+ declare readonly type: 'Object'; // defined on prototype by static block
760
+
761
+ readonly properties: PropertyKeyMap<Descriptor>;
762
+
763
+ readonly internalSlotsList: readonly string[];
764
+
765
+ readonly PrivateElements: PrivateElementRecord[];
766
+
767
+ constructor(internalSlotsList: readonly string[]) {
768
+ super();
769
+
770
+ this.PrivateElements = [];
771
+ this.properties = new PropertyKeyMap();
772
+ this.internalSlotsList = internalSlotsList;
773
+ surroundingAgent.debugger_markObjectCreated(this);
774
+ }
775
+
776
+ // UNSAFE casts below. Methods below are expected to be rewritten when the object is not an OrdinaryObject. (an example is ArgumentExoticObject)
777
+ // If those methods aren't rewritten, it is an error.
778
+ GetPrototypeOf(): ExpressionCompletion<ObjectValue | NullValue> {
779
+ return OrdinaryGetPrototypeOf(this as unknown as OrdinaryObject);
780
+ }
781
+
782
+ SetPrototypeOf(V: ObjectValue | NullValue): ExpressionCompletion<BooleanValue> {
783
+ Q(surroundingAgent.debugger_tryTouchDuringPreview(this));
784
+ return OrdinarySetPrototypeOf(this as unknown as OrdinaryObject, V);
785
+ }
786
+
787
+ IsExtensible(): ExpressionCompletion<BooleanValue> {
788
+ return OrdinaryIsExtensible(this as unknown as OrdinaryObject);
789
+ }
790
+
791
+ PreventExtensions(): ExpressionCompletion<BooleanValue> {
792
+ Q(surroundingAgent.debugger_tryTouchDuringPreview(this));
793
+ return OrdinaryPreventExtensions(this as unknown as OrdinaryObject);
794
+ }
795
+
796
+ GetOwnProperty(P: PropertyKeyValue): PlainCompletion<Descriptor | UndefinedValue> {
797
+ return OrdinaryGetOwnProperty(this as unknown as OrdinaryObject, P);
798
+ }
799
+
800
+ DefineOwnProperty(P: PropertyKeyValue, Desc: Descriptor): ExpressionCompletion<BooleanValue> {
801
+ Q(surroundingAgent.debugger_tryTouchDuringPreview(this));
802
+ return OrdinaryDefineOwnProperty(this as unknown as OrdinaryObject, P, Desc);
803
+ }
804
+
805
+ HasProperty(P: PropertyKeyValue): ExpressionCompletion<BooleanValue> {
806
+ return OrdinaryHasProperty(this as unknown as OrdinaryObject, P);
807
+ }
808
+
809
+ Get(P: PropertyKeyValue, Receiver: Value): ExpressionCompletion {
810
+ return OrdinaryGet(this as unknown as OrdinaryObject, P, Receiver);
811
+ }
812
+
813
+ Set(P: PropertyKeyValue, V: Value, Receiver: Value): ExpressionCompletion<BooleanValue> {
814
+ // TODO:
815
+ Q(surroundingAgent.debugger_tryTouchDuringPreview(Receiver as ObjectValue));
816
+ return OrdinarySet(this as unknown as OrdinaryObject, P, V, Receiver);
817
+ }
818
+
819
+ Delete(P: PropertyKeyValue): ExpressionCompletion<BooleanValue> {
820
+ Q(surroundingAgent.debugger_tryTouchDuringPreview(this));
821
+ return OrdinaryDelete(this as unknown as OrdinaryObject, P);
822
+ }
823
+
824
+ OwnPropertyKeys(): PlainCompletion<PropertyKeyValue[]> {
825
+ return OrdinaryOwnPropertyKeys(this as unknown as OrdinaryObject);
826
+ }
827
+
828
+ // NON-SPEC
829
+ mark(m: GCMarker) {
830
+ m(this.properties);
831
+ this.internalSlotsList.forEach((s) => {
832
+ // @ts-ignore
833
+ m(this[s]);
834
+ });
835
+ }
836
+
837
+ static {
838
+ Object.defineProperty(this.prototype, 'type', { value: 'Object' });
839
+ }
840
+ }
841
+
842
+ /** https://tc39.es/ecma262/#sec-private-names */
843
+ export class PrivateName {
844
+ // NOTE: The following declaration distinguishes `PrivateName` from `SymbolValue` so that type guards can properly
845
+ // remove it from unions with `SymbolValue` due to structural overlap.
846
+ declare private _: never;
847
+
848
+ readonly Description: JSStringValue;
849
+
850
+ constructor(description: JSStringValue) {
851
+ this.Description = description;
852
+ }
853
+ }
854
+
855
+ export class ReferenceRecord {
856
+ readonly Base: 'unresolvable' | Value | EnvironmentRecord;
857
+
858
+ ReferencedName: Value | PrivateName;
859
+
860
+ readonly Strict: BooleanValue;
861
+
862
+ readonly ThisValue: Value | undefined;
863
+
864
+ constructor({
865
+ Base,
866
+ ReferencedName,
867
+ Strict,
868
+ ThisValue,
869
+ }: Pick<ReferenceRecord, 'Base' | 'ReferencedName' | 'Strict' | 'ThisValue'>) {
870
+ this.Base = Base;
871
+ this.ReferencedName = ReferencedName;
872
+ this.Strict = Strict;
873
+ this.ThisValue = ThisValue;
874
+ }
875
+
876
+ // NON-SPEC
877
+ mark(m: GCMarker) {
878
+ m(this.Base);
879
+ m(this.ReferencedName);
880
+ m(this.ThisValue);
881
+ }
882
+ }
883
+
884
+ export type DescriptorInit = Pick<Descriptor, 'Configurable' | 'Enumerable' | 'Get' | 'Set' | 'Value' | 'Writable'>;
885
+ // @ts-expect-error
886
+ export function Descriptor(O: DescriptorInit): Descriptor // @ts-expect-error
887
+ export @callable() class Descriptor {
888
+ readonly Value?: Value;
889
+
890
+ readonly Get?: FunctionObject | UndefinedValue;
891
+
892
+ readonly Set?: FunctionObject | UndefinedValue;
893
+
894
+ readonly Writable?: BooleanValue;
895
+
896
+ readonly Enumerable?: BooleanValue;
897
+
898
+ readonly Configurable?: BooleanValue;
899
+
900
+ constructor(O: Pick<Descriptor, 'Configurable' | 'Enumerable' | 'Get' | 'Set' | 'Value' | 'Writable'>) {
901
+ this.Value = O.Value;
902
+ this.Get = O.Get;
903
+ this.Set = O.Set;
904
+ this.Writable = O.Writable;
905
+ this.Enumerable = O.Enumerable;
906
+ this.Configurable = O.Configurable;
907
+ }
908
+
909
+ everyFieldIsAbsent() {
910
+ return this.Value === undefined
911
+ && this.Get === undefined
912
+ && this.Set === undefined
913
+ && this.Writable === undefined
914
+ && this.Enumerable === undefined
915
+ && this.Configurable === undefined;
916
+ }
917
+
918
+ // NON-SPEC
919
+ mark(m: GCMarker) {
920
+ m(this.Value);
921
+ m(this.Get);
922
+ m(this.Set);
923
+ }
924
+ }
925
+
926
+ export class DataBlock extends Uint8Array {
927
+ constructor(sizeOrBuffer: number | ArrayBuffer, byteOffset?: number, length?: number) {
928
+ if (sizeOrBuffer instanceof ArrayBuffer) {
929
+ super(sizeOrBuffer, byteOffset, length);
930
+ } else {
931
+ Assert(typeof sizeOrBuffer === 'number');
932
+ super(sizeOrBuffer);
933
+ }
934
+ }
935
+ }
936
+
937
+ export function Type(val: Value | PrivateName | Completion<unknown> | EnvironmentRecord | Descriptor | DataBlock) {
938
+ if (val instanceof Value) {
939
+ return val.type;
940
+ }
941
+
942
+ if (val instanceof PrivateName) {
943
+ return 'PrivateName';
944
+ }
945
+
946
+ if (val instanceof Completion) {
947
+ return 'Completion';
948
+ }
949
+
950
+ if (val instanceof EnvironmentRecord) {
951
+ return 'EnvironmentRecord';
952
+ }
953
+
954
+ if (val instanceof Descriptor) {
955
+ return 'Descriptor';
956
+ }
957
+
958
+ if (val instanceof DataBlock) {
959
+ return 'Data Block';
960
+ }
961
+
962
+ // TODO:
963
+ if ((val as unknown) instanceof DataBlock) {
964
+ return 'Shared Data Block';
965
+ }
966
+
967
+ throw new OutOfRange('Type', val);
968
+ }
969
+
970
+ export type Arguments = readonly Value[];
971
+ export interface FunctionCallContext {
972
+ readonly thisValue: Value;
973
+ readonly NewTarget: FunctionObject | UndefinedValue;
974
+ }
975
+ export interface NativeSteps {
976
+ (this: BuiltinFunctionObject, args: Arguments, context: FunctionCallContext): void | ExpressionCompletion;
977
+ section?: string;
978
+ }
979
+ export interface CanBeNativeSteps {
980
+ (...args: Value[]): void | ExpressionCompletion;
981
+ }