porffor 0.1.0 → 0.2.0-77e30e8

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 (658) hide show
  1. package/README.md +184 -204
  2. package/compiler/2c.js +377 -0
  3. package/compiler/builtins/base64.js +91 -91
  4. package/compiler/builtins.js +19 -13
  5. package/compiler/codeGen.js +1313 -418
  6. package/compiler/decompile.js +35 -9
  7. package/compiler/embedding.js +9 -5
  8. package/compiler/encoding.js +8 -2
  9. package/compiler/index.js +55 -17
  10. package/compiler/log.js +15 -0
  11. package/compiler/opt.js +357 -258
  12. package/compiler/parse.js +24 -1
  13. package/compiler/prototype.js +263 -56
  14. package/compiler/sections.js +51 -8
  15. package/compiler/wasmSpec.js +3 -0
  16. package/compiler/wrap.js +21 -7
  17. package/package.json +6 -1
  18. package/porf.cmd +1 -1
  19. package/rhemyn/README.md +37 -0
  20. package/rhemyn/compile.js +214 -0
  21. package/rhemyn/parse.js +321 -0
  22. package/rhemyn/test/parse.js +59 -0
  23. package/runner/index.js +54 -31
  24. package/runner/info.js +37 -2
  25. package/runner/profile.js +1 -2
  26. package/runner/repl.js +13 -11
  27. package/runner/results.json +1 -0
  28. package/runner/transform.js +15 -36
  29. package/runner/version.js +10 -0
  30. package/CNAME +0 -1
  31. package/index.html +0 -1264
  32. package/logo.png +0 -0
  33. package/sw.js +0 -26
  34. package/test/array_1.js +0 -8
  35. package/test/array_push.js +0 -8
  36. package/test/assignop_1.js +0 -15
  37. package/test/bitwise_1.js +0 -6
  38. package/test/bool_1.js +0 -3
  39. package/test/boolean.js +0 -6
  40. package/test/break_1.js +0 -6
  41. package/test/break_2.js +0 -12
  42. package/test/conditional_1.js +0 -3
  43. package/test/conditional_2.js +0 -4
  44. package/test/console_1.js +0 -2
  45. package/test/continue_1.js +0 -6
  46. package/test/continue_2.js +0 -10
  47. package/test/empty.js +0 -1
  48. package/test/ending_exp_1.js +0 -2
  49. package/test/ending_exp_2.js +0 -6
  50. package/test/eq_1.js +0 -4
  51. package/test/eq_2.js +0 -4
  52. package/test/eq_3.js +0 -5
  53. package/test/export_1.js +0 -9
  54. package/test/factorial.js +0 -3
  55. package/test/fibonacci.js +0 -16
  56. package/test/float_div0.js +0 -2
  57. package/test/float_frac.js +0 -2
  58. package/test/float_isfinite.js +0 -29
  59. package/test/float_isinteger.js +0 -13
  60. package/test/float_isnan.js +0 -20
  61. package/test/float_issafeinteger.js +0 -11
  62. package/test/float_large.js +0 -2
  63. package/test/float_math_funcs.js +0 -24
  64. package/test/float_math_random.js +0 -6
  65. package/test/float_nan.js +0 -3
  66. package/test/float_number_values.js +0 -12
  67. package/test/for_1.js +0 -4
  68. package/test/for_2.js +0 -4
  69. package/test/func_1.js +0 -16
  70. package/test/func_2.js +0 -6
  71. package/test/func_3.js +0 -10
  72. package/test/global_1.js +0 -8
  73. package/test/global_2.js +0 -10
  74. package/test/if_1.js +0 -6
  75. package/test/if_2.js +0 -9
  76. package/test/if_3.js +0 -7
  77. package/test/iife_1.js +0 -8
  78. package/test/iife_2.js +0 -8
  79. package/test/index.js +0 -93
  80. package/test/int_number_values.js +0 -6
  81. package/test/logic_1.js +0 -7
  82. package/test/logic_2.js +0 -7
  83. package/test/math_1.js +0 -6
  84. package/test/math_2.js +0 -12
  85. package/test/math_3.js +0 -6
  86. package/test/number_func.js +0 -4
  87. package/test/return_1.js +0 -8
  88. package/test/return_2.js +0 -11
  89. package/test/tailcall_1.js +0 -10
  90. package/test/throw_1.js +0 -2
  91. package/test/throw_2.js +0 -4
  92. package/test/throw_3.js +0 -2
  93. package/test/throw_4.js +0 -3
  94. package/test/try_1.js +0 -7
  95. package/test/unary_1.js +0 -4
  96. package/test/unary_2.js +0 -5
  97. package/test/unary_3.js +0 -6
  98. package/test/unary_4.js +0 -12
  99. package/test/unary_5.js +0 -8
  100. package/test/undefined_1.js +0 -8
  101. package/test/undefined_2.js +0 -10
  102. package/test/updateexp_1.js +0 -9
  103. package/test/vars_1.js +0 -5
  104. package/test/vars_2.js +0 -9
  105. package/test/while_1.js +0 -6
  106. package/test262/compare.js +0 -30
  107. package/test262/index.js +0 -314
  108. package/test262/node_modules/.bin/esparse +0 -12
  109. package/test262/node_modules/.bin/esparse.cmd +0 -17
  110. package/test262/node_modules/.bin/esparse.ps1 +0 -28
  111. package/test262/node_modules/.bin/esvalidate +0 -12
  112. package/test262/node_modules/.bin/esvalidate.cmd +0 -17
  113. package/test262/node_modules/.bin/esvalidate.ps1 +0 -28
  114. package/test262/node_modules/.bin/js-yaml +0 -12
  115. package/test262/node_modules/.bin/js-yaml.cmd +0 -17
  116. package/test262/node_modules/.bin/js-yaml.ps1 +0 -28
  117. package/test262/node_modules/.package-lock.json +0 -0
  118. package/test262/node_modules/@nodelib/fs.scandir/LICENSE +0 -21
  119. package/test262/node_modules/@nodelib/fs.scandir/README.md +0 -171
  120. package/test262/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts +0 -20
  121. package/test262/node_modules/@nodelib/fs.scandir/out/adapters/fs.js +0 -19
  122. package/test262/node_modules/@nodelib/fs.scandir/out/constants.d.ts +0 -4
  123. package/test262/node_modules/@nodelib/fs.scandir/out/constants.js +0 -17
  124. package/test262/node_modules/@nodelib/fs.scandir/out/index.d.ts +0 -12
  125. package/test262/node_modules/@nodelib/fs.scandir/out/index.js +0 -26
  126. package/test262/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts +0 -7
  127. package/test262/node_modules/@nodelib/fs.scandir/out/providers/async.js +0 -104
  128. package/test262/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts +0 -1
  129. package/test262/node_modules/@nodelib/fs.scandir/out/providers/common.js +0 -13
  130. package/test262/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts +0 -5
  131. package/test262/node_modules/@nodelib/fs.scandir/out/providers/sync.js +0 -54
  132. package/test262/node_modules/@nodelib/fs.scandir/out/settings.d.ts +0 -20
  133. package/test262/node_modules/@nodelib/fs.scandir/out/settings.js +0 -24
  134. package/test262/node_modules/@nodelib/fs.scandir/out/types/index.d.ts +0 -20
  135. package/test262/node_modules/@nodelib/fs.scandir/out/types/index.js +0 -2
  136. package/test262/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts +0 -2
  137. package/test262/node_modules/@nodelib/fs.scandir/out/utils/fs.js +0 -19
  138. package/test262/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts +0 -2
  139. package/test262/node_modules/@nodelib/fs.scandir/out/utils/index.js +0 -5
  140. package/test262/node_modules/@nodelib/fs.scandir/package.json +0 -44
  141. package/test262/node_modules/@nodelib/fs.stat/LICENSE +0 -21
  142. package/test262/node_modules/@nodelib/fs.stat/README.md +0 -126
  143. package/test262/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts +0 -13
  144. package/test262/node_modules/@nodelib/fs.stat/out/adapters/fs.js +0 -17
  145. package/test262/node_modules/@nodelib/fs.stat/out/index.d.ts +0 -12
  146. package/test262/node_modules/@nodelib/fs.stat/out/index.js +0 -26
  147. package/test262/node_modules/@nodelib/fs.stat/out/providers/async.d.ts +0 -4
  148. package/test262/node_modules/@nodelib/fs.stat/out/providers/async.js +0 -36
  149. package/test262/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts +0 -3
  150. package/test262/node_modules/@nodelib/fs.stat/out/providers/sync.js +0 -23
  151. package/test262/node_modules/@nodelib/fs.stat/out/settings.d.ts +0 -16
  152. package/test262/node_modules/@nodelib/fs.stat/out/settings.js +0 -16
  153. package/test262/node_modules/@nodelib/fs.stat/out/types/index.d.ts +0 -4
  154. package/test262/node_modules/@nodelib/fs.stat/out/types/index.js +0 -2
  155. package/test262/node_modules/@nodelib/fs.stat/package.json +0 -37
  156. package/test262/node_modules/@nodelib/fs.walk/LICENSE +0 -21
  157. package/test262/node_modules/@nodelib/fs.walk/README.md +0 -215
  158. package/test262/node_modules/@nodelib/fs.walk/out/index.d.ts +0 -14
  159. package/test262/node_modules/@nodelib/fs.walk/out/index.js +0 -34
  160. package/test262/node_modules/@nodelib/fs.walk/out/providers/async.d.ts +0 -12
  161. package/test262/node_modules/@nodelib/fs.walk/out/providers/async.js +0 -30
  162. package/test262/node_modules/@nodelib/fs.walk/out/providers/index.d.ts +0 -4
  163. package/test262/node_modules/@nodelib/fs.walk/out/providers/index.js +0 -9
  164. package/test262/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts +0 -12
  165. package/test262/node_modules/@nodelib/fs.walk/out/providers/stream.js +0 -34
  166. package/test262/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts +0 -10
  167. package/test262/node_modules/@nodelib/fs.walk/out/providers/sync.js +0 -14
  168. package/test262/node_modules/@nodelib/fs.walk/out/readers/async.d.ts +0 -30
  169. package/test262/node_modules/@nodelib/fs.walk/out/readers/async.js +0 -97
  170. package/test262/node_modules/@nodelib/fs.walk/out/readers/common.d.ts +0 -7
  171. package/test262/node_modules/@nodelib/fs.walk/out/readers/common.js +0 -31
  172. package/test262/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts +0 -6
  173. package/test262/node_modules/@nodelib/fs.walk/out/readers/reader.js +0 -11
  174. package/test262/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts +0 -15
  175. package/test262/node_modules/@nodelib/fs.walk/out/readers/sync.js +0 -59
  176. package/test262/node_modules/@nodelib/fs.walk/out/settings.d.ts +0 -30
  177. package/test262/node_modules/@nodelib/fs.walk/out/settings.js +0 -26
  178. package/test262/node_modules/@nodelib/fs.walk/out/types/index.d.ts +0 -8
  179. package/test262/node_modules/@nodelib/fs.walk/out/types/index.js +0 -2
  180. package/test262/node_modules/@nodelib/fs.walk/package.json +0 -44
  181. package/test262/node_modules/argparse/CHANGELOG.md +0 -185
  182. package/test262/node_modules/argparse/LICENSE +0 -21
  183. package/test262/node_modules/argparse/README.md +0 -257
  184. package/test262/node_modules/argparse/index.js +0 -3
  185. package/test262/node_modules/argparse/lib/action/append/constant.js +0 -47
  186. package/test262/node_modules/argparse/lib/action/append.js +0 -53
  187. package/test262/node_modules/argparse/lib/action/count.js +0 -40
  188. package/test262/node_modules/argparse/lib/action/help.js +0 -47
  189. package/test262/node_modules/argparse/lib/action/store/constant.js +0 -43
  190. package/test262/node_modules/argparse/lib/action/store/false.js +0 -27
  191. package/test262/node_modules/argparse/lib/action/store/true.js +0 -26
  192. package/test262/node_modules/argparse/lib/action/store.js +0 -50
  193. package/test262/node_modules/argparse/lib/action/subparsers.js +0 -149
  194. package/test262/node_modules/argparse/lib/action/version.js +0 -47
  195. package/test262/node_modules/argparse/lib/action.js +0 -146
  196. package/test262/node_modules/argparse/lib/action_container.js +0 -482
  197. package/test262/node_modules/argparse/lib/argparse.js +0 -14
  198. package/test262/node_modules/argparse/lib/argument/error.js +0 -50
  199. package/test262/node_modules/argparse/lib/argument/exclusive.js +0 -54
  200. package/test262/node_modules/argparse/lib/argument/group.js +0 -75
  201. package/test262/node_modules/argparse/lib/argument_parser.js +0 -1161
  202. package/test262/node_modules/argparse/lib/const.js +0 -21
  203. package/test262/node_modules/argparse/lib/help/added_formatters.js +0 -87
  204. package/test262/node_modules/argparse/lib/help/formatter.js +0 -795
  205. package/test262/node_modules/argparse/lib/namespace.js +0 -76
  206. package/test262/node_modules/argparse/lib/utils.js +0 -57
  207. package/test262/node_modules/argparse/package.json +0 -34
  208. package/test262/node_modules/braces/CHANGELOG.md +0 -184
  209. package/test262/node_modules/braces/LICENSE +0 -21
  210. package/test262/node_modules/braces/README.md +0 -593
  211. package/test262/node_modules/braces/index.js +0 -170
  212. package/test262/node_modules/braces/lib/compile.js +0 -57
  213. package/test262/node_modules/braces/lib/constants.js +0 -57
  214. package/test262/node_modules/braces/lib/expand.js +0 -113
  215. package/test262/node_modules/braces/lib/parse.js +0 -333
  216. package/test262/node_modules/braces/lib/stringify.js +0 -32
  217. package/test262/node_modules/braces/lib/utils.js +0 -112
  218. package/test262/node_modules/braces/package.json +0 -77
  219. package/test262/node_modules/esprima/ChangeLog +0 -235
  220. package/test262/node_modules/esprima/LICENSE.BSD +0 -21
  221. package/test262/node_modules/esprima/README.md +0 -46
  222. package/test262/node_modules/esprima/bin/esparse.js +0 -139
  223. package/test262/node_modules/esprima/bin/esvalidate.js +0 -236
  224. package/test262/node_modules/esprima/dist/esprima.js +0 -6709
  225. package/test262/node_modules/esprima/package.json +0 -112
  226. package/test262/node_modules/fast-glob/LICENSE +0 -21
  227. package/test262/node_modules/fast-glob/README.md +0 -859
  228. package/test262/node_modules/fast-glob/out/index.d.ts +0 -40
  229. package/test262/node_modules/fast-glob/out/index.js +0 -102
  230. package/test262/node_modules/fast-glob/out/managers/tasks.d.ts +0 -22
  231. package/test262/node_modules/fast-glob/out/managers/tasks.js +0 -110
  232. package/test262/node_modules/fast-glob/out/providers/async.d.ts +0 -9
  233. package/test262/node_modules/fast-glob/out/providers/async.js +0 -23
  234. package/test262/node_modules/fast-glob/out/providers/filters/deep.d.ts +0 -16
  235. package/test262/node_modules/fast-glob/out/providers/filters/deep.js +0 -62
  236. package/test262/node_modules/fast-glob/out/providers/filters/entry.d.ts +0 -16
  237. package/test262/node_modules/fast-glob/out/providers/filters/entry.js +0 -63
  238. package/test262/node_modules/fast-glob/out/providers/filters/error.d.ts +0 -8
  239. package/test262/node_modules/fast-glob/out/providers/filters/error.js +0 -15
  240. package/test262/node_modules/fast-glob/out/providers/matchers/matcher.d.ts +0 -33
  241. package/test262/node_modules/fast-glob/out/providers/matchers/matcher.js +0 -45
  242. package/test262/node_modules/fast-glob/out/providers/matchers/partial.d.ts +0 -4
  243. package/test262/node_modules/fast-glob/out/providers/matchers/partial.js +0 -38
  244. package/test262/node_modules/fast-glob/out/providers/provider.d.ts +0 -19
  245. package/test262/node_modules/fast-glob/out/providers/provider.js +0 -48
  246. package/test262/node_modules/fast-glob/out/providers/stream.d.ts +0 -11
  247. package/test262/node_modules/fast-glob/out/providers/stream.js +0 -31
  248. package/test262/node_modules/fast-glob/out/providers/sync.d.ts +0 -9
  249. package/test262/node_modules/fast-glob/out/providers/sync.js +0 -23
  250. package/test262/node_modules/fast-glob/out/providers/transformers/entry.d.ts +0 -8
  251. package/test262/node_modules/fast-glob/out/providers/transformers/entry.js +0 -26
  252. package/test262/node_modules/fast-glob/out/readers/async.d.ts +0 -10
  253. package/test262/node_modules/fast-glob/out/readers/async.js +0 -35
  254. package/test262/node_modules/fast-glob/out/readers/reader.d.ts +0 -15
  255. package/test262/node_modules/fast-glob/out/readers/reader.js +0 -33
  256. package/test262/node_modules/fast-glob/out/readers/stream.d.ts +0 -14
  257. package/test262/node_modules/fast-glob/out/readers/stream.js +0 -55
  258. package/test262/node_modules/fast-glob/out/readers/sync.d.ts +0 -12
  259. package/test262/node_modules/fast-glob/out/readers/sync.js +0 -43
  260. package/test262/node_modules/fast-glob/out/settings.d.ts +0 -164
  261. package/test262/node_modules/fast-glob/out/settings.js +0 -57
  262. package/test262/node_modules/fast-glob/out/types/index.d.ts +0 -31
  263. package/test262/node_modules/fast-glob/out/types/index.js +0 -2
  264. package/test262/node_modules/fast-glob/out/utils/array.d.ts +0 -2
  265. package/test262/node_modules/fast-glob/out/utils/array.js +0 -22
  266. package/test262/node_modules/fast-glob/out/utils/errno.d.ts +0 -2
  267. package/test262/node_modules/fast-glob/out/utils/errno.js +0 -7
  268. package/test262/node_modules/fast-glob/out/utils/fs.d.ts +0 -4
  269. package/test262/node_modules/fast-glob/out/utils/fs.js +0 -19
  270. package/test262/node_modules/fast-glob/out/utils/index.d.ts +0 -8
  271. package/test262/node_modules/fast-glob/out/utils/index.js +0 -17
  272. package/test262/node_modules/fast-glob/out/utils/path.d.ts +0 -13
  273. package/test262/node_modules/fast-glob/out/utils/path.js +0 -68
  274. package/test262/node_modules/fast-glob/out/utils/pattern.d.ts +0 -47
  275. package/test262/node_modules/fast-glob/out/utils/pattern.js +0 -188
  276. package/test262/node_modules/fast-glob/out/utils/stream.d.ts +0 -4
  277. package/test262/node_modules/fast-glob/out/utils/stream.js +0 -17
  278. package/test262/node_modules/fast-glob/out/utils/string.d.ts +0 -2
  279. package/test262/node_modules/fast-glob/out/utils/string.js +0 -11
  280. package/test262/node_modules/fast-glob/package.json +0 -81
  281. package/test262/node_modules/fastq/.github/dependabot.yml +0 -11
  282. package/test262/node_modules/fastq/.github/workflows/ci.yml +0 -50
  283. package/test262/node_modules/fastq/LICENSE +0 -13
  284. package/test262/node_modules/fastq/README.md +0 -309
  285. package/test262/node_modules/fastq/bench.js +0 -66
  286. package/test262/node_modules/fastq/example.js +0 -14
  287. package/test262/node_modules/fastq/example.mjs +0 -11
  288. package/test262/node_modules/fastq/index.d.ts +0 -37
  289. package/test262/node_modules/fastq/package.json +0 -52
  290. package/test262/node_modules/fastq/queue.js +0 -289
  291. package/test262/node_modules/fastq/test/example.ts +0 -81
  292. package/test262/node_modules/fastq/test/promise.js +0 -248
  293. package/test262/node_modules/fastq/test/test.js +0 -566
  294. package/test262/node_modules/fastq/test/tsconfig.json +0 -11
  295. package/test262/node_modules/fill-range/LICENSE +0 -21
  296. package/test262/node_modules/fill-range/README.md +0 -237
  297. package/test262/node_modules/fill-range/index.js +0 -249
  298. package/test262/node_modules/fill-range/package.json +0 -69
  299. package/test262/node_modules/glob-parent/CHANGELOG.md +0 -110
  300. package/test262/node_modules/glob-parent/LICENSE +0 -15
  301. package/test262/node_modules/glob-parent/README.md +0 -137
  302. package/test262/node_modules/glob-parent/index.js +0 -42
  303. package/test262/node_modules/glob-parent/package.json +0 -48
  304. package/test262/node_modules/graceful-fs/LICENSE +0 -15
  305. package/test262/node_modules/graceful-fs/README.md +0 -143
  306. package/test262/node_modules/graceful-fs/clone.js +0 -23
  307. package/test262/node_modules/graceful-fs/graceful-fs.js +0 -448
  308. package/test262/node_modules/graceful-fs/legacy-streams.js +0 -118
  309. package/test262/node_modules/graceful-fs/package.json +0 -53
  310. package/test262/node_modules/graceful-fs/polyfills.js +0 -355
  311. package/test262/node_modules/is-extglob/LICENSE +0 -21
  312. package/test262/node_modules/is-extglob/README.md +0 -107
  313. package/test262/node_modules/is-extglob/index.js +0 -20
  314. package/test262/node_modules/is-extglob/package.json +0 -69
  315. package/test262/node_modules/is-glob/LICENSE +0 -21
  316. package/test262/node_modules/is-glob/README.md +0 -206
  317. package/test262/node_modules/is-glob/index.js +0 -150
  318. package/test262/node_modules/is-glob/package.json +0 -81
  319. package/test262/node_modules/is-number/LICENSE +0 -21
  320. package/test262/node_modules/is-number/README.md +0 -187
  321. package/test262/node_modules/is-number/index.js +0 -18
  322. package/test262/node_modules/is-number/package.json +0 -82
  323. package/test262/node_modules/js-yaml/CHANGELOG.md +0 -557
  324. package/test262/node_modules/js-yaml/LICENSE +0 -21
  325. package/test262/node_modules/js-yaml/README.md +0 -299
  326. package/test262/node_modules/js-yaml/bin/js-yaml.js +0 -132
  327. package/test262/node_modules/js-yaml/dist/js-yaml.js +0 -3989
  328. package/test262/node_modules/js-yaml/dist/js-yaml.min.js +0 -1
  329. package/test262/node_modules/js-yaml/index.js +0 -7
  330. package/test262/node_modules/js-yaml/lib/js-yaml/common.js +0 -59
  331. package/test262/node_modules/js-yaml/lib/js-yaml/dumper.js +0 -850
  332. package/test262/node_modules/js-yaml/lib/js-yaml/exception.js +0 -43
  333. package/test262/node_modules/js-yaml/lib/js-yaml/loader.js +0 -1644
  334. package/test262/node_modules/js-yaml/lib/js-yaml/mark.js +0 -76
  335. package/test262/node_modules/js-yaml/lib/js-yaml/schema/core.js +0 -18
  336. package/test262/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +0 -25
  337. package/test262/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +0 -28
  338. package/test262/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +0 -17
  339. package/test262/node_modules/js-yaml/lib/js-yaml/schema/json.js +0 -25
  340. package/test262/node_modules/js-yaml/lib/js-yaml/schema.js +0 -108
  341. package/test262/node_modules/js-yaml/lib/js-yaml/type/binary.js +0 -138
  342. package/test262/node_modules/js-yaml/lib/js-yaml/type/bool.js +0 -35
  343. package/test262/node_modules/js-yaml/lib/js-yaml/type/float.js +0 -116
  344. package/test262/node_modules/js-yaml/lib/js-yaml/type/int.js +0 -173
  345. package/test262/node_modules/js-yaml/lib/js-yaml/type/js/function.js +0 -93
  346. package/test262/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +0 -60
  347. package/test262/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +0 -28
  348. package/test262/node_modules/js-yaml/lib/js-yaml/type/map.js +0 -8
  349. package/test262/node_modules/js-yaml/lib/js-yaml/type/merge.js +0 -12
  350. package/test262/node_modules/js-yaml/lib/js-yaml/type/null.js +0 -34
  351. package/test262/node_modules/js-yaml/lib/js-yaml/type/omap.js +0 -44
  352. package/test262/node_modules/js-yaml/lib/js-yaml/type/pairs.js +0 -53
  353. package/test262/node_modules/js-yaml/lib/js-yaml/type/seq.js +0 -8
  354. package/test262/node_modules/js-yaml/lib/js-yaml/type/set.js +0 -29
  355. package/test262/node_modules/js-yaml/lib/js-yaml/type/str.js +0 -8
  356. package/test262/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +0 -88
  357. package/test262/node_modules/js-yaml/lib/js-yaml/type.js +0 -61
  358. package/test262/node_modules/js-yaml/lib/js-yaml.js +0 -39
  359. package/test262/node_modules/js-yaml/package.json +0 -49
  360. package/test262/node_modules/klaw/CHANGELOG.md +0 -62
  361. package/test262/node_modules/klaw/LICENSE +0 -15
  362. package/test262/node_modules/klaw/README.md +0 -252
  363. package/test262/node_modules/klaw/package.json +0 -40
  364. package/test262/node_modules/klaw/src/index.js +0 -56
  365. package/test262/node_modules/merge2/LICENSE +0 -21
  366. package/test262/node_modules/merge2/README.md +0 -144
  367. package/test262/node_modules/merge2/index.js +0 -144
  368. package/test262/node_modules/merge2/package.json +0 -43
  369. package/test262/node_modules/micromatch/LICENSE +0 -21
  370. package/test262/node_modules/micromatch/README.md +0 -1011
  371. package/test262/node_modules/micromatch/index.js +0 -467
  372. package/test262/node_modules/micromatch/package.json +0 -119
  373. package/test262/node_modules/picomatch/CHANGELOG.md +0 -136
  374. package/test262/node_modules/picomatch/LICENSE +0 -21
  375. package/test262/node_modules/picomatch/README.md +0 -708
  376. package/test262/node_modules/picomatch/index.js +0 -3
  377. package/test262/node_modules/picomatch/lib/constants.js +0 -179
  378. package/test262/node_modules/picomatch/lib/parse.js +0 -1091
  379. package/test262/node_modules/picomatch/lib/picomatch.js +0 -342
  380. package/test262/node_modules/picomatch/lib/scan.js +0 -391
  381. package/test262/node_modules/picomatch/lib/utils.js +0 -64
  382. package/test262/node_modules/picomatch/package.json +0 -81
  383. package/test262/node_modules/queue-microtask/LICENSE +0 -20
  384. package/test262/node_modules/queue-microtask/README.md +0 -90
  385. package/test262/node_modules/queue-microtask/index.d.ts +0 -2
  386. package/test262/node_modules/queue-microtask/index.js +0 -9
  387. package/test262/node_modules/queue-microtask/package.json +0 -55
  388. package/test262/node_modules/reusify/.coveralls.yml +0 -1
  389. package/test262/node_modules/reusify/.travis.yml +0 -28
  390. package/test262/node_modules/reusify/LICENSE +0 -22
  391. package/test262/node_modules/reusify/README.md +0 -145
  392. package/test262/node_modules/reusify/benchmarks/createNoCodeFunction.js +0 -30
  393. package/test262/node_modules/reusify/benchmarks/fib.js +0 -13
  394. package/test262/node_modules/reusify/benchmarks/reuseNoCodeFunction.js +0 -38
  395. package/test262/node_modules/reusify/package.json +0 -45
  396. package/test262/node_modules/reusify/reusify.js +0 -33
  397. package/test262/node_modules/reusify/test.js +0 -66
  398. package/test262/node_modules/run-parallel/LICENSE +0 -20
  399. package/test262/node_modules/run-parallel/README.md +0 -85
  400. package/test262/node_modules/run-parallel/index.js +0 -51
  401. package/test262/node_modules/run-parallel/package.json +0 -58
  402. package/test262/node_modules/sprintf-js/LICENSE +0 -24
  403. package/test262/node_modules/sprintf-js/README.md +0 -88
  404. package/test262/node_modules/sprintf-js/bower.json +0 -14
  405. package/test262/node_modules/sprintf-js/demo/angular.html +0 -20
  406. package/test262/node_modules/sprintf-js/dist/angular-sprintf.min.js +0 -4
  407. package/test262/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +0 -1
  408. package/test262/node_modules/sprintf-js/dist/angular-sprintf.min.map +0 -1
  409. package/test262/node_modules/sprintf-js/dist/sprintf.min.js +0 -4
  410. package/test262/node_modules/sprintf-js/dist/sprintf.min.js.map +0 -1
  411. package/test262/node_modules/sprintf-js/dist/sprintf.min.map +0 -1
  412. package/test262/node_modules/sprintf-js/gruntfile.js +0 -36
  413. package/test262/node_modules/sprintf-js/package.json +0 -22
  414. package/test262/node_modules/sprintf-js/src/angular-sprintf.js +0 -18
  415. package/test262/node_modules/sprintf-js/src/sprintf.js +0 -208
  416. package/test262/node_modules/sprintf-js/test/test.js +0 -82
  417. package/test262/node_modules/test262-stream/.jshintignore +0 -2
  418. package/test262/node_modules/test262-stream/.jshintrc +0 -6
  419. package/test262/node_modules/test262-stream/.travis.yml +0 -5
  420. package/test262/node_modules/test262-stream/CONTRIBUTING.md +0 -37
  421. package/test262/node_modules/test262-stream/LICENSE-MICROSOFT.txt +0 -27
  422. package/test262/node_modules/test262-stream/LICENSE.txt +0 -27
  423. package/test262/node_modules/test262-stream/README.md +0 -71
  424. package/test262/node_modules/test262-stream/lib/builder.js +0 -46
  425. package/test262/node_modules/test262-stream/lib/compile.js +0 -24
  426. package/test262/node_modules/test262-stream/lib/create-scenarios.js +0 -29
  427. package/test262/node_modules/test262-stream/lib/index.js +0 -187
  428. package/test262/node_modules/test262-stream/lib/test-file.js +0 -150
  429. package/test262/node_modules/test262-stream/package.json +0 -26
  430. package/test262/node_modules/test262-stream/test/collateral/invalid-missing-harness/fake-test262/test/a-test-file.js +0 -16
  431. package/test262/node_modules/test262-stream/test/collateral/invalid-version-other-accepted/fake-test262/harness/assert.js +0 -17
  432. package/test262/node_modules/test262-stream/test/collateral/invalid-version-other-accepted/fake-test262/harness/doneprintHandle.js +0 -6
  433. package/test262/node_modules/test262-stream/test/collateral/invalid-version-other-accepted/fake-test262/harness/sta.js +0 -12
  434. package/test262/node_modules/test262-stream/test/collateral/invalid-version-other-accepted/fake-test262/package.json +0 -3
  435. package/test262/node_modules/test262-stream/test/collateral/invalid-version-other-accepted/fake-test262/test/strict.js +0 -9
  436. package/test262/node_modules/test262-stream/test/collateral/invalid-version-unsupported/fake-test262/harness/assert.js +0 -17
  437. package/test262/node_modules/test262-stream/test/collateral/invalid-version-unsupported/fake-test262/harness/doneprintHandle.js +0 -6
  438. package/test262/node_modules/test262-stream/test/collateral/invalid-version-unsupported/fake-test262/harness/sta.js +0 -12
  439. package/test262/node_modules/test262-stream/test/collateral/invalid-version-unsupported/fake-test262/package.json +0 -3
  440. package/test262/node_modules/test262-stream/test/collateral/invalid-version-unsupported/fake-test262/test/strict.js +0 -9
  441. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/asyncNegative_default.js +0 -49
  442. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/asyncNegative_strict_mode.js +0 -50
  443. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/async_default.js +0 -48
  444. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/async_strict_mode.js +0 -49
  445. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/bothStrict_default.js +0 -46
  446. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/bothStrict_strict_mode.js +0 -47
  447. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/error_default.js +0 -39
  448. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/error_strict_mode.js +0 -40
  449. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/module_default.js +0 -37
  450. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/module_strict_mode.js +0 -38
  451. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/negative-empty_default.js +0 -37
  452. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/negative-empty_strict_mode.js +0 -38
  453. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/noStrict_default.js +0 -36
  454. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/rawNoStrict_default.js +0 -14
  455. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/rawStrict_default.js +0 -15
  456. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-content/test/strict_strict_mode.js +0 -41
  457. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/asyncNegative_default.json +0 -22
  458. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/asyncNegative_strict_mode.json +0 -22
  459. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/async_default.json +0 -18
  460. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/async_strict_mode.json +0 -18
  461. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/bothStrict_default.json +0 -24
  462. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/bothStrict_strict_mode.json +0 -24
  463. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/error_default.json +0 -19
  464. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/error_strict_mode.json +0 -19
  465. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/module_default.json +0 -17
  466. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/module_strict_mode.json +0 -17
  467. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/negative-empty_default.json +0 -19
  468. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/negative-empty_strict_mode.json +0 -19
  469. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/noStrict_default.json +0 -17
  470. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/rawNoStrict_default.json +0 -14
  471. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/rawStrict_default.json +0 -14
  472. package/test262/node_modules/test262-stream/test/collateral/valid-default/expected-metadata/test/strict_strict_mode.json +0 -21
  473. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/harness/assert.js +0 -17
  474. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/harness/doneprintHandle.js +0 -6
  475. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/harness/sta.js +0 -12
  476. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/async.js +0 -10
  477. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/asyncNegative.js +0 -11
  478. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/bothStrict.js +0 -15
  479. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/error.js +0 -8
  480. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/module.js +0 -6
  481. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/module_FIXTURE.js +0 -2
  482. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/negative-empty.js +0 -6
  483. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/noStrict.js +0 -5
  484. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/rawNoStrict.js +0 -14
  485. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/rawStrict.js +0 -15
  486. package/test262/node_modules/test262-stream/test/collateral/valid-default/fake-test262/test/strict.js +0 -9
  487. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/expected-content/test/bothStrict_default.js +0 -46
  488. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/expected-content/test/bothStrict_strict_mode.js +0 -47
  489. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/expected-metadata/test/bothStrict_default.json +0 -24
  490. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/expected-metadata/test/bothStrict_strict_mode.json +0 -24
  491. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/harness/assert.js +0 -17
  492. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/harness/doneprintHandle.js +0 -6
  493. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/harness/sta.js +0 -12
  494. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/bothStrict.js +0 -15
  495. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-0_FIXTURE.js +0 -2
  496. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-1_FIXTURE.js +0 -2
  497. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-2_FIXTURE.js +0 -2
  498. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-3_FIXTURE.js +0 -2
  499. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-4_FIXTURE.js +0 -2
  500. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-5_FIXTURE.js +0 -2
  501. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-6_FIXTURE.js +0 -2
  502. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-7_FIXTURE.js +0 -2
  503. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-8_FIXTURE.js +0 -2
  504. package/test262/node_modules/test262-stream/test/collateral/valid-extra-files/fake-test262/test/zzz-9_FIXTURE.txt +0 -2
  505. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/expected-content/test/raw_default.js +0 -15
  506. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/expected-content/test/runtime_default.js +0 -38
  507. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/expected-content/test/runtime_strict_mode.js +0 -39
  508. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/expected-metadata/test/raw_default.json +0 -14
  509. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/expected-metadata/test/runtime_default.json +0 -15
  510. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/expected-metadata/test/runtime_strict_mode.json +0 -15
  511. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/fake-test262/harness/assert.js +0 -17
  512. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/fake-test262/harness/sta.js +0 -12
  513. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/fake-test262/test/raw.js +0 -15
  514. package/test262/node_modules/test262-stream/test/collateral/valid-insertionindex-with-copyright/fake-test262/test/runtime.js +0 -7
  515. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/asyncNegative_default.js +0 -11
  516. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/asyncNegative_strict_mode.js +0 -12
  517. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/async_default.js +0 -10
  518. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/async_strict_mode.js +0 -11
  519. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/bothStrict_default.js +0 -15
  520. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/bothStrict_strict_mode.js +0 -16
  521. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/error_default.js +0 -8
  522. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/error_strict_mode.js +0 -9
  523. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/module_default.js +0 -6
  524. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/module_strict_mode.js +0 -7
  525. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/negative-empty_default.js +0 -6
  526. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/negative-empty_strict_mode.js +0 -7
  527. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/noStrict_default.js +0 -5
  528. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/rawNoStrict_default.js +0 -14
  529. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/rawStrict_default.js +0 -15
  530. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-content/test/strict_strict_mode.js +0 -10
  531. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/asyncNegative_default.json +0 -18
  532. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/asyncNegative_strict_mode.json +0 -18
  533. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/async_default.json +0 -14
  534. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/async_strict_mode.json +0 -14
  535. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/bothStrict_default.json +0 -21
  536. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/bothStrict_strict_mode.json +0 -21
  537. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/error_default.json +0 -16
  538. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/error_strict_mode.json +0 -16
  539. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/module_default.json +0 -14
  540. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/module_strict_mode.json +0 -14
  541. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/negative-empty_default.json +0 -16
  542. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/negative-empty_strict_mode.json +0 -16
  543. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/noStrict_default.json +0 -14
  544. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/rawNoStrict_default.json +0 -14
  545. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/rawStrict_default.json +0 -14
  546. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/expected-metadata/test/strict_strict_mode.json +0 -18
  547. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/harness/assert.js +0 -17
  548. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/harness/doneprintHandle.js +0 -6
  549. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/harness/sta.js +0 -12
  550. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/async.js +0 -10
  551. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/asyncNegative.js +0 -11
  552. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/bothStrict.js +0 -15
  553. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/error.js +0 -8
  554. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/module.js +0 -6
  555. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/module_FIXTURE.js +0 -2
  556. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/negative-empty.js +0 -6
  557. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/noStrict.js +0 -5
  558. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/rawNoStrict.js +0 -14
  559. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/rawStrict.js +0 -15
  560. package/test262/node_modules/test262-stream/test/collateral/valid-omit-runtime/fake-test262/test/strict.js +0 -9
  561. package/test262/node_modules/test262-stream/test/collateral/valid-version-ignored/expected-content/test/strict_strict_mode.js +0 -41
  562. package/test262/node_modules/test262-stream/test/collateral/valid-version-ignored/expected-metadata/test/strict_strict_mode.json +0 -21
  563. package/test262/node_modules/test262-stream/test/collateral/valid-version-ignored/fake-test262/harness/assert.js +0 -17
  564. package/test262/node_modules/test262-stream/test/collateral/valid-version-ignored/fake-test262/harness/doneprintHandle.js +0 -6
  565. package/test262/node_modules/test262-stream/test/collateral/valid-version-ignored/fake-test262/harness/sta.js +0 -12
  566. package/test262/node_modules/test262-stream/test/collateral/valid-version-ignored/fake-test262/package.json +0 -3
  567. package/test262/node_modules/test262-stream/test/collateral/valid-version-ignored/fake-test262/test/strict.js +0 -9
  568. package/test262/node_modules/test262-stream/test/collateral/valid-version-supported/expected-content/test/strict_strict_mode.js +0 -41
  569. package/test262/node_modules/test262-stream/test/collateral/valid-version-supported/expected-metadata/test/strict_strict_mode.json +0 -21
  570. package/test262/node_modules/test262-stream/test/collateral/valid-version-supported/fake-test262/harness/assert.js +0 -17
  571. package/test262/node_modules/test262-stream/test/collateral/valid-version-supported/fake-test262/harness/doneprintHandle.js +0 -6
  572. package/test262/node_modules/test262-stream/test/collateral/valid-version-supported/fake-test262/harness/sta.js +0 -12
  573. package/test262/node_modules/test262-stream/test/collateral/valid-version-supported/fake-test262/package.json +0 -3
  574. package/test262/node_modules/test262-stream/test/collateral/valid-version-supported/fake-test262/test/strict.js +0 -9
  575. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/missing-raw-flag_default.js +0 -44
  576. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/missing-raw-flag_strict_mode.js +0 -45
  577. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/raw-with-ls-and-license-on-same-line_default.js +0 -20
  578. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/raw-with-ls-multiline-block_default.js +0 -18
  579. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/raw-with-ls_default.js +0 -17
  580. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/raw-with-ps-and-license-on-same-line_default.js +0 -20
  581. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/raw-with-ps-multiline-block_default.js +0 -18
  582. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/raw-with-ps_default.js +0 -17
  583. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/rawWithLicense_default.js +0 -21
  584. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-content/test/raw_default.js +0 -17
  585. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/missing-raw-flag_default.json +0 -22
  586. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/missing-raw-flag_strict_mode.json +0 -22
  587. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/raw-with-ls-and-license-on-same-line_default.json +0 -21
  588. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/raw-with-ls-multiline-block_default.json +0 -21
  589. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/raw-with-ls_default.json +0 -21
  590. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/raw-with-ps-and-license-on-same-line_default.json +0 -21
  591. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/raw-with-ps-multiline-block_default.json +0 -21
  592. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/raw-with-ps_default.json +0 -21
  593. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/rawWithLicense_default.json +0 -21
  594. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/expected-metadata/test/raw_default.json +0 -21
  595. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/harness/assert.js +0 -17
  596. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/harness/doneprintHandle.js +0 -6
  597. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/harness/sta.js +0 -12
  598. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/test/missing-raw-flag.js +0 -13
  599. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/test/raw-with-ls-and-license-on-same-line.js +0 -20
  600. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/test/raw-with-ls-multiline-block.js +0 -18
  601. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/test/raw-with-ls.js +0 -17
  602. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/test/raw-with-ps-and-license-on-same-line.js +0 -20
  603. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/test/raw-with-ps-multiline-block.js +0 -18
  604. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/test/raw-with-ps.js +0 -17
  605. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/test/raw.js +0 -17
  606. package/test262/node_modules/test262-stream/test/collateral/valid-with-hashbang/fake-test262/test/rawWithLicense.js +0 -21
  607. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/custom-includes/assert.js +0 -17
  608. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/custom-includes/doneprintHandle.js +0 -9
  609. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/custom-includes/sta.js +0 -13
  610. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/expected-content/test/async_default.js +0 -52
  611. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/expected-content/test/async_strict_mode.js +0 -53
  612. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/expected-content/test/bothStrict_default.js +0 -47
  613. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/expected-content/test/bothStrict_strict_mode.js +0 -48
  614. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/expected-metadata/test/async_default.json +0 -18
  615. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/expected-metadata/test/async_strict_mode.json +0 -18
  616. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/expected-metadata/test/bothStrict_default.json +0 -24
  617. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/expected-metadata/test/bothStrict_strict_mode.json +0 -24
  618. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/fake-test262/harness/assert.js +0 -17
  619. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/fake-test262/harness/doneprintHandle.js +0 -6
  620. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/fake-test262/test/async.js +0 -10
  621. package/test262/node_modules/test262-stream/test/collateral/valid-with-includes/fake-test262/test/bothStrict.js +0 -15
  622. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-content/test/async/asyncNegative_default.js +0 -49
  623. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-content/test/async/asyncNegative_strict_mode.js +0 -50
  624. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-content/test/async/async_default.js +0 -48
  625. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-content/test/async/async_strict_mode.js +0 -49
  626. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-content/test/bothStrict_default.js +0 -46
  627. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-content/test/bothStrict_strict_mode.js +0 -47
  628. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-content/test/strict/no/noStrict_default.js +0 -36
  629. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-content/test/strict/no/rawNoStrict_default.js +0 -14
  630. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-metadata/test/async/asyncNegative_default.json +0 -22
  631. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-metadata/test/async/asyncNegative_strict_mode.json +0 -22
  632. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-metadata/test/async/async_default.json +0 -18
  633. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-metadata/test/async/async_strict_mode.json +0 -18
  634. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-metadata/test/bothStrict_default.json +0 -24
  635. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-metadata/test/bothStrict_strict_mode.json +0 -24
  636. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-metadata/test/strict/no/noStrict_default.json +0 -17
  637. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/expected-metadata/test/strict/no/rawNoStrict_default.json +0 -14
  638. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/harness/assert.js +0 -17
  639. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/harness/doneprintHandle.js +0 -6
  640. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/harness/sta.js +0 -12
  641. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/test/async/async.js +0 -10
  642. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/test/async/asyncNegative.js +0 -11
  643. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/test/bothStrict.js +0 -15
  644. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/test/error.js +0 -8
  645. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/test/negative-empty.js +0 -6
  646. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/test/strict/no/noStrict.js +0 -5
  647. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/test/strict/no/rawNoStrict.js +0 -14
  648. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/test/strict/rawStrict.js +0 -15
  649. package/test262/node_modules/test262-stream/test/collateral/valid-with-paths/fake-test262/test/strict/strict.js +0 -9
  650. package/test262/node_modules/test262-stream/test/test.js +0 -319
  651. package/test262/node_modules/to-regex-range/LICENSE +0 -21
  652. package/test262/node_modules/to-regex-range/README.md +0 -305
  653. package/test262/node_modules/to-regex-range/index.js +0 -288
  654. package/test262/node_modules/to-regex-range/package.json +0 -88
  655. package/test262/package-lock.json +0 -279
  656. package/test262/package.json +0 -6
  657. package/test262/prelude.js +0 -75
  658. package/test262/results.json +0 -1
package/compiler/parse.js CHANGED
@@ -1,4 +1,27 @@
1
- const { parse } = (await import(globalThis.document ? 'https://esm.sh/acorn' : 'acorn'));
1
+ import { log } from "./log.js";
2
+
3
+ // deno compat
4
+ if (typeof process === 'undefined' && typeof Deno !== 'undefined') {
5
+ const textEncoder = new TextEncoder();
6
+ globalThis.process = { argv: ['', '', ...Deno.args], stdout: { write: str => Deno.writeAllSync(Deno.stdout, textEncoder.encode(str)) } };
7
+ }
8
+
9
+ // import { parse } from 'acorn';
10
+
11
+ // todo: review which to use by default
12
+ const parser = process.argv.find(x => x.startsWith('-parser='))?.split('=')?.[1] ?? 'acorn';
13
+ const { parse } = (await import((globalThis.document ? 'https://esm.sh/' : '') + parser));
14
+
15
+ // supported parsers:
16
+ // - acorn
17
+ // - meriyah
18
+ // - hermes-parser
19
+ // - @babel/parser
20
+
21
+ // should we try to support types (while parsing)
22
+ const types = process.argv.includes('-types');
23
+
24
+ if (types && !['@babel/parser', 'hermes-parser'].includes(parser)) log.warning('parser', `passed -types with a parser (${parser}) which does not support`);
2
25
 
3
26
  export default (input, flags) => {
4
27
  return parse(input, {
@@ -5,27 +5,30 @@ import { UNDEFINED } from "./builtins.js";
5
5
 
6
6
  // todo: do not duplicate this
7
7
  const TYPES = {
8
- number: 0xffffffffffff0,
9
- boolean: 0xffffffffffff1,
10
- string: 0xffffffffffff2,
11
- undefined: 0xffffffffffff3,
12
- object: 0xffffffffffff4,
13
- function: 0xffffffffffff5,
14
- symbol: 0xffffffffffff6,
15
- bigint: 0xffffffffffff7,
8
+ number: 0x00,
9
+ boolean: 0x01,
10
+ string: 0x02,
11
+ undefined: 0x03,
12
+ object: 0x04,
13
+ function: 0x05,
14
+ symbol: 0x06,
15
+ bigint: 0x07,
16
16
 
17
17
  // these are not "typeof" types but tracked internally
18
- _array: 0xffffffffffff8
18
+ _array: 0x10,
19
+ _regexp: 0x11
19
20
  };
20
21
 
21
22
  // todo: turn these into built-ins once arrays and these become less hacky
22
23
 
23
24
  export const PrototypeFuncs = function() {
24
25
  const noUnlikelyChecks = process.argv.includes('-funsafe-no-unlikely-proto-checks');
26
+ let zeroChecks = process.argv.find(x => x.startsWith('-funsafe-zero-proto-checks='));
27
+ if (zeroChecks) zeroChecks = zeroChecks.split('=')[1].split(',').reduce((acc, x) => { acc[x.toLowerCase()] = true; return acc; }, {});
28
+ else zeroChecks = {};
25
29
 
26
30
  this[TYPES._array] = {
27
31
  // lX = local accessor of X ({ get, set }), iX = local index of X, wX = wasm ops of X
28
- // todo: out of bounds (>) properly
29
32
  at: (pointer, length, wIndex, iTmp) => [
30
33
  ...wIndex,
31
34
  Opcodes.i32_to,
@@ -36,7 +39,7 @@ export const PrototypeFuncs = function() {
36
39
  [ Opcodes.i32_lt_s ],
37
40
  [ Opcodes.if, Blocktype.void ],
38
41
  [ Opcodes.local_get, iTmp ],
39
- ...length.cachedI32,
42
+ ...length.getCachedI32(),
40
43
  [ Opcodes.i32_add ],
41
44
  [ Opcodes.local_set, iTmp ],
42
45
  [ Opcodes.end ],
@@ -47,7 +50,7 @@ export const PrototypeFuncs = function() {
47
50
  [ Opcodes.i32_lt_s ],
48
51
 
49
52
  [ Opcodes.local_get, iTmp ],
50
- ...length.cachedI32,
53
+ ...length.getCachedI32(),
51
54
  [ Opcodes.i32_ge_s ],
52
55
  [ Opcodes.i32_or ],
53
56
 
@@ -60,36 +63,48 @@ export const PrototypeFuncs = function() {
60
63
  ...number(ValtypeSize[valtype], Valtype.i32),
61
64
  [ Opcodes.i32_mul ],
62
65
 
66
+ ...pointer,
67
+ [ Opcodes.i32_add ],
68
+
63
69
  // read from memory
64
- [ Opcodes.load, Math.log2(ValtypeSize[valtype]) - 1, ...unsignedLEB128(pointer + ValtypeSize.i32) ]
70
+ [ Opcodes.load, Math.log2(ValtypeSize[valtype]) - 1, ...unsignedLEB128(ValtypeSize.i32) ]
65
71
  ],
66
72
 
67
73
  // todo: only for 1 argument
68
74
  push: (pointer, length, wNewMember) => [
69
75
  // get memory offset of array at last index (length)
70
- ...length.cachedI32,
76
+ ...length.getCachedI32(),
71
77
  ...number(ValtypeSize[valtype], Valtype.i32),
72
78
  [ Opcodes.i32_mul ],
73
79
 
80
+ ...pointer,
81
+ [ Opcodes.i32_add ],
82
+
74
83
  // generated wasm for new member
75
84
  ...wNewMember,
76
85
 
77
86
  // store in memory
78
- [ Opcodes.store, Math.log2(ValtypeSize[valtype]) - 1, ...unsignedLEB128(pointer + ValtypeSize.i32) ],
87
+ [ Opcodes.store, Math.log2(ValtypeSize[valtype]) - 1, ...unsignedLEB128(ValtypeSize.i32) ],
79
88
 
80
89
  // bump array length by 1 and return it
81
90
  ...length.setI32([
82
- ...length.cachedI32,
91
+ ...length.getCachedI32(),
83
92
  ...number(1, Valtype.i32),
84
- [ Opcodes.i32_add ]
93
+ [ Opcodes.i32_add ],
94
+
95
+ ...length.setCachedI32(),
96
+ ...length.getCachedI32(),
85
97
  ]),
86
98
 
87
- ...length.get
99
+ ...length.getCachedI32(),
100
+ Opcodes.i32_from_u
101
+
102
+ // ...length.get()
88
103
  ],
89
104
 
90
105
  pop: (pointer, length) => [
91
106
  // if length == 0, noop
92
- ...length.cachedI32,
107
+ ...length.getCachedI32(),
93
108
  [ Opcodes.i32_eqz ],
94
109
  [ Opcodes.if, Blocktype.void ],
95
110
  ...number(UNDEFINED),
@@ -100,22 +115,28 @@ export const PrototypeFuncs = function() {
100
115
 
101
116
  // decrement length by 1
102
117
  ...length.setI32([
103
- ...length.cachedI32,
118
+ ...length.getCachedI32(),
104
119
  ...number(1, Valtype.i32),
105
- [ Opcodes.i32_sub ]
120
+ [ Opcodes.i32_sub ],
121
+
122
+ ...length.setCachedI32(),
123
+ ...length.getCachedI32(),
106
124
  ]),
107
125
 
108
126
  // load last element
109
- ...length.cachedI32,
127
+ ...length.getCachedI32(),
110
128
  ...number(ValtypeSize[valtype], Valtype.i32),
111
129
  [ Opcodes.i32_mul ],
112
130
 
113
- [ Opcodes.load, Math.log2(ValtypeSize[valtype]) - 1, ...unsignedLEB128(pointer + ValtypeSize.i32 - ValtypeSize[valtype]) ]
131
+ ...pointer,
132
+ [ Opcodes.i32_add ],
133
+
134
+ [ Opcodes.load, Math.log2(ValtypeSize[valtype]) - 1, ...unsignedLEB128(ValtypeSize.i32) ]
114
135
  ],
115
136
 
116
137
  shift: (pointer, length) => [
117
138
  // if length == 0, noop
118
- ...length.cachedI32,
139
+ ...length.getCachedI32(),
119
140
  Opcodes.i32_eqz,
120
141
  [ Opcodes.if, Blocktype.void ],
121
142
  ...number(UNDEFINED),
@@ -126,29 +147,122 @@ export const PrototypeFuncs = function() {
126
147
 
127
148
  // decrement length by 1
128
149
  ...length.setI32([
129
- ...length.cachedI32,
150
+ ...length.getCachedI32(),
130
151
  ...number(1, Valtype.i32),
131
- [ Opcodes.i32_sub ]
152
+ [ Opcodes.i32_sub ],
153
+
154
+ ...length.setCachedI32(),
155
+ ...length.getCachedI32(),
132
156
  ]),
133
157
 
134
158
  // load first element
135
- ...number(0, Valtype.i32),
136
- [ Opcodes.load, Math.log2(ValtypeSize[valtype]) - 1, ...unsignedLEB128(pointer + ValtypeSize.i32) ],
159
+ ...pointer,
160
+ [ Opcodes.load, Math.log2(ValtypeSize[valtype]) - 1, ...unsignedLEB128(ValtypeSize.i32) ],
161
+
162
+ // offset page by -1 ind
163
+ // ...number(pointer + ValtypeSize.i32, Valtype.i32), // dst = base array index + length size
164
+ // ...number(pointer + ValtypeSize.i32 + ValtypeSize[valtype], Valtype.i32), // src = base array index + length size + an index
165
+ // ...number(pageSize - ValtypeSize.i32 - ValtypeSize[valtype], Valtype.i32), // size = PageSize - length size - an index
166
+ // [ ...Opcodes.memory_copy, 0x00, 0x00 ]
137
167
 
138
168
  // offset all elements by -1 ind
139
- ...number(pointer + ValtypeSize.i32, Valtype.i32), // dst = base array index + length size
140
- ...number(pointer + ValtypeSize.i32 + ValtypeSize[valtype], Valtype.i32), // src = base array index + length size + an index
141
- ...number(pageSize - ValtypeSize.i32 - ValtypeSize[valtype], Valtype.i32), // size = PageSize - length size - an index
169
+
170
+ // dst = base array index + length size
171
+ ...number(ValtypeSize.i32, Valtype.i32),
172
+ ...pointer,
173
+ [ Opcodes.i32_add ],
174
+
175
+ // src = base array index + length size + an index
176
+ ...number(ValtypeSize.i32 + ValtypeSize[valtype], Valtype.i32),
177
+ ...pointer,
178
+ [ Opcodes.i32_add ],
179
+
180
+ // size = new length * sizeof element
181
+ ...length.getCachedI32(),
182
+ ...number(ValtypeSize[valtype], Valtype.i32),
183
+ [ Opcodes.i32_mul ],
142
184
  [ ...Opcodes.memory_copy, 0x00, 0x00 ]
185
+
186
+ // move pointer + sizeof element
187
+ // ...pointer.get(),
188
+ // ...number(ValtypeSize[valtype], Valtype.i32),
189
+ // [ Opcodes.i32_add ],
190
+ // ...pointer.set(),
191
+
192
+ // // write length - 1 in new address
193
+ // ...length.setI32([
194
+ // ...length.getCachedI32(),
195
+ // ...number(1, Valtype.i32),
196
+ // [ Opcodes.i32_sub ]
197
+ // ]),
198
+ ],
199
+
200
+ fill: (pointer, length, wElement, iTmp) => [
201
+ ...wElement,
202
+ [ Opcodes.local_set, iTmp ],
203
+
204
+ // use cached length i32 as pointer
205
+ ...length.getCachedI32(),
206
+
207
+ // length - 1 for indexes
208
+ ...number(1, Valtype.i32),
209
+ [ Opcodes.i32_sub ],
210
+
211
+ // * sizeof value
212
+ ...number(ValtypeSize[valtype], Valtype.i32),
213
+ [ Opcodes.i32_mul ],
214
+
215
+ ...length.setCachedI32(),
216
+
217
+ ...(noUnlikelyChecks ? [] : [
218
+ ...length.getCachedI32(),
219
+ ...number(0, Valtype.i32),
220
+ [ Opcodes.i32_lt_s ],
221
+ [ Opcodes.if, Blocktype.void ],
222
+ ...pointer,
223
+ Opcodes.i32_from_u,
224
+ [ Opcodes.br, 1 ],
225
+ [ Opcodes.end ]
226
+ ]),
227
+
228
+ [ Opcodes.loop, Blocktype.void ],
229
+
230
+ // set element using pointer
231
+ ...length.getCachedI32(),
232
+ ...pointer,
233
+ [ Opcodes.i32_add ],
234
+
235
+ [ Opcodes.local_get, iTmp ],
236
+ [ Opcodes.store, Math.log2(ValtypeSize[valtype]) - 1, ...unsignedLEB128( ValtypeSize.i32) ],
237
+
238
+ // pointer - sizeof value
239
+ ...length.getCachedI32(),
240
+ ...number(ValtypeSize[valtype], Valtype.i32),
241
+ [ Opcodes.i32_sub ],
242
+
243
+ ...length.setCachedI32(),
244
+
245
+ // if pointer >= 0, loop
246
+ ...length.getCachedI32(),
247
+ ...number(0, Valtype.i32),
248
+ [ Opcodes.i32_ge_s ],
249
+ [ Opcodes.br_if, 0 ],
250
+
251
+ [ Opcodes.end ],
252
+
253
+ // return this array
254
+ ...pointer,
255
+ Opcodes.i32_from_u,
143
256
  ]
144
257
  };
145
258
 
146
259
  this[TYPES._array].at.local = Valtype.i32;
147
260
  this[TYPES._array].push.noArgRetLength = true;
261
+ this[TYPES._array].fill.local = valtypeBinary;
262
+ this[TYPES._array].fill.returnType = TYPES._array;
148
263
 
149
264
  this[TYPES.string] = {
150
- // todo: out of bounds properly
151
- at: (pointer, length, wIndex, iTmp, arrayShell) => {
265
+ at: (pointer, length, wIndex, iTmp, _, arrayShell) => {
152
266
  const [ newOut, newPointer ] = arrayShell(1, 'i16');
153
267
 
154
268
  return [
@@ -157,9 +271,9 @@ export const PrototypeFuncs = function() {
157
271
  [ Opcodes.drop ],
158
272
 
159
273
  ...number(0, Valtype.i32), // base 0 for store later
160
- Opcodes.i32_to_u,
161
274
 
162
275
  ...wIndex,
276
+ Opcodes.i32_to_u,
163
277
  [ Opcodes.local_tee, iTmp ],
164
278
 
165
279
  // if index < 0: access index + array length
@@ -167,7 +281,7 @@ export const PrototypeFuncs = function() {
167
281
  [ Opcodes.i32_lt_s ],
168
282
  [ Opcodes.if, Blocktype.void ],
169
283
  [ Opcodes.local_get, iTmp ],
170
- ...length.cachedI32,
284
+ ...length.getCachedI32(),
171
285
  [ Opcodes.i32_add ],
172
286
  [ Opcodes.local_set, iTmp ],
173
287
  [ Opcodes.end ],
@@ -178,7 +292,7 @@ export const PrototypeFuncs = function() {
178
292
  [ Opcodes.i32_lt_s ],
179
293
 
180
294
  [ Opcodes.local_get, iTmp ],
181
- ...length.cachedI32,
295
+ ...length.getCachedI32(),
182
296
  [ Opcodes.i32_ge_s ],
183
297
  [ Opcodes.i32_or ],
184
298
 
@@ -191,8 +305,11 @@ export const PrototypeFuncs = function() {
191
305
  ...number(ValtypeSize.i16, Valtype.i32),
192
306
  [ Opcodes.i32_mul ],
193
307
 
308
+ ...pointer,
309
+ [ Opcodes.i32_add ],
310
+
194
311
  // load current string ind {arg}
195
- [ Opcodes.i32_load16_u, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(pointer + ValtypeSize.i32) ],
312
+ [ Opcodes.i32_load16_u, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(ValtypeSize.i32) ],
196
313
 
197
314
  // store to new string ind 0
198
315
  [ Opcodes.i32_store16, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(newPointer + ValtypeSize.i32) ],
@@ -203,7 +320,7 @@ export const PrototypeFuncs = function() {
203
320
  },
204
321
 
205
322
  // todo: out of bounds properly
206
- charAt: (pointer, length, wIndex, _, arrayShell) => {
323
+ charAt: (pointer, length, wIndex, _1, _2, arrayShell) => {
207
324
  const [ newOut, newPointer ] = arrayShell(1, 'i16');
208
325
 
209
326
  return [
@@ -219,8 +336,11 @@ export const PrototypeFuncs = function() {
219
336
  ...number(ValtypeSize.i16, Valtype.i32),
220
337
  [ Opcodes.i32_mul ],
221
338
 
339
+ ...pointer,
340
+ [ Opcodes.i32_add ],
341
+
222
342
  // load current string ind {arg}
223
- [ Opcodes.i32_load16_u, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(pointer + ValtypeSize.i32) ],
343
+ [ Opcodes.i32_load16_u, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(ValtypeSize.i32) ],
224
344
 
225
345
  // store to new string ind 0
226
346
  [ Opcodes.i32_store16, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(newPointer + ValtypeSize.i32) ],
@@ -234,39 +354,126 @@ export const PrototypeFuncs = function() {
234
354
  return [
235
355
  ...wIndex,
236
356
  Opcodes.i32_to,
237
- [ Opcodes.local_set, iTmp ],
238
357
 
239
- // index < 0
240
- ...(noUnlikelyChecks ? [] : [
358
+ ...(zeroChecks.charcodeat ? [] : [
359
+ [ Opcodes.local_set, iTmp ],
360
+
361
+ // index < 0
362
+ ...(noUnlikelyChecks ? [] : [
363
+ [ Opcodes.local_get, iTmp ],
364
+ ...number(0, Valtype.i32),
365
+ [ Opcodes.i32_lt_s ],
366
+ ]),
367
+
368
+ // index >= length
369
+ [ Opcodes.local_get, iTmp ],
370
+ ...length.getCachedI32(),
371
+ [ Opcodes.i32_ge_s ],
372
+
373
+ ...(noUnlikelyChecks ? [] : [ [ Opcodes.i32_or ] ]),
374
+ [ Opcodes.if, Blocktype.void ],
375
+ ...number(NaN),
376
+ [ Opcodes.br, 1 ],
377
+ [ Opcodes.end ],
378
+
241
379
  [ Opcodes.local_get, iTmp ],
242
- ...number(0, Valtype.i32),
243
- [ Opcodes.i32_lt_s ],
244
380
  ]),
245
381
 
246
- // index >= length
382
+ ...number(ValtypeSize.i16, Valtype.i32),
383
+ [ Opcodes.i32_mul ],
384
+
385
+ ...pointer,
386
+ [ Opcodes.i32_add ],
387
+
388
+ // load current string ind {arg}
389
+ [ Opcodes.i32_load16_u, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(ValtypeSize.i32) ],
390
+ Opcodes.i32_from_u
391
+ ];
392
+ },
393
+
394
+ isWellFormed: (pointer, length, wIndex, iTmp, iTmp2) => {
395
+ return [
396
+ // note: we cannot presume it begins as 0 in case it was used previously
397
+ ...pointer,
398
+ [ Opcodes.local_set, iTmp ],
399
+
400
+ // use cached length as end pointer
401
+ ...length.getCachedI32(),
402
+ ...number(ValtypeSize.i16, Valtype.i32),
403
+ [ Opcodes.i32_mul ],
404
+ ...pointer,
405
+ [ Opcodes.i32_add ],
406
+ ...length.setCachedI32(),
407
+
408
+ [ Opcodes.loop, Blocktype.void ],
409
+
410
+ [ Opcodes.block, Blocktype.void ],
411
+
247
412
  [ Opcodes.local_get, iTmp ],
248
- ...length.cachedI32,
413
+ [ Opcodes.i32_load16_u, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(ValtypeSize.i32) ],
414
+ [ Opcodes.local_set, iTmp2 ],
415
+
416
+ // if not surrogate, continue
417
+ [ Opcodes.local_get, iTmp2 ],
418
+ ...number(0xF800, Valtype.i32),
419
+ [ Opcodes.i32_and ],
420
+ ...number(0xD800, Valtype.i32),
421
+ [ Opcodes.i32_ne ],
422
+ [ Opcodes.br_if, 0 ],
423
+
424
+ // if not leading surrogate, return false
425
+ [ Opcodes.local_get, iTmp2 ],
426
+ ...number(0xDC00, Valtype.i32),
249
427
  [ Opcodes.i32_ge_s ],
428
+ [ Opcodes.if, Blocktype.void ],
429
+ ...number(0),
430
+ [ Opcodes.br, 3 ],
431
+ [ Opcodes.end ],
250
432
 
251
- ...(noUnlikelyChecks ? [] : [ [ Opcodes.i32_or ] ]),
433
+ // if not followed by trailing surrogate, return false
434
+ [ Opcodes.local_get, iTmp ],
435
+ [ Opcodes.i32_load16_u, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(ValtypeSize.i32 + ValtypeSize.i16) ],
436
+ ...number(0xFC00, Valtype.i32),
437
+ [ Opcodes.i32_and ],
438
+ ...number(0xDC00, Valtype.i32),
439
+ [ Opcodes.i32_ne ],
252
440
  [ Opcodes.if, Blocktype.void ],
253
- ...number(NaN),
254
- [ Opcodes.br, 1 ],
441
+ ...number(0),
442
+ [ Opcodes.br, 3 ],
255
443
  [ Opcodes.end ],
256
444
 
445
+ // bump index again since gone through two valid chars
257
446
  [ Opcodes.local_get, iTmp ],
258
447
  ...number(ValtypeSize.i16, Valtype.i32),
259
- [ Opcodes.i32_mul ],
448
+ [ Opcodes.i32_add ],
449
+ [ Opcodes.local_set, iTmp ],
260
450
 
261
- // load current string ind {arg}
262
- [ Opcodes.i32_load16_u, Math.log2(ValtypeSize.i16) - 1, ...unsignedLEB128(pointer + ValtypeSize.i32) ],
263
- Opcodes.i32_from_u
264
- ];
265
- },
451
+ [ Opcodes.end ],
452
+
453
+ // bump pointer and loop if not at the end
454
+ [ Opcodes.local_get, iTmp ],
455
+ ...number(ValtypeSize.i16, Valtype.i32),
456
+ [ Opcodes.i32_add ],
457
+ [ Opcodes.local_tee, iTmp ],
458
+
459
+ ...length.getCachedI32(), // end pointer
460
+ [ Opcodes.i32_ne ],
461
+ [ Opcodes.br_if, 0 ],
462
+
463
+ [ Opcodes.end ],
464
+
465
+ // return true
466
+ ...number(1)
467
+ ]
468
+ }
266
469
  };
267
470
 
268
- this[TYPES.string].at.local = valtypeBinary;
471
+ this[TYPES.string].at.local = Valtype.i32;
269
472
  this[TYPES.string].at.returnType = TYPES.string;
270
473
  this[TYPES.string].charAt.returnType = TYPES.string;
271
474
  this[TYPES.string].charCodeAt.local = Valtype.i32;
475
+
476
+ this[TYPES.string].isWellFormed.local = Valtype.i32;
477
+ this[TYPES.string].isWellFormed.local2 = Valtype.i32;
478
+ this[TYPES.string].isWellFormed.returnType = TYPES.boolean;
272
479
  };
@@ -1,18 +1,34 @@
1
1
  import { Valtype, FuncType, Empty, ExportDesc, Section, Magic, ModuleVersion, Opcodes, PageSize } from './wasmSpec.js';
2
- import { encodeVector, encodeString, encodeLocal } from './encoding.js';
2
+ import { encodeVector, encodeString, encodeLocal, unsignedLEB128, signedLEB128 } from './encoding.js';
3
3
  import { number } from './embedding.js';
4
4
  import { importedFuncs } from './builtins.js';
5
+ import { log } from "./log.js";
5
6
 
6
7
  const createSection = (type, data) => [
7
8
  type,
8
9
  ...encodeVector(data)
9
10
  ];
10
11
 
11
- export default (funcs, globals, tags, pages, flags) => {
12
+ const customSection = (name, data) => [
13
+ Section.custom,
14
+ ...encodeVector([...encodeString(name), ...data])
15
+ ];
16
+
17
+ const chHint = (topTier, baselineTier, strategy) => {
18
+ // 1 byte of 4 2 bit components: spare, top tier, baseline tier, compilation strategy
19
+ // tiers: 0x00 = default, 0x01 = baseline (liftoff), 0x02 = optimized (turbofan)
20
+ // strategy: 0x00 = default, 0x01 = lazy, 0x02 = eager, 0x03 = lazy baseline, eager top tier
21
+ return (strategy | (baselineTier << 2) | (topTier << 4));
22
+ };
23
+
24
+ export default (funcs, globals, tags, pages, data, flags) => {
12
25
  const types = [], typeCache = {};
13
26
 
14
27
  const optLevel = parseInt(process.argv.find(x => x.startsWith('-O'))?.[2] ?? 1);
15
28
 
29
+ const compileHints = process.argv.includes('-compile-hints');
30
+ if (compileHints) log.warning('sections', 'compile hints is V8 only w/ experimental arg! (you used -compile-hints)');
31
+
16
32
  const getType = (params, returns) => {
17
33
  const hash = `${params.join(',')}_${returns.join(',')}`;
18
34
  if (optLog) log('sections', `getType(${JSON.stringify(params)}, ${JSON.stringify(returns)}) -> ${hash} | cache: ${typeCache[hash]}`);
@@ -36,7 +52,7 @@ export default (funcs, globals, tags, pages, flags) => {
36
52
  // tree shake imports
37
53
  for (const f of funcs) {
38
54
  for (const inst of f.wasm) {
39
- if (inst[0] === Opcodes.call && inst[1] < importedFuncs.length) {
55
+ if ((inst[0] === Opcodes.call || inst[0] === Opcodes.return_call) && inst[1] < importedFuncs.length) {
40
56
  const idx = inst[1];
41
57
  const func = importedFuncs[idx];
42
58
 
@@ -51,15 +67,17 @@ export default (funcs, globals, tags, pages, flags) => {
51
67
  // fix call indexes for non-imports
52
68
  const delta = importedFuncs.length - importFuncs.length;
53
69
  for (const f of funcs) {
70
+ f.originalIndex = f.index;
54
71
  f.index -= delta;
55
72
 
56
73
  for (const inst of f.wasm) {
57
- if (inst[0] === Opcodes.call && inst[1] >= importedFuncs.length) {
74
+ if ((inst[0] === Opcodes.call || inst[0] === Opcodes.return_call) && inst[1] >= importedFuncs.length) {
58
75
  inst[1] -= delta;
59
76
  }
60
77
  }
61
78
  }
62
79
  }
80
+ globalThis.importFuncs = importFuncs;
63
81
 
64
82
  if (optLog) log('sections', `treeshake: using ${importFuncs.length}/${importedFuncs.length} imports`);
65
83
 
@@ -73,6 +91,14 @@ export default (funcs, globals, tags, pages, flags) => {
73
91
  encodeVector(funcs.map(x => getType(x.params, x.returns))) // type indexes
74
92
  );
75
93
 
94
+ // compilation hints section - unspecd, v8 only
95
+ // https://github.com/WebAssembly/design/issues/1473#issuecomment-1431274746
96
+ const chSection = !compileHints ? [] : customSection(
97
+ 'compilationHints',
98
+ // for now just do everything as optimise eager
99
+ encodeVector(funcs.map(_ => chHint(0x02, 0x02, 0x02)))
100
+ );
101
+
76
102
  const globalSection = Object.keys(globals).length === 0 ? [] : createSection(
77
103
  Section.global,
78
104
  encodeVector(Object.keys(globals).map(x => [ globals[x].type, 0x01, ...number(globals[x].init ?? 0, globals[x].type).flat(), Opcodes.end ]))
@@ -80,10 +106,13 @@ export default (funcs, globals, tags, pages, flags) => {
80
106
 
81
107
  const exports = funcs.filter(x => x.export).map((x, i) => [ ...encodeString(x.name === 'main' ? 'm' : x.name), ExportDesc.func, x.index ]);
82
108
 
109
+ if (process.argv.includes('-always-memory') && pages.size === 0) pages.set('-always-memory', 0);
110
+ if (optLevel === 0) pages.set('O0 precaution', 0);
111
+
83
112
  const usesMemory = pages.size > 0;
84
113
  const memorySection = !usesMemory ? [] : createSection(
85
114
  Section.memory,
86
- encodeVector([ [ 0x00, Math.ceil((pages.size * pageSize) / PageSize) ] ])
115
+ encodeVector([ [ 0x00, ...unsignedLEB128(Math.ceil((pages.size * pageSize) / PageSize)) ] ])
87
116
  );
88
117
 
89
118
  // export memory if used
@@ -121,7 +150,7 @@ export default (funcs, globals, tags, pages, flags) => {
121
150
 
122
151
  if (typeCount !== 0) localDecl.push(encodeLocal(typeCount, lastType));
123
152
 
124
- return encodeVector([ ...encodeVector(localDecl), ...x.wasm.flat().filter(x => x !== null), Opcodes.end ]);
153
+ return encodeVector([ ...encodeVector(localDecl), ...x.wasm.flat().filter(x => x <= 0xff), Opcodes.end ]);
125
154
  }))
126
155
  );
127
156
 
@@ -130,13 +159,24 @@ export default (funcs, globals, tags, pages, flags) => {
130
159
  encodeVector(types)
131
160
  );
132
161
 
162
+ const dataSection = data.length === 0 ? [] : createSection(
163
+ Section.data,
164
+ encodeVector(data.map(x => [ 0x00, Opcodes.i32_const, ...signedLEB128(x.offset), Opcodes.end, ...encodeVector(x.bytes) ]))
165
+ );
166
+
167
+ const dataCountSection = data.length === 0 ? [] : createSection(
168
+ Section.data_count,
169
+ unsignedLEB128(data.length)
170
+ );
171
+
133
172
  if (process.argv.includes('-sections')) console.log({
134
173
  typeSection: typeSection.map(x => x.toString(16)),
135
174
  importSection: importSection.map(x => x.toString(16)),
136
175
  funcSection: funcSection.map(x => x.toString(16)),
137
176
  globalSection: globalSection.map(x => x.toString(16)),
138
177
  exportSection: exportSection.map(x => x.toString(16)),
139
- codeSection: codeSection.map(x => x.toString(16))
178
+ codeSection: codeSection.map(x => x.toString(16)),
179
+ dataSection: dataSection.map(x => x.toString(16)),
140
180
  });
141
181
 
142
182
  return Uint8Array.from([
@@ -145,10 +185,13 @@ export default (funcs, globals, tags, pages, flags) => {
145
185
  ...typeSection,
146
186
  ...importSection,
147
187
  ...funcSection,
188
+ ...chSection,
148
189
  ...memorySection,
149
190
  ...tagSection,
150
191
  ...globalSection,
151
192
  ...exportSection,
152
- ...codeSection
193
+ ...dataCountSection,
194
+ ...codeSection,
195
+ ...dataSection
153
196
  ]);
154
197
  };
@@ -118,6 +118,7 @@ export const Opcodes = {
118
118
  i64_shl: 0x86,
119
119
  i64_shr_s: 0x87,
120
120
  i64_shr_u: 0x88,
121
+ i64_rotl: 0x89,
121
122
 
122
123
  f64_eq: 0x61,
123
124
  f64_ne: 0x62,
@@ -156,6 +157,8 @@ export const Opcodes = {
156
157
  f64_convert_i64_s: 0xb9,
157
158
  f64_convert_i64_u: 0xba,
158
159
 
160
+ f64_reinterpret_i64: 0xbf,
161
+
159
162
  i32_trunc_sat_f64_s: [ 0xfc, 0x02 ],
160
163
  i32_trunc_sat_f64_u: [ 0xfc, 0x03 ],
161
164