@scriptc/cli-darwin-x64 0.0.0 → 0.2.0

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 (960) hide show
  1. package/dist/LICENSE +202 -0
  2. package/dist/THIRD_PARTY_NOTICES +4 -0
  3. package/dist/bin/scriptc +0 -0
  4. package/dist/bin/scriptc.json +21 -0
  5. package/dist/lib/declarations/scriptc-node-fallback.d.ts +3847 -0
  6. package/dist/lib/declarations/scriptc-overrides.d.ts +92 -0
  7. package/dist/lib/declarations/scriptc.d.ts +98 -0
  8. package/dist/lib/llvm/LICENSE +1 -0
  9. package/dist/lib/llvm/SCRIPTC_LICENSE +1 -0
  10. package/dist/lib/llvm/THIRD_PARTY_NOTICES +1 -0
  11. package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
  12. package/dist/lib/llvm/package.json +35 -0
  13. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_array.o +0 -0
  14. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_assert.o +0 -0
  15. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_async.o +0 -0
  16. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_async_dyn.o +0 -0
  17. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bigint.o +0 -0
  18. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bigint_assert.o +0 -0
  19. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
  20. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
  21. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_child.o +0 -0
  22. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_closure.o +0 -0
  23. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_console.o +0 -0
  24. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_console_native.o +0 -0
  25. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_copying.o +0 -0
  26. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_crypto_async.o +0 -0
  27. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
  28. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dc.o +0 -0
  29. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
  30. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dyn_handle.o +0 -0
  31. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dyn_invoke.o +0 -0
  32. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_error.o +0 -0
  33. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_events.o +0 -0
  34. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
  35. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_exception.o +0 -0
  36. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
  37. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_ffi.o +0 -0
  38. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_ffi_queue.o +0 -0
  39. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
  40. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_grapheme.o +0 -0
  41. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_http.o +0 -0
  42. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_http2.o +0 -0
  43. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_inspect.o +0 -0
  44. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_json.o +0 -0
  45. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_lib.o +0 -0
  46. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_loop_epoll.o +0 -0
  47. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_loop_kqueue.o +0 -0
  48. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_loop_wsapoll.o +0 -0
  49. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_map.o +0 -0
  50. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_net.o +0 -0
  51. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_node_builtin.o +0 -0
  52. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_number.o +0 -0
  53. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_object.o +0 -0
  54. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_path.o +0 -0
  55. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_qs.o +0 -0
  56. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_readline.o +0 -0
  57. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_regex.o +0 -0
  58. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_stream.o +0 -0
  59. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_string.o +0 -0
  60. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_symbol.o +0 -0
  61. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_test.o +0 -0
  62. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_tls.o +0 -0
  63. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_tls_ca.o +0 -0
  64. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_union.o +0 -0
  65. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_url.o +0 -0
  66. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_url_params.o +0 -0
  67. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_util.o +0 -0
  68. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_watch.o +0 -0
  69. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_zlib.o +0 -0
  70. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
  71. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
  72. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
  73. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_async_dyn.o +0 -0
  74. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bigint.o +0 -0
  75. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bigint_assert.o +0 -0
  76. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
  77. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
  78. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
  79. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
  80. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
  81. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_console_native.o +0 -0
  82. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_copying.o +0 -0
  83. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_crypto_async.o +0 -0
  84. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
  85. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dc.o +0 -0
  86. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
  87. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dyn_handle.o +0 -0
  88. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dyn_invoke.o +0 -0
  89. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
  90. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
  91. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
  92. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
  93. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_fetch.o +0 -0
  94. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_ffi.o +0 -0
  95. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_ffi_queue.o +0 -0
  96. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
  97. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_grapheme.o +0 -0
  98. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_http.o +0 -0
  99. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_http2.o +0 -0
  100. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_inspect.o +0 -0
  101. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_inspect_island.o +0 -0
  102. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
  103. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
  104. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
  105. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_loop_epoll.o +0 -0
  106. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_loop_kqueue.o +0 -0
  107. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_loop_wsapoll.o +0 -0
  108. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
  109. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_net.o +0 -0
  110. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_net_island.o +0 -0
  111. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_node_builtin.o +0 -0
  112. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
  113. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
  114. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_path.o +0 -0
  115. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_qs.o +0 -0
  116. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
  117. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
  118. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
  119. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
  120. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_symbol.o +0 -0
  121. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_test.o +0 -0
  122. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
  123. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_tls_ca.o +0 -0
  124. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
  125. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_url.o +0 -0
  126. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_url_params.o +0 -0
  127. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_util.o +0 -0
  128. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_watch.o +0 -0
  129. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_web.o +0 -0
  130. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_zlib.o +0 -0
  131. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_zlib_island.o +0 -0
  132. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  133. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  134. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
  135. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
  136. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bigint.o +0 -0
  137. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bigint_assert.o +0 -0
  138. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
  139. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
  140. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
  141. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_console.o +0 -0
  142. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_console_native.o +0 -0
  143. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_copying.o +0 -0
  144. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
  145. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_dyn_handle.o +0 -0
  146. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_dyn_invoke.o +0 -0
  147. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_error.o +0 -0
  148. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_events_emitter.o +0 -0
  149. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
  150. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_grapheme.o +0 -0
  151. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_inspect.o +0 -0
  152. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
  153. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
  154. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_library.o +0 -0
  155. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
  156. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_node_builtin.o +0 -0
  157. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
  158. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
  159. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_path.o +0 -0
  160. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
  161. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
  162. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_symbol.o +0 -0
  163. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
  164. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_url.o +0 -0
  165. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_url_params.o +0 -0
  166. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_zlib.o +0 -0
  167. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  168. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_array.o +0 -0
  169. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
  170. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bigint.o +0 -0
  171. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bigint_assert.o +0 -0
  172. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
  173. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
  174. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
  175. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_console.o +0 -0
  176. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_console_native.o +0 -0
  177. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_copying.o +0 -0
  178. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
  179. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_dyn_handle.o +0 -0
  180. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_dyn_invoke.o +0 -0
  181. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_error.o +0 -0
  182. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
  183. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
  184. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_grapheme.o +0 -0
  185. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_inspect.o +0 -0
  186. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_json.o +0 -0
  187. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
  188. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_library.o +0 -0
  189. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_map.o +0 -0
  190. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_node_builtin.o +0 -0
  191. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_number.o +0 -0
  192. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_object.o +0 -0
  193. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_path.o +0 -0
  194. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
  195. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_string.o +0 -0
  196. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_symbol.o +0 -0
  197. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_union.o +0 -0
  198. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_url.o +0 -0
  199. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_url_params.o +0 -0
  200. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_zlib.o +0 -0
  201. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  202. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
  203. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
  204. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bigint.o +0 -0
  205. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bigint_assert.o +0 -0
  206. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
  207. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
  208. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
  209. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
  210. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_console_native.o +0 -0
  211. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
  212. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
  213. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_dyn_handle.o +0 -0
  214. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_dyn_invoke.o +0 -0
  215. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
  216. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
  217. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
  218. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_grapheme.o +0 -0
  219. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
  220. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
  221. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
  222. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_library.o +0 -0
  223. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
  224. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_node_builtin.o +0 -0
  225. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
  226. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
  227. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_path.o +0 -0
  228. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
  229. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
  230. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_symbol.o +0 -0
  231. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
  232. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_url.o +0 -0
  233. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_url_params.o +0 -0
  234. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
  235. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  236. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
  237. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
  238. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bigint.o +0 -0
  239. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bigint_assert.o +0 -0
  240. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
  241. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
  242. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
  243. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
  244. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_console_native.o +0 -0
  245. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
  246. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
  247. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_dyn_handle.o +0 -0
  248. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_dyn_invoke.o +0 -0
  249. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
  250. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
  251. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
  252. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_grapheme.o +0 -0
  253. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
  254. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
  255. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
  256. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_library.o +0 -0
  257. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
  258. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_node_builtin.o +0 -0
  259. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
  260. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
  261. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_path.o +0 -0
  262. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
  263. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
  264. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_symbol.o +0 -0
  265. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
  266. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_url.o +0 -0
  267. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_url_params.o +0 -0
  268. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
  269. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  270. package/dist/lib/runtime-darwin-x64/artifacts/licenses/mbedtls.txt +553 -0
  271. package/dist/lib/runtime-darwin-x64/artifacts/licenses/quickjs-ng.txt +24 -0
  272. package/dist/lib/runtime-darwin-x64/artifacts/licenses/ryu.txt +23 -0
  273. package/dist/lib/runtime-darwin-x64/artifacts/licenses/scriptc-runtime.txt +202 -0
  274. package/dist/lib/runtime-darwin-x64/artifacts/licenses/unicode.txt +39 -0
  275. package/dist/lib/runtime-darwin-x64/artifacts/licenses/zlib.txt +22 -0
  276. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_array.o +0 -0
  277. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_assert.o +0 -0
  278. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_async.o +0 -0
  279. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_async_dyn.o +0 -0
  280. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bigint.o +0 -0
  281. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bigint_assert.o +0 -0
  282. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bytes.o +0 -0
  283. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
  284. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_child.o +0 -0
  285. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_closure.o +0 -0
  286. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_console.o +0 -0
  287. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_console_native.o +0 -0
  288. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_copying.o +0 -0
  289. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_crypto_async.o +0 -0
  290. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_cycle.o +0 -0
  291. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dc.o +0 -0
  292. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dgram.o +0 -0
  293. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dyn_handle.o +0 -0
  294. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dyn_invoke.o +0 -0
  295. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_error.o +0 -0
  296. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_events.o +0 -0
  297. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
  298. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_exception.o +0 -0
  299. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_fetch.o +0 -0
  300. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_ffi.o +0 -0
  301. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_ffi_queue.o +0 -0
  302. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
  303. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_grapheme.o +0 -0
  304. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_http.o +0 -0
  305. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_http2.o +0 -0
  306. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_inspect.o +0 -0
  307. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_json.o +0 -0
  308. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_lib.o +0 -0
  309. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_loop_epoll.o +0 -0
  310. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_loop_kqueue.o +0 -0
  311. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_loop_wsapoll.o +0 -0
  312. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_map.o +0 -0
  313. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_net.o +0 -0
  314. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_node_builtin.o +0 -0
  315. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_number.o +0 -0
  316. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_object.o +0 -0
  317. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_path.o +0 -0
  318. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_qs.o +0 -0
  319. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_readline.o +0 -0
  320. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_regex.o +0 -0
  321. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_stream.o +0 -0
  322. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_string.o +0 -0
  323. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_symbol.o +0 -0
  324. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_test.o +0 -0
  325. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_tls.o +0 -0
  326. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_tls_ca.o +0 -0
  327. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_union.o +0 -0
  328. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_url.o +0 -0
  329. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_url_params.o +0 -0
  330. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_util.o +0 -0
  331. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_watch.o +0 -0
  332. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_zlib.o +0 -0
  333. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
  334. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
  335. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
  336. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_async_dyn.o +0 -0
  337. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bigint.o +0 -0
  338. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bigint_assert.o +0 -0
  339. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
  340. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
  341. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
  342. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
  343. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
  344. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_console_native.o +0 -0
  345. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_copying.o +0 -0
  346. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_crypto_async.o +0 -0
  347. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
  348. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dc.o +0 -0
  349. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
  350. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dyn_handle.o +0 -0
  351. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dyn_invoke.o +0 -0
  352. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
  353. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
  354. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
  355. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
  356. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_fetch.o +0 -0
  357. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_ffi.o +0 -0
  358. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_ffi_queue.o +0 -0
  359. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
  360. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_grapheme.o +0 -0
  361. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_http.o +0 -0
  362. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_http2.o +0 -0
  363. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_inspect.o +0 -0
  364. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_inspect_island.o +0 -0
  365. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
  366. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
  367. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
  368. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_loop_epoll.o +0 -0
  369. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_loop_kqueue.o +0 -0
  370. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_loop_wsapoll.o +0 -0
  371. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
  372. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_net.o +0 -0
  373. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_net_island.o +0 -0
  374. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_node_builtin.o +0 -0
  375. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
  376. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
  377. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_path.o +0 -0
  378. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_qs.o +0 -0
  379. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
  380. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
  381. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
  382. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
  383. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_symbol.o +0 -0
  384. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_test.o +0 -0
  385. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
  386. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_tls_ca.o +0 -0
  387. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
  388. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_url.o +0 -0
  389. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_url_params.o +0 -0
  390. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_util.o +0 -0
  391. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_watch.o +0 -0
  392. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_web.o +0 -0
  393. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_zlib.o +0 -0
  394. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_zlib_island.o +0 -0
  395. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  396. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  397. package/dist/lib/runtime-darwin-x64/artifacts/vendor/libregexp/libscriptc-libregexp.a +0 -0
  398. package/dist/lib/runtime-darwin-x64/artifacts/vendor/mbedtls/libscriptc-mbedtls.a +0 -0
  399. package/dist/lib/runtime-darwin-x64/artifacts/vendor/quickjs/libscriptc-quickjs.a +0 -0
  400. package/dist/lib/runtime-darwin-x64/artifacts/vendor/zlib/libscriptc-zlib.a +0 -0
  401. package/dist/lib/runtime-darwin-x64/package.json +24 -0
  402. package/dist/lib/runtime-darwin-x64/runtime-pack.json +5758 -0
  403. package/dist/lib/runtime-sources/LICENSE +202 -0
  404. package/dist/lib/runtime-sources/package.json +22 -0
  405. package/dist/lib/runtime-sources/src/scr_array.c +1444 -0
  406. package/dist/lib/runtime-sources/src/scr_assert.c +1537 -0
  407. package/dist/lib/runtime-sources/src/scr_async.c +3920 -0
  408. package/dist/lib/runtime-sources/src/scr_async.test.c +134 -0
  409. package/dist/lib/runtime-sources/src/scr_async.test.ts +34 -0
  410. package/dist/lib/runtime-sources/src/scr_async_dyn.c +803 -0
  411. package/dist/lib/runtime-sources/src/scr_bigint.c +890 -0
  412. package/dist/lib/runtime-sources/src/scr_bigint_assert.c +22 -0
  413. package/dist/lib/runtime-sources/src/scr_bytes.c +2518 -0
  414. package/dist/lib/runtime-sources/src/scr_bytes_io.c +755 -0
  415. package/dist/lib/runtime-sources/src/scr_child.c +5808 -0
  416. package/dist/lib/runtime-sources/src/scr_closure.c +213 -0
  417. package/dist/lib/runtime-sources/src/scr_console.c +259 -0
  418. package/dist/lib/runtime-sources/src/scr_console_native.c +95 -0
  419. package/dist/lib/runtime-sources/src/scr_copying.c +146 -0
  420. package/dist/lib/runtime-sources/src/scr_crypto_async.c +24 -0
  421. package/dist/lib/runtime-sources/src/scr_cycle.c +565 -0
  422. package/dist/lib/runtime-sources/src/scr_dc.c +814 -0
  423. package/dist/lib/runtime-sources/src/scr_dgram.c +1182 -0
  424. package/dist/lib/runtime-sources/src/scr_dyn_handle.c +96 -0
  425. package/dist/lib/runtime-sources/src/scr_dyn_invoke.c +1626 -0
  426. package/dist/lib/runtime-sources/src/scr_error.c +372 -0
  427. package/dist/lib/runtime-sources/src/scr_events.c +1222 -0
  428. package/dist/lib/runtime-sources/src/scr_events_emitter.c +842 -0
  429. package/dist/lib/runtime-sources/src/scr_exception.c +468 -0
  430. package/dist/lib/runtime-sources/src/scr_fetch.c +7215 -0
  431. package/dist/lib/runtime-sources/src/scr_fetch_curl.c +666 -0
  432. package/dist/lib/runtime-sources/src/scr_ffi.c +143 -0
  433. package/dist/lib/runtime-sources/src/scr_ffi_queue.c +379 -0
  434. package/dist/lib/runtime-sources/src/scr_file_handle.c +562 -0
  435. package/dist/lib/runtime-sources/src/scr_grapheme.c +203 -0
  436. package/dist/lib/runtime-sources/src/scr_grapheme_data.h +842 -0
  437. package/dist/lib/runtime-sources/src/scr_http.c +5808 -0
  438. package/dist/lib/runtime-sources/src/scr_http2.c +3243 -0
  439. package/dist/lib/runtime-sources/src/scr_inspect.c +923 -0
  440. package/dist/lib/runtime-sources/src/scr_inspect_island.c +51 -0
  441. package/dist/lib/runtime-sources/src/scr_island.c +9987 -0
  442. package/dist/lib/runtime-sources/src/scr_island_manifest.h +153 -0
  443. package/dist/lib/runtime-sources/src/scr_json.c +7928 -0
  444. package/dist/lib/runtime-sources/src/scr_json.test.c +182 -0
  445. package/dist/lib/runtime-sources/src/scr_json.test.ts +33 -0
  446. package/dist/lib/runtime-sources/src/scr_lib.c +6304 -0
  447. package/dist/lib/runtime-sources/src/scr_library.c +444 -0
  448. package/dist/lib/runtime-sources/src/scr_loop_epoll.c +241 -0
  449. package/dist/lib/runtime-sources/src/scr_loop_kqueue.c +121 -0
  450. package/dist/lib/runtime-sources/src/scr_loop_wsapoll.c +208 -0
  451. package/dist/lib/runtime-sources/src/scr_map.c +705 -0
  452. package/dist/lib/runtime-sources/src/scr_musl.c +438 -0
  453. package/dist/lib/runtime-sources/src/scr_net.c +3708 -0
  454. package/dist/lib/runtime-sources/src/scr_net_island.c +458 -0
  455. package/dist/lib/runtime-sources/src/scr_node_builtin.c +281 -0
  456. package/dist/lib/runtime-sources/src/scr_number.c +192 -0
  457. package/dist/lib/runtime-sources/src/scr_object.c +80 -0
  458. package/dist/lib/runtime-sources/src/scr_path.c +1281 -0
  459. package/dist/lib/runtime-sources/src/scr_platform.h +119 -0
  460. package/dist/lib/runtime-sources/src/scr_qs.c +496 -0
  461. package/dist/lib/runtime-sources/src/scr_readline.c +288 -0
  462. package/dist/lib/runtime-sources/src/scr_regex.c +1274 -0
  463. package/dist/lib/runtime-sources/src/scr_runtime.h +7207 -0
  464. package/dist/lib/runtime-sources/src/scr_stream.c +3149 -0
  465. package/dist/lib/runtime-sources/src/scr_string.c +1849 -0
  466. package/dist/lib/runtime-sources/src/scr_symbol.c +234 -0
  467. package/dist/lib/runtime-sources/src/scr_test.c +662 -0
  468. package/dist/lib/runtime-sources/src/scr_text_decoder_data.h +7389 -0
  469. package/dist/lib/runtime-sources/src/scr_tls.c +1806 -0
  470. package/dist/lib/runtime-sources/src/scr_tls_ca.c +433 -0
  471. package/dist/lib/runtime-sources/src/scr_union.c +105 -0
  472. package/dist/lib/runtime-sources/src/scr_url.c +1231 -0
  473. package/dist/lib/runtime-sources/src/scr_url_internal.h +29 -0
  474. package/dist/lib/runtime-sources/src/scr_url_params.c +526 -0
  475. package/dist/lib/runtime-sources/src/scr_util.c +984 -0
  476. package/dist/lib/runtime-sources/src/scr_watch.c +568 -0
  477. package/dist/lib/runtime-sources/src/scr_web.c +1854 -0
  478. package/dist/lib/runtime-sources/src/scr_win.c +231 -0
  479. package/dist/lib/runtime-sources/src/scr_win_stats.h +23 -0
  480. package/dist/lib/runtime-sources/src/scr_zlib.c +358 -0
  481. package/dist/lib/runtime-sources/src/scr_zlib_island.c +15 -0
  482. package/dist/lib/runtime-sources/vendor/README.md +60 -0
  483. package/dist/lib/runtime-sources/vendor/curl/COPYRIGHT +534 -0
  484. package/dist/lib/runtime-sources/vendor/curl/include/curl/curl.h +3214 -0
  485. package/dist/lib/runtime-sources/vendor/curl/include/curl/curlver.h +79 -0
  486. package/dist/lib/runtime-sources/vendor/curl/include/curl/easy.h +125 -0
  487. package/dist/lib/runtime-sources/vendor/curl/include/curl/header.h +74 -0
  488. package/dist/lib/runtime-sources/vendor/curl/include/curl/mprintf.h +52 -0
  489. package/dist/lib/runtime-sources/vendor/curl/include/curl/multi.h +460 -0
  490. package/dist/lib/runtime-sources/vendor/curl/include/curl/options.h +70 -0
  491. package/dist/lib/runtime-sources/vendor/curl/include/curl/stdcheaders.h +35 -0
  492. package/dist/lib/runtime-sources/vendor/curl/include/curl/system.h +508 -0
  493. package/dist/lib/runtime-sources/vendor/curl/include/curl/typecheck-gcc.h +716 -0
  494. package/dist/lib/runtime-sources/vendor/curl/include/curl/urlapi.h +149 -0
  495. package/dist/lib/runtime-sources/vendor/curl/include/curl/websockets.h +84 -0
  496. package/dist/lib/runtime-sources/vendor/mbedtls/LICENSE +553 -0
  497. package/dist/lib/runtime-sources/vendor/mbedtls/include/CMakeLists.txt +22 -0
  498. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/aes.h +631 -0
  499. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/aria.h +343 -0
  500. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/asn1.h +642 -0
  501. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/asn1write.h +390 -0
  502. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/base64.h +82 -0
  503. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/bignum.h +1088 -0
  504. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/block_cipher.h +76 -0
  505. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/build_info.h +194 -0
  506. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/camellia.h +305 -0
  507. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ccm.h +526 -0
  508. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/chacha20.h +209 -0
  509. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/chachapoly.h +351 -0
  510. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/check_config.h +1149 -0
  511. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/cipher.h +1250 -0
  512. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/cmac.h +246 -0
  513. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/compat-2.x.h +46 -0
  514. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h +578 -0
  515. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h +873 -0
  516. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h +359 -0
  517. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h +145 -0
  518. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_ssl.h +91 -0
  519. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_x509.h +35 -0
  520. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_psa.h +61 -0
  521. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/constant_time.h +36 -0
  522. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ctr_drbg.h +596 -0
  523. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/debug.h +156 -0
  524. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/des.h +385 -0
  525. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/dhm.h +972 -0
  526. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ecdh.h +455 -0
  527. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ecdsa.h +674 -0
  528. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ecjpake.h +298 -0
  529. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ecp.h +1517 -0
  530. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/entropy.h +274 -0
  531. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/error.h +201 -0
  532. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/gcm.h +387 -0
  533. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/hkdf.h +124 -0
  534. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/hmac_drbg.h +434 -0
  535. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/lms.h +440 -0
  536. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/mbedtls_config.h +4446 -0
  537. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/md.h +526 -0
  538. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/md5.h +190 -0
  539. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/memory_buffer_alloc.h +142 -0
  540. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/net_sockets.h +299 -0
  541. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/nist_kw.h +166 -0
  542. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/oid.h +727 -0
  543. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pem.h +160 -0
  544. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pk.h +1303 -0
  545. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pkcs12.h +186 -0
  546. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pkcs5.h +198 -0
  547. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pkcs7.h +252 -0
  548. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/platform.h +516 -0
  549. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/platform_time.h +79 -0
  550. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/platform_util.h +247 -0
  551. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/poly1305.h +168 -0
  552. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/private_access.h +20 -0
  553. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/psa_util.h +207 -0
  554. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ripemd160.h +136 -0
  555. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/rsa.h +1170 -0
  556. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/sha1.h +219 -0
  557. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/sha256.h +200 -0
  558. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/sha3.h +172 -0
  559. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/sha512.h +208 -0
  560. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl.h +5887 -0
  561. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl_cache.h +187 -0
  562. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl_ciphersuites.h +482 -0
  563. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl_cookie.h +106 -0
  564. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl_ticket.h +199 -0
  565. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/threading.h +167 -0
  566. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/timing.h +94 -0
  567. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/version.h +78 -0
  568. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/x509.h +500 -0
  569. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/x509_crl.h +184 -0
  570. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/x509_crt.h +1208 -0
  571. package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/x509_csr.h +382 -0
  572. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/build_info.h +20 -0
  573. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto.h +4998 -0
  574. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_adjust_auto_enabled.h +31 -0
  575. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_adjust_config_dependencies.h +51 -0
  576. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h +101 -0
  577. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_adjust_config_synonyms.h +49 -0
  578. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_builtin_composites.h +214 -0
  579. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_builtin_key_derivation.h +118 -0
  580. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_builtin_primitives.h +114 -0
  581. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_compat.h +230 -0
  582. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_config.h +145 -0
  583. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_driver_common.h +44 -0
  584. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_driver_contexts_composites.h +151 -0
  585. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h +52 -0
  586. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_driver_contexts_primitives.h +105 -0
  587. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_extra.h +2145 -0
  588. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_legacy.h +88 -0
  589. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_platform.h +102 -0
  590. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_se_driver.h +1383 -0
  591. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_sizes.h +1319 -0
  592. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_struct.h +527 -0
  593. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_types.h +508 -0
  594. package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_values.h +2782 -0
  595. package/dist/lib/runtime-sources/vendor/mbedtls/library/aes.c +2294 -0
  596. package/dist/lib/runtime-sources/vendor/mbedtls/library/aesce.c +624 -0
  597. package/dist/lib/runtime-sources/vendor/mbedtls/library/aesce.h +136 -0
  598. package/dist/lib/runtime-sources/vendor/mbedtls/library/aesni.c +846 -0
  599. package/dist/lib/runtime-sources/vendor/mbedtls/library/aesni.h +162 -0
  600. package/dist/lib/runtime-sources/vendor/mbedtls/library/alignment.h +704 -0
  601. package/dist/lib/runtime-sources/vendor/mbedtls/library/aria.c +969 -0
  602. package/dist/lib/runtime-sources/vendor/mbedtls/library/asn1parse.c +468 -0
  603. package/dist/lib/runtime-sources/vendor/mbedtls/library/asn1write.c +440 -0
  604. package/dist/lib/runtime-sources/vendor/mbedtls/library/base64.c +322 -0
  605. package/dist/lib/runtime-sources/vendor/mbedtls/library/base64_internal.h +45 -0
  606. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum.c +2583 -0
  607. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_core.c +1240 -0
  608. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_core.h +872 -0
  609. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_core_invasive.h +38 -0
  610. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_internal.h +122 -0
  611. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod.c +394 -0
  612. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod.h +452 -0
  613. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod_raw.c +276 -0
  614. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod_raw.h +416 -0
  615. package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod_raw_invasive.h +34 -0
  616. package/dist/lib/runtime-sources/vendor/mbedtls/library/block_cipher.c +207 -0
  617. package/dist/lib/runtime-sources/vendor/mbedtls/library/block_cipher_internal.h +99 -0
  618. package/dist/lib/runtime-sources/vendor/mbedtls/library/bn_mul.h +1094 -0
  619. package/dist/lib/runtime-sources/vendor/mbedtls/library/camellia.c +1058 -0
  620. package/dist/lib/runtime-sources/vendor/mbedtls/library/ccm.c +777 -0
  621. package/dist/lib/runtime-sources/vendor/mbedtls/library/chacha20.c +563 -0
  622. package/dist/lib/runtime-sources/vendor/mbedtls/library/chacha20_internal.h +23 -0
  623. package/dist/lib/runtime-sources/vendor/mbedtls/library/chachapoly.c +487 -0
  624. package/dist/lib/runtime-sources/vendor/mbedtls/library/check_crypto_config.h +136 -0
  625. package/dist/lib/runtime-sources/vendor/mbedtls/library/cipher.c +1712 -0
  626. package/dist/lib/runtime-sources/vendor/mbedtls/library/cipher_invasive.h +28 -0
  627. package/dist/lib/runtime-sources/vendor/mbedtls/library/cipher_wrap.c +2482 -0
  628. package/dist/lib/runtime-sources/vendor/mbedtls/library/cipher_wrap.h +178 -0
  629. package/dist/lib/runtime-sources/vendor/mbedtls/library/cmac.c +1067 -0
  630. package/dist/lib/runtime-sources/vendor/mbedtls/library/common.h +487 -0
  631. package/dist/lib/runtime-sources/vendor/mbedtls/library/constant_time.c +247 -0
  632. package/dist/lib/runtime-sources/vendor/mbedtls/library/constant_time_impl.h +541 -0
  633. package/dist/lib/runtime-sources/vendor/mbedtls/library/constant_time_internal.h +579 -0
  634. package/dist/lib/runtime-sources/vendor/mbedtls/library/ctr.h +35 -0
  635. package/dist/lib/runtime-sources/vendor/mbedtls/library/ctr_drbg.c +1016 -0
  636. package/dist/lib/runtime-sources/vendor/mbedtls/library/debug.c +475 -0
  637. package/dist/lib/runtime-sources/vendor/mbedtls/library/debug_internal.h +185 -0
  638. package/dist/lib/runtime-sources/vendor/mbedtls/library/des.c +1042 -0
  639. package/dist/lib/runtime-sources/vendor/mbedtls/library/dhm.c +700 -0
  640. package/dist/lib/runtime-sources/vendor/mbedtls/library/ecdh.c +696 -0
  641. package/dist/lib/runtime-sources/vendor/mbedtls/library/ecdsa.c +858 -0
  642. package/dist/lib/runtime-sources/vendor/mbedtls/library/ecjpake.c +1216 -0
  643. package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp.c +3674 -0
  644. package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp_curves.c +6125 -0
  645. package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp_curves_new.c +9 -0
  646. package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp_internal_alt.h +287 -0
  647. package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp_invasive.h +305 -0
  648. package/dist/lib/runtime-sources/vendor/mbedtls/library/entropy.c +680 -0
  649. package/dist/lib/runtime-sources/vendor/mbedtls/library/entropy_poll.c +233 -0
  650. package/dist/lib/runtime-sources/vendor/mbedtls/library/entropy_poll.h +64 -0
  651. package/dist/lib/runtime-sources/vendor/mbedtls/library/error.c +878 -0
  652. package/dist/lib/runtime-sources/vendor/mbedtls/library/gcm.c +1330 -0
  653. package/dist/lib/runtime-sources/vendor/mbedtls/library/hkdf.c +161 -0
  654. package/dist/lib/runtime-sources/vendor/mbedtls/library/hmac_drbg.c +633 -0
  655. package/dist/lib/runtime-sources/vendor/mbedtls/library/lmots.c +789 -0
  656. package/dist/lib/runtime-sources/vendor/mbedtls/library/lmots.h +288 -0
  657. package/dist/lib/runtime-sources/vendor/mbedtls/library/lms.c +778 -0
  658. package/dist/lib/runtime-sources/vendor/mbedtls/library/md.c +1108 -0
  659. package/dist/lib/runtime-sources/vendor/mbedtls/library/md5.c +426 -0
  660. package/dist/lib/runtime-sources/vendor/mbedtls/library/md_psa.h +26 -0
  661. package/dist/lib/runtime-sources/vendor/mbedtls/library/md_wrap.h +46 -0
  662. package/dist/lib/runtime-sources/vendor/mbedtls/library/memory_buffer_alloc.c +751 -0
  663. package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_common.h +181 -0
  664. package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_error.h +89 -0
  665. package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_reader.c +538 -0
  666. package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_reader.h +366 -0
  667. package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_trace.c +112 -0
  668. package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_trace.h +154 -0
  669. package/dist/lib/runtime-sources/vendor/mbedtls/library/net_sockets.c +694 -0
  670. package/dist/lib/runtime-sources/vendor/mbedtls/library/nist_kw.c +729 -0
  671. package/dist/lib/runtime-sources/vendor/mbedtls/library/oid.c +1166 -0
  672. package/dist/lib/runtime-sources/vendor/mbedtls/library/padlock.c +157 -0
  673. package/dist/lib/runtime-sources/vendor/mbedtls/library/padlock.h +111 -0
  674. package/dist/lib/runtime-sources/vendor/mbedtls/library/pem.c +554 -0
  675. package/dist/lib/runtime-sources/vendor/mbedtls/library/pk.c +1602 -0
  676. package/dist/lib/runtime-sources/vendor/mbedtls/library/pk_ecc.c +261 -0
  677. package/dist/lib/runtime-sources/vendor/mbedtls/library/pk_internal.h +241 -0
  678. package/dist/lib/runtime-sources/vendor/mbedtls/library/pk_wrap.c +1618 -0
  679. package/dist/lib/runtime-sources/vendor/mbedtls/library/pk_wrap.h +138 -0
  680. package/dist/lib/runtime-sources/vendor/mbedtls/library/pkcs12.c +437 -0
  681. package/dist/lib/runtime-sources/vendor/mbedtls/library/pkcs5.c +500 -0
  682. package/dist/lib/runtime-sources/vendor/mbedtls/library/pkcs7.c +787 -0
  683. package/dist/lib/runtime-sources/vendor/mbedtls/library/pkparse.c +1392 -0
  684. package/dist/lib/runtime-sources/vendor/mbedtls/library/pkwrite.c +631 -0
  685. package/dist/lib/runtime-sources/vendor/mbedtls/library/pkwrite.h +121 -0
  686. package/dist/lib/runtime-sources/vendor/mbedtls/library/platform.c +402 -0
  687. package/dist/lib/runtime-sources/vendor/mbedtls/library/platform_util.c +258 -0
  688. package/dist/lib/runtime-sources/vendor/mbedtls/library/poly1305.c +492 -0
  689. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto.c +9532 -0
  690. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_aead.c +646 -0
  691. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_aead.h +499 -0
  692. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_cipher.c +747 -0
  693. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_cipher.h +316 -0
  694. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_client.c +22 -0
  695. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_core.h +983 -0
  696. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_core_common.h +52 -0
  697. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_driver_wrappers.h +2896 -0
  698. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.c +256 -0
  699. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.h +31 -0
  700. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_ecp.c +594 -0
  701. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_ecp.h +267 -0
  702. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_ffdh.c +361 -0
  703. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_ffdh.h +131 -0
  704. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_hash.c +470 -0
  705. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_hash.h +211 -0
  706. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_invasive.h +92 -0
  707. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_its.h +131 -0
  708. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_mac.c +505 -0
  709. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_mac.h +264 -0
  710. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_pake.c +571 -0
  711. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_pake.h +159 -0
  712. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_random.c +181 -0
  713. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_random.h +72 -0
  714. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_random_impl.h +200 -0
  715. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_rsa.c +714 -0
  716. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_rsa.h +321 -0
  717. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_se.c +373 -0
  718. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_se.h +192 -0
  719. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_slot_management.c +1137 -0
  720. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_slot_management.h +344 -0
  721. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_storage.c +481 -0
  722. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_storage.h +392 -0
  723. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_its_file.c +254 -0
  724. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_util.c +614 -0
  725. package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_util_internal.h +100 -0
  726. package/dist/lib/runtime-sources/vendor/mbedtls/library/ripemd160.c +490 -0
  727. package/dist/lib/runtime-sources/vendor/mbedtls/library/rsa.c +3121 -0
  728. package/dist/lib/runtime-sources/vendor/mbedtls/library/rsa_alt_helpers.c +455 -0
  729. package/dist/lib/runtime-sources/vendor/mbedtls/library/rsa_alt_helpers.h +209 -0
  730. package/dist/lib/runtime-sources/vendor/mbedtls/library/rsa_internal.h +188 -0
  731. package/dist/lib/runtime-sources/vendor/mbedtls/library/sha1.c +480 -0
  732. package/dist/lib/runtime-sources/vendor/mbedtls/library/sha256.c +983 -0
  733. package/dist/lib/runtime-sources/vendor/mbedtls/library/sha3.c +721 -0
  734. package/dist/lib/runtime-sources/vendor/mbedtls/library/sha512.c +1115 -0
  735. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_cache.c +410 -0
  736. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_ciphersuites.c +2050 -0
  737. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_ciphersuites_internal.h +154 -0
  738. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_client.c +1023 -0
  739. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_client.h +22 -0
  740. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_cookie.c +384 -0
  741. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_debug_helpers.h +85 -0
  742. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_debug_helpers_generated.c +251 -0
  743. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_misc.h +3198 -0
  744. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_msg.c +6619 -0
  745. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_ticket.c +556 -0
  746. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls.c +10234 -0
  747. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls12_client.c +3688 -0
  748. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls12_server.c +4311 -0
  749. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_client.c +3208 -0
  750. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_generic.c +1793 -0
  751. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_invasive.h +23 -0
  752. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_keys.c +1918 -0
  753. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_keys.h +668 -0
  754. package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_server.c +3624 -0
  755. package/dist/lib/runtime-sources/vendor/mbedtls/library/threading.c +193 -0
  756. package/dist/lib/runtime-sources/vendor/mbedtls/library/threading_internal.h +28 -0
  757. package/dist/lib/runtime-sources/vendor/mbedtls/library/timing.c +152 -0
  758. package/dist/lib/runtime-sources/vendor/mbedtls/library/version.c +32 -0
  759. package/dist/lib/runtime-sources/vendor/mbedtls/library/version_features.c +856 -0
  760. package/dist/lib/runtime-sources/vendor/mbedtls/library/x509.c +1776 -0
  761. package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_create.c +570 -0
  762. package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_crl.c +708 -0
  763. package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_crt.c +3311 -0
  764. package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_csr.c +648 -0
  765. package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_internal.h +101 -0
  766. package/dist/lib/runtime-sources/vendor/mbedtls/library/x509write.c +174 -0
  767. package/dist/lib/runtime-sources/vendor/mbedtls/library/x509write_crt.c +688 -0
  768. package/dist/lib/runtime-sources/vendor/mbedtls/library/x509write_csr.c +336 -0
  769. package/dist/lib/runtime-sources/vendor/quickjs-ng/CMakeLists.txt +566 -0
  770. package/dist/lib/runtime-sources/vendor/quickjs-ng/LICENSE +24 -0
  771. package/dist/lib/runtime-sources/vendor/quickjs-ng/README.md +24 -0
  772. package/dist/lib/runtime-sources/vendor/quickjs-ng/api-test.c +1195 -0
  773. package/dist/lib/runtime-sources/vendor/quickjs-ng/builtin-array-fromasync.h +119 -0
  774. package/dist/lib/runtime-sources/vendor/quickjs-ng/builtin-iterator-zip-keyed.h +332 -0
  775. package/dist/lib/runtime-sources/vendor/quickjs-ng/builtin-iterator-zip.h +337 -0
  776. package/dist/lib/runtime-sources/vendor/quickjs-ng/cutils.h +1998 -0
  777. package/dist/lib/runtime-sources/vendor/quickjs-ng/dtoa.c +1619 -0
  778. package/dist/lib/runtime-sources/vendor/quickjs-ng/dtoa.h +87 -0
  779. package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/function_source.c +81 -0
  780. package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/hello.c +53 -0
  781. package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/hello_module.c +106 -0
  782. package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/repl.c +3036 -0
  783. package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/standalone.c +323 -0
  784. package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/test_fib.c +81 -0
  785. package/dist/lib/runtime-sources/vendor/quickjs-ng/libregexp-opcode.h +73 -0
  786. package/dist/lib/runtime-sources/vendor/quickjs-ng/libregexp.c +3474 -0
  787. package/dist/lib/runtime-sources/vendor/quickjs-ng/libregexp.h +101 -0
  788. package/dist/lib/runtime-sources/vendor/quickjs-ng/libunicode-table.h +5173 -0
  789. package/dist/lib/runtime-sources/vendor/quickjs-ng/libunicode.c +2069 -0
  790. package/dist/lib/runtime-sources/vendor/quickjs-ng/libunicode.h +172 -0
  791. package/dist/lib/runtime-sources/vendor/quickjs-ng/list.h +107 -0
  792. package/dist/lib/runtime-sources/vendor/quickjs-ng/lre-test.c +52 -0
  793. package/dist/lib/runtime-sources/vendor/quickjs-ng/qjs.c +762 -0
  794. package/dist/lib/runtime-sources/vendor/quickjs-ng/qjsc.c +673 -0
  795. package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-atom.h +280 -0
  796. package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-c-atomics.h +54 -0
  797. package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-libc.c +5037 -0
  798. package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-libc.h +87 -0
  799. package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-opcode.h +377 -0
  800. package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs.c +64041 -0
  801. package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs.h +1447 -0
  802. package/dist/lib/runtime-sources/vendor/quickjs-ng/run-test262.c +2374 -0
  803. package/dist/lib/runtime-sources/vendor/quickjs-ng/unicode_gen.c +3121 -0
  804. package/dist/lib/runtime-sources/vendor/quickjs-ng/unicode_gen_def.h +310 -0
  805. package/dist/lib/runtime-sources/vendor/ryu/LICENSE-Boost +23 -0
  806. package/dist/lib/runtime-sources/vendor/ryu/common.h +114 -0
  807. package/dist/lib/runtime-sources/vendor/ryu/d2s.c +509 -0
  808. package/dist/lib/runtime-sources/vendor/ryu/d2s_full_table.h +367 -0
  809. package/dist/lib/runtime-sources/vendor/ryu/d2s_intrinsics.h +357 -0
  810. package/dist/lib/runtime-sources/vendor/ryu/d2s_small_table.h +186 -0
  811. package/dist/lib/runtime-sources/vendor/ryu/digit_table.h +35 -0
  812. package/dist/lib/runtime-sources/vendor/ryu/ryu.h +46 -0
  813. package/dist/lib/runtime-sources/vendor/unicode/LICENSE +39 -0
  814. package/dist/lib/runtime-sources/vendor/zlib/LICENSE +22 -0
  815. package/dist/lib/runtime-sources/vendor/zlib/adler32.c +164 -0
  816. package/dist/lib/runtime-sources/vendor/zlib/compress.c +75 -0
  817. package/dist/lib/runtime-sources/vendor/zlib/crc32.c +1049 -0
  818. package/dist/lib/runtime-sources/vendor/zlib/crc32.h +9446 -0
  819. package/dist/lib/runtime-sources/vendor/zlib/deflate.c +2139 -0
  820. package/dist/lib/runtime-sources/vendor/zlib/deflate.h +377 -0
  821. package/dist/lib/runtime-sources/vendor/zlib/gzclose.c +23 -0
  822. package/dist/lib/runtime-sources/vendor/zlib/gzguts.h +214 -0
  823. package/dist/lib/runtime-sources/vendor/zlib/gzlib.c +582 -0
  824. package/dist/lib/runtime-sources/vendor/zlib/gzread.c +602 -0
  825. package/dist/lib/runtime-sources/vendor/zlib/gzwrite.c +631 -0
  826. package/dist/lib/runtime-sources/vendor/zlib/infback.c +628 -0
  827. package/dist/lib/runtime-sources/vendor/zlib/inffast.c +320 -0
  828. package/dist/lib/runtime-sources/vendor/zlib/inffast.h +11 -0
  829. package/dist/lib/runtime-sources/vendor/zlib/inffixed.h +94 -0
  830. package/dist/lib/runtime-sources/vendor/zlib/inflate.c +1526 -0
  831. package/dist/lib/runtime-sources/vendor/zlib/inflate.h +126 -0
  832. package/dist/lib/runtime-sources/vendor/zlib/inftrees.c +299 -0
  833. package/dist/lib/runtime-sources/vendor/zlib/inftrees.h +62 -0
  834. package/dist/lib/runtime-sources/vendor/zlib/trees.c +1117 -0
  835. package/dist/lib/runtime-sources/vendor/zlib/trees.h +128 -0
  836. package/dist/lib/runtime-sources/vendor/zlib/uncompr.c +85 -0
  837. package/dist/lib/runtime-sources/vendor/zlib/zconf.h +543 -0
  838. package/dist/lib/runtime-sources/vendor/zlib/zlib.h +1938 -0
  839. package/dist/lib/runtime-sources/vendor/zlib/zutil.c +299 -0
  840. package/dist/lib/runtime-sources/vendor/zlib/zutil.h +254 -0
  841. package/dist/lib/scriptc-comptime +0 -0
  842. package/dist/lib/typescript/LICENSE +55 -0
  843. package/dist/lib/typescript/NOTICE.txt +436 -0
  844. package/dist/lib/typescript/lib/lib.d.ts +20 -0
  845. package/dist/lib/typescript/lib/lib.decorators.d.ts +382 -0
  846. package/dist/lib/typescript/lib/lib.decorators.legacy.d.ts +20 -0
  847. package/dist/lib/typescript/lib/lib.dom.asynciterable.d.ts +18 -0
  848. package/dist/lib/typescript/lib/lib.dom.d.ts +45125 -0
  849. package/dist/lib/typescript/lib/lib.dom.iterable.d.ts +18 -0
  850. package/dist/lib/typescript/lib/lib.es2015.collection.d.ts +159 -0
  851. package/dist/lib/typescript/lib/lib.es2015.core.d.ts +595 -0
  852. package/dist/lib/typescript/lib/lib.es2015.d.ts +26 -0
  853. package/dist/lib/typescript/lib/lib.es2015.generator.d.ts +75 -0
  854. package/dist/lib/typescript/lib/lib.es2015.iterable.d.ts +603 -0
  855. package/dist/lib/typescript/lib/lib.es2015.promise.d.ts +79 -0
  856. package/dist/lib/typescript/lib/lib.es2015.proxy.d.ts +126 -0
  857. package/dist/lib/typescript/lib/lib.es2015.reflect.d.ts +142 -0
  858. package/dist/lib/typescript/lib/lib.es2015.symbol.d.ts +44 -0
  859. package/dist/lib/typescript/lib/lib.es2015.symbol.wellknown.d.ts +324 -0
  860. package/dist/lib/typescript/lib/lib.es2016.array.include.d.ts +114 -0
  861. package/dist/lib/typescript/lib/lib.es2016.d.ts +19 -0
  862. package/dist/lib/typescript/lib/lib.es2016.full.d.ts +21 -0
  863. package/dist/lib/typescript/lib/lib.es2016.intl.d.ts +29 -0
  864. package/dist/lib/typescript/lib/lib.es2017.arraybuffer.d.ts +19 -0
  865. package/dist/lib/typescript/lib/lib.es2017.d.ts +24 -0
  866. package/dist/lib/typescript/lib/lib.es2017.date.d.ts +29 -0
  867. package/dist/lib/typescript/lib/lib.es2017.full.d.ts +21 -0
  868. package/dist/lib/typescript/lib/lib.es2017.intl.d.ts +42 -0
  869. package/dist/lib/typescript/lib/lib.es2017.object.d.ts +47 -0
  870. package/dist/lib/typescript/lib/lib.es2017.sharedmemory.d.ts +133 -0
  871. package/dist/lib/typescript/lib/lib.es2017.string.d.ts +47 -0
  872. package/dist/lib/typescript/lib/lib.es2017.typedarrays.d.ts +51 -0
  873. package/dist/lib/typescript/lib/lib.es2018.asyncgenerator.d.ts +75 -0
  874. package/dist/lib/typescript/lib/lib.es2018.asynciterable.d.ts +51 -0
  875. package/dist/lib/typescript/lib/lib.es2018.d.ts +22 -0
  876. package/dist/lib/typescript/lib/lib.es2018.full.d.ts +22 -0
  877. package/dist/lib/typescript/lib/lib.es2018.intl.d.ts +81 -0
  878. package/dist/lib/typescript/lib/lib.es2018.promise.d.ts +28 -0
  879. package/dist/lib/typescript/lib/lib.es2018.regexp.d.ts +35 -0
  880. package/dist/lib/typescript/lib/lib.es2019.array.d.ts +77 -0
  881. package/dist/lib/typescript/lib/lib.es2019.d.ts +22 -0
  882. package/dist/lib/typescript/lib/lib.es2019.full.d.ts +22 -0
  883. package/dist/lib/typescript/lib/lib.es2019.intl.d.ts +21 -0
  884. package/dist/lib/typescript/lib/lib.es2019.object.d.ts +31 -0
  885. package/dist/lib/typescript/lib/lib.es2019.string.d.ts +35 -0
  886. package/dist/lib/typescript/lib/lib.es2019.symbol.d.ts +22 -0
  887. package/dist/lib/typescript/lib/lib.es2020.bigint.d.ts +763 -0
  888. package/dist/lib/typescript/lib/lib.es2020.d.ts +25 -0
  889. package/dist/lib/typescript/lib/lib.es2020.date.d.ts +40 -0
  890. package/dist/lib/typescript/lib/lib.es2020.full.d.ts +22 -0
  891. package/dist/lib/typescript/lib/lib.es2020.intl.d.ts +472 -0
  892. package/dist/lib/typescript/lib/lib.es2020.number.d.ts +26 -0
  893. package/dist/lib/typescript/lib/lib.es2020.promise.d.ts +45 -0
  894. package/dist/lib/typescript/lib/lib.es2020.sharedmemory.d.ts +97 -0
  895. package/dist/lib/typescript/lib/lib.es2020.string.d.ts +42 -0
  896. package/dist/lib/typescript/lib/lib.es2020.symbol.wellknown.d.ts +39 -0
  897. package/dist/lib/typescript/lib/lib.es2021.d.ts +21 -0
  898. package/dist/lib/typescript/lib/lib.es2021.full.d.ts +22 -0
  899. package/dist/lib/typescript/lib/lib.es2021.intl.d.ts +164 -0
  900. package/dist/lib/typescript/lib/lib.es2021.promise.d.ts +46 -0
  901. package/dist/lib/typescript/lib/lib.es2021.string.d.ts +31 -0
  902. package/dist/lib/typescript/lib/lib.es2021.weakref.d.ts +76 -0
  903. package/dist/lib/typescript/lib/lib.es2022.array.d.ts +119 -0
  904. package/dist/lib/typescript/lib/lib.es2022.d.ts +23 -0
  905. package/dist/lib/typescript/lib/lib.es2022.error.d.ts +73 -0
  906. package/dist/lib/typescript/lib/lib.es2022.full.d.ts +22 -0
  907. package/dist/lib/typescript/lib/lib.es2022.intl.d.ts +143 -0
  908. package/dist/lib/typescript/lib/lib.es2022.object.d.ts +24 -0
  909. package/dist/lib/typescript/lib/lib.es2022.regexp.d.ts +37 -0
  910. package/dist/lib/typescript/lib/lib.es2022.string.d.ts +23 -0
  911. package/dist/lib/typescript/lib/lib.es2023.array.d.ts +922 -0
  912. package/dist/lib/typescript/lib/lib.es2023.collection.d.ts +19 -0
  913. package/dist/lib/typescript/lib/lib.es2023.d.ts +20 -0
  914. package/dist/lib/typescript/lib/lib.es2023.full.d.ts +22 -0
  915. package/dist/lib/typescript/lib/lib.es2023.intl.d.ts +62 -0
  916. package/dist/lib/typescript/lib/lib.es2024.arraybuffer.d.ts +63 -0
  917. package/dist/lib/typescript/lib/lib.es2024.collection.d.ts +27 -0
  918. package/dist/lib/typescript/lib/lib.es2024.d.ts +24 -0
  919. package/dist/lib/typescript/lib/lib.es2024.full.d.ts +22 -0
  920. package/dist/lib/typescript/lib/lib.es2024.object.d.ts +27 -0
  921. package/dist/lib/typescript/lib/lib.es2024.promise.d.ts +33 -0
  922. package/dist/lib/typescript/lib/lib.es2024.regexp.d.ts +23 -0
  923. package/dist/lib/typescript/lib/lib.es2024.sharedmemory.d.ts +66 -0
  924. package/dist/lib/typescript/lib/lib.es2024.string.d.ts +27 -0
  925. package/dist/lib/typescript/lib/lib.es2025.collection.d.ts +94 -0
  926. package/dist/lib/typescript/lib/lib.es2025.d.ts +23 -0
  927. package/dist/lib/typescript/lib/lib.es2025.float16.d.ts +443 -0
  928. package/dist/lib/typescript/lib/lib.es2025.full.d.ts +22 -0
  929. package/dist/lib/typescript/lib/lib.es2025.intl.d.ts +200 -0
  930. package/dist/lib/typescript/lib/lib.es2025.iterator.d.ts +146 -0
  931. package/dist/lib/typescript/lib/lib.es2025.promise.d.ts +32 -0
  932. package/dist/lib/typescript/lib/lib.es2025.regexp.d.ts +30 -0
  933. package/dist/lib/typescript/lib/lib.es5.d.ts +4599 -0
  934. package/dist/lib/typescript/lib/lib.es6.d.ts +21 -0
  935. package/dist/lib/typescript/lib/lib.esnext.array.d.ts +33 -0
  936. package/dist/lib/typescript/lib/lib.esnext.collection.d.ts +47 -0
  937. package/dist/lib/typescript/lib/lib.esnext.d.ts +27 -0
  938. package/dist/lib/typescript/lib/lib.esnext.date.d.ts +21 -0
  939. package/dist/lib/typescript/lib/lib.esnext.decorators.d.ts +26 -0
  940. package/dist/lib/typescript/lib/lib.esnext.disposable.d.ts +191 -0
  941. package/dist/lib/typescript/lib/lib.esnext.error.d.ts +22 -0
  942. package/dist/lib/typescript/lib/lib.esnext.full.d.ts +22 -0
  943. package/dist/lib/typescript/lib/lib.esnext.intl.d.ts +107 -0
  944. package/dist/lib/typescript/lib/lib.esnext.sharedmemory.d.ts +23 -0
  945. package/dist/lib/typescript/lib/lib.esnext.temporal.d.ts +485 -0
  946. package/dist/lib/typescript/lib/lib.esnext.typedarrays.d.ts +90 -0
  947. package/dist/lib/typescript/lib/lib.scripthost.d.ts +320 -0
  948. package/dist/lib/typescript/lib/lib.webworker.asynciterable.d.ts +18 -0
  949. package/dist/lib/typescript/lib/lib.webworker.d.ts +15606 -0
  950. package/dist/lib/typescript/lib/lib.webworker.importscripts.d.ts +21 -0
  951. package/dist/lib/typescript/lib/lib.webworker.iterable.d.ts +18 -0
  952. package/dist/lib/typescript/lib/tsc +0 -0
  953. package/dist/lib/typescript/package.json +45 -0
  954. package/dist/lib/wasi/cli/wasi-paths.js +41 -0
  955. package/dist/lib/wasi/cli/wasi-runner.js +28 -0
  956. package/dist/lib/wasi/package.json +1 -0
  957. package/dist/lib/wasi/wasi-paths.js +25 -0
  958. package/package.json +22 -6
  959. package/README.md +0 -3
  960. package/index.js +0 -2
@@ -0,0 +1,1626 @@
1
+ /* Prototype-method dispatch on checked-dynamic receivers (scr_dyn_invoke)
2
+ * and its companions: JS String() over the checked-dynamic tree (scr_dyn_display — join
3
+ * and the error texts need it standalone) and Object.defineProperties
4
+ * over dyn values (scr_dyn_define_props). Linked only when the IR
5
+ * carries dynInvoke nodes or dyn.defineProps calls (native-toolchain.ts gates on
6
+ * moduleUsesDynInvoke — the scr_assert.c precedent), so dispatch-free
7
+ * binaries keep their exact size class. The checked-dynamic tree itself lives in
8
+ * scr_json.c; this unit uses only its public surface plus ScrJsonBuf.
9
+ */
10
+ #include "scr_runtime.h"
11
+
12
+ #include <math.h>
13
+ #include <stdio.h>
14
+ #include <stdlib.h> /* malloc/free in the sort snapshot */
15
+ #include <string.h>
16
+
17
+ /* ── checked-dynamic METHOD DISPATCH (scr_dyn_invoke) ──────────────────
18
+ *
19
+ * `recv.m(args)` where recv is a dyn value and `m` is a name a
20
+ * dyn-representable prototype declares (Array/String/Function shared
21
+ * names — push, slice, forEach, apply, ...): a stored-member read would
22
+ * silently mis-answer real methods, so the dispatch runs HERE, over the
23
+ * receiver's runtime kind. test/common's mustCall internals are the
24
+ * canonical caller (mustCallChecks.push/filter/forEach, fn.apply).
25
+ *
26
+ * Honesty ladder, per (kind, name):
27
+ * - implemented: JS-exact semantics below;
28
+ * - the name exists on that kind's JS prototype but has no
29
+ * implementation here: a LOUD "not supported yet" Error — never a
30
+ * silent wrong answer;
31
+ * - the name does not exist on that kind's prototype: Node's own
32
+ * TypeError ("<spelling> is not a function"), because that IS the
33
+ * JS answer;
34
+ * - OBJ receivers: the own member calls (own properties shadow the
35
+ * prototype in JS too), otherwise "<spelling> is not a function";
36
+ * - undefined/null receivers: Node's "Cannot read properties of ...".
37
+ *
38
+ * recv/args are BORROWED; the result is owned (+1). MAY THROW (returns
39
+ * NULL with the exception pending). */
40
+
41
+ /* JS String() over a dyn value, runtime-side (join needs it standalone —
42
+ * the emitted sc_ds walker exists only in programs that spell
43
+ * String(unknown) themselves). Same rules: arrays join with "," and
44
+ * null/undefined elements print empty, the checked-dynamic tree's error encoding renders
45
+ * "name: message", functions render the native-code form, plain objects
46
+ * are [object Object]. */
47
+ static void scr_dyn_display_buf(ScrJsonBuf *b, const ScrDyn *d) {
48
+ switch (d->kind) {
49
+ case SCR_DYN_SYMBOL: {
50
+ ScrStr *s = scr_dyn_string_coerce(d);
51
+ scr_str_release(s);
52
+ return;
53
+ }
54
+ case SCR_DYN_UNDEF: scr_jb_puts(b, "undefined"); return;
55
+ case SCR_DYN_NULL: scr_jb_puts(b, "null"); return;
56
+ case SCR_DYN_BOOL: scr_jb_puts(b, d->v.b ? "true" : "false"); return;
57
+ case SCR_DYN_BIGINT: {
58
+ ScrStr *s = scr_bigint_to_string(d->v.bigint, 10);
59
+ for (size_t i = 0; i < s->len; i++) scr_jb_putc(b, s->data[i]);
60
+ scr_str_release(s);
61
+ return;
62
+ }
63
+ case SCR_DYN_NUM: {
64
+ ScrStr *s = scr_f64_to_scrstr(d->v.num);
65
+ for (size_t i = 0; i < s->len; i++) scr_jb_putc(b, s->data[i]);
66
+ scr_str_release(s);
67
+ return;
68
+ }
69
+ case SCR_DYN_STR:
70
+ for (size_t i = 0; i < d->v.str->len; i++) scr_jb_putc(b, d->v.str->data[i]);
71
+ return;
72
+ case SCR_DYN_ARR:
73
+ for (size_t i = 0; i < d->v.arr.len; i++) {
74
+ if (i > 0) scr_jb_putc(b, ',');
75
+ const ScrDyn *e = d->v.arr.items[i];
76
+ if (e->kind == SCR_DYN_UNDEF || e->kind == SCR_DYN_NULL) continue;
77
+ scr_dyn_display_buf(b, e);
78
+ }
79
+ return;
80
+ case SCR_DYN_OBJ: {
81
+ const ScrDyn *marker = scr_dyn_obj_get(d, "%error", 6);
82
+ if (marker) {
83
+ const ScrDyn *en = scr_dyn_obj_get(d, "name", 4);
84
+ const ScrDyn *em = scr_dyn_obj_get(d, "message", 7);
85
+ const ScrStr *ens = (en && en->kind == SCR_DYN_STR) ? en->v.str : NULL;
86
+ const ScrStr *ems = (em && em->kind == SCR_DYN_STR) ? em->v.str : NULL;
87
+ if (ens) for (size_t i = 0; i < ens->len; i++) scr_jb_putc(b, ens->data[i]);
88
+ if (ens && ens->len && ems && ems->len) scr_jb_puts(b, ": ");
89
+ if (ems) for (size_t i = 0; i < ems->len; i++) scr_jb_putc(b, ems->data[i]);
90
+ return;
91
+ }
92
+ scr_jb_puts(b, "[object Object]");
93
+ return;
94
+ }
95
+ case SCR_DYN_BYTES:
96
+ if (d->buffer) {
97
+ /* Buffer-flavored values (stream chunks) coerce utf8 (Node's
98
+ * Buffer.toString); plain Uint8Array joins its elements. */
99
+ ScrStr *enc = scr_str_new("utf8", 4);
100
+ ScrStr *txt = scr_bytes_to_str(d->v.bytes, enc);
101
+ scr_str_release(enc);
102
+ for (size_t i = 0; i < txt->len; i++) scr_jb_putc(b, txt->data[i]);
103
+ scr_str_release(txt);
104
+ return;
105
+ }
106
+ for (size_t i = 0; i < d->v.bytes->len; i++) {
107
+ if (i > 0) scr_jb_putc(b, ',');
108
+ ScrStr *n = scr_f64_to_scrstr(scr_bytes_get(d->v.bytes, (double)i));
109
+ for (size_t j = 0; j < n->len; j++) scr_jb_putc(b, n->data[j]);
110
+ scr_str_release(n);
111
+ }
112
+ return;
113
+ case SCR_DYN_FUNC:
114
+ scr_jb_puts(b, "function ");
115
+ if (d->v.fn.name) scr_jb_puts(b, d->v.fn.name);
116
+ scr_jb_puts(b, "() { [native code] }");
117
+ return;
118
+ case SCR_DYN_HANDLE: {
119
+ ScrStr *s = scr_dyn_to_string(d, NULL);
120
+ for (size_t i = 0; i < s->len; i++) scr_jb_putc(b, s->data[i]);
121
+ scr_str_release(s);
122
+ return;
123
+ }
124
+ case SCR_DYN_PROMISE:
125
+ /* Object.prototype.toString — promises carry no own toString, and
126
+ * their @@toStringTag is not modeled here; Node's String() answer
127
+ * for a bare promise is "[object Promise]". */
128
+ scr_jb_puts(b, "[object Promise]");
129
+ return;
130
+ case SCR_DYN_JSVAL:
131
+ /* The engine's own ToString (a bridged failure leaves the exception
132
+ * pending and appends nothing — the loud path). */
133
+ scr_dyn_isl_tostr_buf(b, d);
134
+ return;
135
+ case SCR_DYN_TYPED_REF: {
136
+ ScrDyn *materialized = scr_dyn_typed_ref_materialize(d);
137
+ scr_dyn_display_buf(b, materialized);
138
+ scr_dyn_release(materialized);
139
+ return;
140
+ }
141
+ case SCR_DYN_PROXY:
142
+ scr_dyn_proxy_unsupported("string conversion");
143
+ return;
144
+ }
145
+ }
146
+
147
+ ScrStr *scr_dyn_display(const ScrDyn *d) {
148
+ ScrJsonBuf b;
149
+ scr_jb_init(&b);
150
+ scr_dyn_display_buf(&b, d);
151
+ return scr_jb_finish(&b);
152
+ }
153
+
154
+ static void dyn_throw_not_fn(const char *what) {
155
+ ScrJsonBuf b;
156
+ scr_jb_init(&b);
157
+ scr_jb_puts(&b, what);
158
+ scr_jb_puts(&b, " is not a function");
159
+ scr_throw_error(SCR_ERR_TYPE, scr_jb_finish(&b));
160
+ }
161
+
162
+ static void dyn_throw_unsupported(const char *proto, const char *method) {
163
+ ScrJsonBuf b;
164
+ scr_jb_init(&b);
165
+ scr_jb_putc(&b, '\'');
166
+ scr_jb_puts(&b, proto);
167
+ scr_jb_puts(&b, ".prototype.");
168
+ scr_jb_puts(&b, method);
169
+ scr_jb_puts(&b, "' on a dynamic value is not supported yet");
170
+ scr_throw_error(SCR_ERR_ERROR, scr_jb_finish(&b));
171
+ }
172
+
173
+ /* ToIntegerOrInfinity over an optional index argument. Missing and
174
+ * undefined use the operation's default; present values run ToNumber once. */
175
+ static double dyn_index_arg(ScrDyn *const *args, size_t argc, size_t i, double dflt, const char *what) {
176
+ (void)what;
177
+ if (i >= argc || args[i]->kind == SCR_DYN_UNDEF) return dflt;
178
+ double number;
179
+ if (!scr_dyn_number_coerce_js(args[i], &number)) return 0;
180
+ return isnan(number) ? 0 : trunc(number);
181
+ }
182
+
183
+ static double dyn_bytes_index_arg(ScrDyn *const *args, size_t argc, size_t index, double fallback) {
184
+ if (index >= argc || args[index]->kind == SCR_DYN_UNDEF) return fallback;
185
+ double value;
186
+ if (!scr_dyn_number_coerce_js(args[index], &value)) return 0;
187
+ return isnan(value) ? 0 : trunc(value);
188
+ }
189
+
190
+ /* JS relative-index normalization (slice's rule). */
191
+ static size_t dyn_rel_index(double rel, size_t len) {
192
+ if (rel < 0) {
193
+ double r = (double)len + rel;
194
+ return r < 0 ? 0 : (size_t)r;
195
+ }
196
+ return rel > (double)len ? len : (size_t)rel;
197
+ }
198
+
199
+ static bool dyn_arr_length_unchanged(const ScrDyn *recv, size_t length) {
200
+ if (recv->v.arr.len == length) return true;
201
+ static const char message[] = "Array method after an argument changes the receiver length is not supported yet";
202
+ scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020");
203
+ return false;
204
+ }
205
+
206
+ /* The array callback runner (forEach/map/filter/some/every/find/
207
+ * findIndex): calls cb(item, i, recv) per element through the boxed
208
+ * thunk. Returns the owned result or NULL with the exception pending. */
209
+ static ScrDyn *dyn_call_cb(ScrDyn *cb, ScrDyn *item, size_t i, ScrDyn *recv) {
210
+ ScrDyn *idx = scr_dyn_new_num((double)i);
211
+ ScrDyn *cbargs[3] = { item, idx, recv };
212
+ ScrDyn *r = scr_dyn_call(cb, cbargs, 3, "callback");
213
+ scr_dyn_release(idx);
214
+ return r;
215
+ }
216
+
217
+ /* The callable-callback gate: JS's "<String(cb)> is not a function". */
218
+ static bool dyn_cb_check(ScrDyn *const *args, size_t argc) {
219
+ ScrDyn *cb = argc > 0 ? args[0] : scr_dyn_undefined();
220
+ if (cb->kind == SCR_DYN_FUNC) return true;
221
+ /* An ENGINE function is callable — scr_dyn_call's JSVAL arm routes it
222
+ * (the loops below call through scr_dyn_call, which converts the checked-dynamic tree
223
+ * element arguments per the uniform crossing). A wrapped NON-function
224
+ * falls through to the display path: String(cb) renders through the
225
+ * engine, exactly Node's message. */
226
+ if (cb->kind == SCR_DYN_JSVAL && scr_dyn_isl_typeof_is(cb, "function")) return true;
227
+ ScrJsonBuf b;
228
+ scr_jb_init(&b);
229
+ scr_dyn_display_buf(&b, cb);
230
+ scr_jb_puts(&b, " is not a function");
231
+ scr_throw_error(SCR_ERR_TYPE, scr_jb_finish(&b));
232
+ return false;
233
+ }
234
+
235
+ static bool dyn_borrow_is(const ScrStr *method, const char *name) {
236
+ size_t len = strlen(name);
237
+ return method->len == len && memcmp(method->data, name, len) == 0;
238
+ }
239
+
240
+ static bool dyn_borrow_index(const ScrStr *key, size_t *out) {
241
+ if (!key->len || (key->len > 1 && key->data[0] == '0')) return false;
242
+ size_t n = 0;
243
+ for (size_t i = 0; i < key->len; i++) {
244
+ unsigned digit = (unsigned)(key->data[i] - '0');
245
+ if (digit > 9 || n > (SIZE_MAX - digit) / 10) return false;
246
+ n = n * 10 + digit;
247
+ }
248
+ *out = n;
249
+ return true;
250
+ }
251
+
252
+ static ScrDyn *dyn_borrow_get(ScrDyn *recv, const ScrStr *key) {
253
+ if (recv->kind == SCR_DYN_TYPED_REF) {
254
+ ScrDyn *snapshot = scr_dyn_typed_ref_materialize(recv);
255
+ if (!snapshot) return NULL;
256
+ ScrDyn *result = dyn_borrow_get(snapshot, key);
257
+ scr_dyn_release(snapshot);
258
+ return result;
259
+ }
260
+ if (recv->kind == SCR_DYN_OBJ) return scr_dyn_obj_read(recv, key->data, key->len);
261
+ if (recv->kind == SCR_DYN_PROXY) return scr_dyn_proxy_get(recv, key);
262
+ if (recv->kind == SCR_DYN_JSVAL) return scr_dyn_isl_key_get(recv, key);
263
+ if (recv->kind == SCR_DYN_FUNC) {
264
+ ScrDyn *value = scr_dyn_fn_get(recv, key->data, key->len);
265
+ return value ? value : scr_dyn_retain(scr_dyn_undefined());
266
+ }
267
+ if (recv->kind == SCR_DYN_ARR || recv->kind == SCR_DYN_STR || recv->kind == SCR_DYN_BYTES) {
268
+ if (key->len == 6 && memcmp(key->data, "length", 6) == 0) {
269
+ double length = recv->kind == SCR_DYN_ARR ? (double)recv->v.arr.len
270
+ : recv->kind == SCR_DYN_STR ? scr_str_utf16_len(recv->v.str)
271
+ : (double)recv->v.bytes->len;
272
+ return scr_dyn_new_num(length);
273
+ }
274
+ size_t index;
275
+ if (!dyn_borrow_index(key, &index)) {
276
+ if (recv->kind == SCR_DYN_ARR && recv->v.arr.properties)
277
+ return scr_dyn_arr_named_get(recv, key);
278
+ return scr_dyn_retain(scr_dyn_undefined());
279
+ }
280
+ if (recv->kind == SCR_DYN_ARR && index >= recv->v.arr.len && recv->v.arr.properties)
281
+ return scr_dyn_arr_named_get(recv, key);
282
+ if (recv->kind == SCR_DYN_ARR) return scr_dyn_arr_at(recv, (double)index);
283
+ if (recv->kind == SCR_DYN_BYTES) {
284
+ return index < recv->v.bytes->len
285
+ ? scr_dyn_new_num(scr_bytes_get(recv->v.bytes, (double)index))
286
+ : scr_dyn_retain(scr_dyn_undefined());
287
+ }
288
+ if ((double)index >= scr_str_utf16_len(recv->v.str)) return scr_dyn_retain(scr_dyn_undefined());
289
+ ScrStr *unit = scr_str_slice(recv->v.str, (double)index, (double)index + 1);
290
+ ScrDyn *value = scr_dyn_new_str(unit);
291
+ scr_str_release(unit);
292
+ return value;
293
+ }
294
+ return scr_dyn_retain(scr_dyn_undefined());
295
+ }
296
+
297
+ static bool dyn_borrow_has(ScrDyn *recv, const ScrStr *key) {
298
+ if (recv->kind == SCR_DYN_STR || recv->kind == SCR_DYN_BYTES) {
299
+ size_t index;
300
+ return dyn_borrow_index(key, &index) &&
301
+ (recv->kind == SCR_DYN_STR
302
+ ? (double)index < scr_str_utf16_len(recv->v.str)
303
+ : index < recv->v.bytes->len);
304
+ }
305
+ if (recv->kind == SCR_DYN_FUNC) {
306
+ ScrDyn *value = scr_dyn_fn_get(recv, key->data, key->len);
307
+ bool present = value != NULL;
308
+ scr_dyn_release(value);
309
+ return present;
310
+ }
311
+ if (recv->kind == SCR_DYN_JSVAL) return scr_dyn_isl_fence(recv, "Array.prototype borrowed property presence");
312
+ return scr_dyn_has_key(recv, key);
313
+ }
314
+
315
+ static ScrStr *dyn_borrow_key(size_t index) {
316
+ char text[32];
317
+ int n = snprintf(text, sizeof text, "%zu", index);
318
+ return scr_str_new(text, (size_t)n);
319
+ }
320
+
321
+ static bool dyn_borrow_length(ScrDyn *recv, size_t *out) {
322
+ ScrStr *key = scr_str_new("length", 6);
323
+ ScrDyn *value = dyn_borrow_get(recv, key);
324
+ scr_str_release(key);
325
+ if (!value) return false;
326
+ double number;
327
+ bool ok = scr_dyn_number_coerce_js(value, &number);
328
+ scr_dyn_release(value);
329
+ if (!ok) return false;
330
+ if (isnan(number) || number <= 0) { *out = 0; return true; }
331
+ number = fmin(trunc(number), 9007199254740991.0);
332
+ if (number > (double)SIZE_MAX) {
333
+ static const char msg[] = "array-like length exceeds the native index range";
334
+ scr_throw_error_msg(SCR_ERR_ERROR, msg, sizeof msg - 1);
335
+ return false;
336
+ }
337
+ *out = (size_t)number;
338
+ return true;
339
+ }
340
+
341
+ static bool dyn_borrow_iteration(size_t step) {
342
+ if (step < 1000000) return true;
343
+ static const char msg[] = "array-like iteration over one million entries is not supported yet";
344
+ scr_throw_error_msg(SCR_ERR_ERROR, msg, sizeof msg - 1);
345
+ return false;
346
+ }
347
+
348
+ static bool dyn_borrow_number(const ScrDyn *value, double *out) {
349
+ if (!scr_dyn_number_coerce_js(value, out)) return false;
350
+ if (isnan(*out)) *out = 0;
351
+ else if (isfinite(*out)) *out = trunc(*out);
352
+ return true;
353
+ }
354
+
355
+ static bool dyn_borrow_present(ScrDyn *recv, size_t index) {
356
+ ScrStr *key = dyn_borrow_key(index);
357
+ bool found = dyn_borrow_has(recv, key);
358
+ scr_str_release(key);
359
+ return found;
360
+ }
361
+
362
+ static ScrDyn *dyn_borrow_item(ScrDyn *recv, size_t index) {
363
+ ScrStr *key = dyn_borrow_key(index);
364
+ ScrDyn *value = dyn_borrow_get(recv, key);
365
+ scr_str_release(key);
366
+ return value;
367
+ }
368
+
369
+ ScrDyn *scr_dyn_array_proto_call(ScrDyn *recv, ScrStr *method, ScrDyn *args) {
370
+ if (recv->kind == SCR_DYN_NULL || recv->kind == SCR_DYN_UNDEF) {
371
+ static const char msg[] = "Cannot convert undefined or null to object";
372
+ scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1);
373
+ return NULL;
374
+ }
375
+ if (!args || args->kind != SCR_DYN_ARR) scr_trap("scriptc: invalid Array.prototype arguments\n");
376
+ ScrDyn *const *argv = args->v.arr.items;
377
+ size_t argc = args->v.arr.len;
378
+ size_t len;
379
+ if (!dyn_borrow_length(recv, &len)) return NULL;
380
+
381
+ bool index_of = dyn_borrow_is(method, "indexOf");
382
+ bool last_index_of = dyn_borrow_is(method, "lastIndexOf");
383
+ bool includes = dyn_borrow_is(method, "includes");
384
+ if (index_of || last_index_of || includes) {
385
+ if (len == 0) return includes ? scr_dyn_new_bool(false) : scr_dyn_new_num(-1);
386
+ ScrDyn *needle = argc ? argv[0] : scr_dyn_undefined();
387
+ double from = last_index_of ? (double)len - 1 : 0;
388
+ if (argc > 1 && !dyn_borrow_number(argv[1], &from)) return NULL;
389
+ if (isnan(from)) from = 0;
390
+ else from = trunc(from);
391
+ double first = from < 0 ? (double)len + from : from;
392
+ if (last_index_of) {
393
+ if (from >= 0) first = fmin(from, (double)len - 1);
394
+ if (first >= (double)len) first = (double)len - 1;
395
+ for (size_t step = 0; first >= 0 && step <= (size_t)first; step++) {
396
+ if (len > 1000000 && !dyn_borrow_iteration(step)) return NULL;
397
+ size_t i = (size_t)first - step;
398
+ if (!dyn_borrow_present(recv, i)) { if (scr_exc_pending()) return NULL; continue; }
399
+ ScrDyn *item = dyn_borrow_item(recv, i);
400
+ if (!item) return NULL;
401
+ bool found = scr_dyn_strict_eq(item, needle);
402
+ scr_dyn_release(item);
403
+ if (found) return scr_dyn_new_num((double)i);
404
+ }
405
+ return scr_dyn_new_num(-1);
406
+ }
407
+ if (first < 0) first = 0;
408
+ if (first >= (double)len) return includes ? scr_dyn_new_bool(false) : scr_dyn_new_num(-1);
409
+ for (size_t i = (size_t)first; i < len; i++) {
410
+ if (len > 1000000 && !dyn_borrow_iteration(i - (size_t)first)) return NULL;
411
+ if (!includes && !dyn_borrow_present(recv, i)) { if (scr_exc_pending()) return NULL; continue; }
412
+ ScrDyn *item = dyn_borrow_item(recv, i);
413
+ if (!item) return NULL;
414
+ bool found = scr_dyn_strict_eq(item, needle) ||
415
+ (includes && item->kind == SCR_DYN_NUM && needle->kind == SCR_DYN_NUM &&
416
+ isnan(item->v.num) && isnan(needle->v.num));
417
+ scr_dyn_release(item);
418
+ if (found) return includes ? scr_dyn_new_bool(true) : scr_dyn_new_num((double)i);
419
+ }
420
+ return includes ? scr_dyn_new_bool(false) : scr_dyn_new_num(-1);
421
+ }
422
+ if (dyn_borrow_is(method, "at")) {
423
+ double offset = 0;
424
+ if (argc && !dyn_borrow_number(argv[0], &offset)) return NULL;
425
+ double index = offset < 0 ? (double)len + offset : offset;
426
+ return index >= 0 && index < (double)len
427
+ ? dyn_borrow_item(recv, (size_t)index)
428
+ : scr_dyn_retain(scr_dyn_undefined());
429
+ }
430
+ if (dyn_borrow_is(method, "slice")) {
431
+ if (recv->kind == SCR_DYN_PROXY) {
432
+ scr_dyn_proxy_unsupported("Array.prototype.slice");
433
+ return NULL;
434
+ }
435
+ double startD = 0;
436
+ double endD = (double)len;
437
+ if (argc && !dyn_borrow_number(argv[0], &startD)) return NULL;
438
+ if (argc > 1 && argv[1]->kind != SCR_DYN_UNDEF && !dyn_borrow_number(argv[1], &endD)) return NULL;
439
+ if (isnan(startD)) startD = 0;
440
+ if (isnan(endD)) endD = 0;
441
+ size_t start = dyn_rel_index(trunc(startD), len);
442
+ size_t end = dyn_rel_index(trunc(endD), len);
443
+ if (end > start && end - start > 1000000) {
444
+ static const char message[] = "Array.prototype.slice exceeds the native iteration limit";
445
+ scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020");
446
+ return NULL;
447
+ }
448
+ ScrDyn *out = scr_dyn_new_arr();
449
+ for (size_t i = start; i < end; i++) {
450
+ if (!dyn_borrow_iteration(i - start)) { scr_dyn_release(out); return NULL; }
451
+ bool present = dyn_borrow_present(recv, i);
452
+ if (scr_exc_pending()) { scr_dyn_release(out); return NULL; }
453
+ if (!present) {
454
+ static const char message[] = "Array.prototype.slice over sparse array-like values is not supported yet";
455
+ scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020");
456
+ scr_dyn_release(out);
457
+ return NULL;
458
+ }
459
+ ScrDyn *item = dyn_borrow_item(recv, i);
460
+ if (!item) { scr_dyn_release(out); return NULL; }
461
+ scr_dyn_arr_push(out, item);
462
+ }
463
+ return out;
464
+ }
465
+
466
+ bool each = dyn_borrow_is(method, "forEach");
467
+ bool map = dyn_borrow_is(method, "map");
468
+ bool filter = dyn_borrow_is(method, "filter");
469
+ bool some = dyn_borrow_is(method, "some");
470
+ bool every = dyn_borrow_is(method, "every");
471
+ bool find = dyn_borrow_is(method, "find");
472
+ bool find_index = dyn_borrow_is(method, "findIndex");
473
+ bool find_last = dyn_borrow_is(method, "findLast");
474
+ bool find_last_index = dyn_borrow_is(method, "findLastIndex");
475
+ bool reduce = dyn_borrow_is(method, "reduce");
476
+ bool reduce_right = dyn_borrow_is(method, "reduceRight");
477
+ if (!(each || map || filter || some || every || find || find_index || find_last || find_last_index || reduce || reduce_right)) {
478
+ static const char msg[] = "Array.prototype method is not supported yet";
479
+ scr_throw_error_msg(SCR_ERR_ERROR, msg, sizeof msg - 1);
480
+ return NULL;
481
+ }
482
+ if (!dyn_cb_check(argv, argc)) return NULL;
483
+ ScrDyn *cb = argv[0];
484
+ if (reduce || reduce_right) {
485
+ ScrDyn *acc = argc > 1 ? scr_dyn_retain(argv[1]) : NULL;
486
+ for (size_t step = 0; step < len; step++) {
487
+ if (len > 1000000 && !dyn_borrow_iteration(step)) { scr_dyn_release(acc); return NULL; }
488
+ size_t i = reduce_right ? len - 1 - step : step;
489
+ if (!dyn_borrow_present(recv, i)) { if (scr_exc_pending()) { scr_dyn_release(acc); return NULL; } continue; }
490
+ ScrDyn *item = dyn_borrow_item(recv, i);
491
+ if (!item) { scr_dyn_release(acc); return NULL; }
492
+ if (!acc) { acc = item; continue; }
493
+ ScrDyn *idx = scr_dyn_new_num((double)i);
494
+ ScrDyn *cbargs[4] = { acc, item, idx, recv };
495
+ ScrDyn *next = scr_dyn_call(cb, cbargs, 4, "callback");
496
+ scr_dyn_release(idx);
497
+ scr_dyn_release(item);
498
+ scr_dyn_release(acc);
499
+ if (!next) return NULL;
500
+ acc = next;
501
+ }
502
+ if (acc) return acc;
503
+ static const char msg[] = "Reduce of empty array with no initial value";
504
+ scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1);
505
+ return NULL;
506
+ }
507
+
508
+ ScrDyn *out = (map || filter) ? scr_dyn_new_arr() : NULL;
509
+ ScrDyn *this_arg = argc > 1 ? argv[1] : scr_dyn_undefined();
510
+ for (size_t i = 0; i < len; i++) {
511
+ if (len > 1000000 && !dyn_borrow_iteration(i)) { scr_dyn_release(out); return NULL; }
512
+ size_t index = find_last || find_last_index ? len - 1 - i : i;
513
+ bool present = find || find_index || find_last || find_last_index || dyn_borrow_present(recv, index);
514
+ if (scr_exc_pending()) { scr_dyn_release(out); return NULL; }
515
+ if (!present) {
516
+ if (map) {
517
+ scr_dyn_release(out);
518
+ static const char msg[] = "Array.prototype.map over sparse array-like values is not supported yet";
519
+ scr_throw_error_msg(SCR_ERR_ERROR, msg, sizeof msg - 1);
520
+ return NULL;
521
+ }
522
+ continue;
523
+ }
524
+ ScrDyn *item = dyn_borrow_item(recv, index);
525
+ if (!item) { scr_dyn_release(out); return NULL; }
526
+ scr_dyn_this_push_dyn(this_arg);
527
+ ScrDyn *result = dyn_call_cb(cb, item, index, recv);
528
+ scr_dyn_this_pop();
529
+ if (!result) { scr_dyn_release(item); scr_dyn_release(out); return NULL; }
530
+ if (map) {
531
+ scr_dyn_arr_push(out, result);
532
+ } else {
533
+ bool truthy = scr_dyn_truthy(result);
534
+ scr_dyn_release(result);
535
+ if (filter && truthy) scr_dyn_arr_push(out, scr_dyn_retain(item));
536
+ if (some && truthy) { scr_dyn_release(item); return scr_dyn_new_bool(true); }
537
+ if (every && !truthy) { scr_dyn_release(item); return scr_dyn_new_bool(false); }
538
+ if ((find || find_last) && truthy) return item;
539
+ if ((find_index || find_last_index) && truthy) { scr_dyn_release(item); return scr_dyn_new_num((double)index); }
540
+ }
541
+ scr_dyn_release(item);
542
+ }
543
+ if (out) return out;
544
+ if (some) return scr_dyn_new_bool(false);
545
+ if (every) return scr_dyn_new_bool(true);
546
+ if (find || find_last) return scr_dyn_retain(scr_dyn_undefined());
547
+ if (find_index || find_last_index) return scr_dyn_new_num(-1);
548
+ return scr_dyn_retain(scr_dyn_undefined());
549
+ }
550
+
551
+ static bool dyn_name_is(const char *m, const char *n) { return strcmp(m, n) == 0; }
552
+
553
+ /* Handle receivers: hand the whole call to the tag's ops (installed by
554
+ * the owning unit at main() — a missing install is an internal error the
555
+ * accessor reports). */
556
+ static ScrDyn *scr_dynh_dispatch(ScrDyn *recv, const char *method, ScrDyn *const *args, size_t argc, const char *what) {
557
+ const ScrDynHandleOps *ops = scr_dyn_handle_ops_of(recv);
558
+ return ops->invoke(recv->v.handle.ptr, recv, method, args, argc, what);
559
+ }
560
+
561
+ /* JS Array.prototype.sort over a dyn array: the spec's snapshot-sort —
562
+ * elements copy (retained) into a work list, a stable merge sort orders
563
+ * it (undefined elements sink to the end before any comparator runs),
564
+ * and the ordered list writes back index by index, so a comparator that
565
+ * mutates the receiver mid-sort never dangles the items being ordered.
566
+ * The default comparator compares ToString images (scr_dyn_display_buf —
567
+ * join's conversion) bytewise: code-POINT order, where JS orders UTF-16
568
+ * code units — identical through the BMP, divergent only across the
569
+ * surrogate boundary (SEMANTICS.md). A comparator result converts
570
+ * loosely to number; NaN and non-numeric answers count as 0 (ToNumber's
571
+ * common cases; exotic ToString-of-object coercions stay 0). */
572
+ static ScrStr *dyn_sort_str(const ScrDyn *e) {
573
+ ScrJsonBuf b;
574
+ scr_jb_init(&b);
575
+ scr_dyn_display_buf(&b, e);
576
+ return scr_jb_finish(&b);
577
+ }
578
+ static int dyn_sort_compare(ScrDyn *x, ScrDyn *y, ScrDyn *cmp, bool *failed) {
579
+ bool xu = x->kind == SCR_DYN_UNDEF, yu = y->kind == SCR_DYN_UNDEF;
580
+ if (xu || yu) return (xu && yu) ? 0 : xu ? 1 : -1;
581
+ if (cmp) {
582
+ ScrDyn *argv[2] = { x, y };
583
+ ScrDyn *r = scr_dyn_call(cmp, argv, 2, "comparefn");
584
+ if (!r) { *failed = true; return 0; }
585
+ double v = r->kind == SCR_DYN_NUM ? r->v.num : r->kind == SCR_DYN_BOOL ? (r->v.b ? 1 : 0) : 0;
586
+ scr_dyn_release(r);
587
+ return v < 0 ? -1 : v > 0 ? 1 : 0;
588
+ }
589
+ ScrStr *xs = dyn_sort_str(x);
590
+ ScrStr *ys = dyn_sort_str(y);
591
+ int c = scr_str_cmp(xs, ys);
592
+ scr_str_release(xs);
593
+ scr_str_release(ys);
594
+ return c < 0 ? -1 : c > 0 ? 1 : 0;
595
+ }
596
+ /* Merge sort work[lo, hi) stably (ties keep first-seen order — `<=`
597
+ * takes the left run's element). False when a comparator threw. */
598
+ static bool dyn_arr_sort_range(ScrDyn **work, ScrDyn **tmp, size_t lo, size_t hi, ScrDyn *cmp) {
599
+ if (hi - lo < 2) return true;
600
+ size_t mid = lo + (hi - lo) / 2;
601
+ if (!dyn_arr_sort_range(work, tmp, lo, mid, cmp)) return false;
602
+ if (!dyn_arr_sort_range(work, tmp, mid, hi, cmp)) return false;
603
+ size_t i = lo, j = mid, k = lo;
604
+ bool failed = false;
605
+ while (i < mid && j < hi) {
606
+ int c = dyn_sort_compare(work[i], work[j], cmp, &failed);
607
+ if (failed) return false;
608
+ tmp[k++] = c <= 0 ? work[i++] : work[j++];
609
+ }
610
+ while (i < mid) tmp[k++] = work[i++];
611
+ while (j < hi) tmp[k++] = work[j++];
612
+ memcpy(work + lo, tmp + lo, (hi - lo) * sizeof(ScrDyn *));
613
+ return true;
614
+ }
615
+ static bool dyn_arr_sort(ScrDyn *recv, ScrDyn *cmp) {
616
+ size_t len = recv->v.arr.len;
617
+ ScrDyn **buf = (ScrDyn **)malloc(2 * len * sizeof(ScrDyn *));
618
+ if (!buf) return true; /* OOM: answer the array unsorted over crashing */
619
+ ScrDyn **work = buf, **tmp = buf + len;
620
+ for (size_t i = 0; i < len; i++) work[i] = scr_dyn_retain(recv->v.arr.items[i]);
621
+ bool ok = dyn_arr_sort_range(work, tmp, 0, len, cmp);
622
+ if (ok) {
623
+ /* Write back into whatever the array holds NOW (a mutating comparator
624
+ * may have replaced entries): the work list's +1 moves in, the
625
+ * displaced entry releases. Elements beyond the current length (a
626
+ * shrinking comparator) just release. */
627
+ for (size_t i = 0; i < len; i++) {
628
+ if (i < recv->v.arr.len) {
629
+ ScrDyn *old = recv->v.arr.items[i];
630
+ recv->v.arr.items[i] = work[i];
631
+ scr_dyn_release(old);
632
+ } else {
633
+ scr_dyn_release(work[i]);
634
+ }
635
+ }
636
+ } else {
637
+ for (size_t i = 0; i < len; i++) scr_dyn_release(work[i]);
638
+ }
639
+ free(buf);
640
+ return ok;
641
+ }
642
+
643
+ static bool dyn_arr_flatten(ScrDyn *out, const ScrDyn *source, double depth, size_t *visits) {
644
+ for (size_t i = 0; i < source->v.arr.len; i++) {
645
+ if (++*visits > 1000000) {
646
+ static const char message[] = "Array.prototype.flat exceeds the native iteration limit";
647
+ scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020");
648
+ return false;
649
+ }
650
+ const ScrDyn *item = source->v.arr.items[i];
651
+ if (depth > 0 && item->kind == SCR_DYN_ARR) {
652
+ if (!dyn_arr_flatten(out, item, depth - 1, visits)) return false;
653
+ } else {
654
+ scr_dyn_arr_push(out, scr_dyn_retain((ScrDyn *)item));
655
+ }
656
+ }
657
+ return true;
658
+ }
659
+
660
+ static void dyn_arr_reversed_copy(ScrDyn *out, const ScrDyn *source) {
661
+ for (size_t i = source->v.arr.len; i > 0; i--)
662
+ scr_dyn_arr_push(out, scr_dyn_retain(source->v.arr.items[i - 1]));
663
+ }
664
+
665
+ /* Names each prototype declares BEYOND what's implemented here — these
666
+ * fence loudly instead of mis-answering "is not a function". */
667
+ static bool dyn_arr_proto_unimpl(const char *m) {
668
+ static const char *names[] = { "keys", "values", "entries",
669
+ "toString", "toLocaleString", NULL };
670
+ for (size_t i = 0; names[i]; i++) if (dyn_name_is(m, names[i])) return true;
671
+ return false;
672
+ }
673
+ static bool dyn_arr_proto_mutates(const char *m) {
674
+ static const char *names[] = {
675
+ "push", "pop", "shift", "unshift", "reverse", "sort", "fill", "copyWithin", "splice", NULL
676
+ };
677
+ for (size_t i = 0; names[i]; i++) if (dyn_name_is(m, names[i])) return true;
678
+ return false;
679
+ }
680
+ static bool dyn_bytes_proto_real(const char *m) {
681
+ static const char *names[] = { "slice", "at", "indexOf", "lastIndexOf", "includes", "join",
682
+ "forEach", "map", "filter", "some", "every", "find", "findIndex", "reverse", "fill", "set",
683
+ "subarray", "sort", "keys", "values", "entries", "reduce", "reduceRight", "copyWithin",
684
+ "toString", "toLocaleString", NULL };
685
+ for (size_t i = 0; names[i]; i++) if (dyn_name_is(m, names[i])) return true;
686
+ return false;
687
+ }
688
+
689
+ static ScrDyn *scr_dyn_invoke_impl(
690
+ ScrDyn *recv, const char *method, ScrDyn *const *args, size_t argc,
691
+ const char *what, ScrDyn *callback_recv);
692
+
693
+ ScrDyn *scr_dyn_invoke(ScrDyn *recv, const char *method,
694
+ ScrDyn *const *args, size_t argc,
695
+ const char *what) {
696
+ return scr_dyn_invoke_impl(recv, method, args, argc, what, NULL);
697
+ }
698
+
699
+ static ScrDyn *scr_dyn_invoke_impl(
700
+ ScrDyn *recv, const char *method, ScrDyn *const *args, size_t argc,
701
+ const char *what, ScrDyn *callback_recv) {
702
+ if (recv->kind == SCR_DYN_UNDEF || recv->kind == SCR_DYN_NULL) {
703
+ ScrJsonBuf b;
704
+ scr_jb_init(&b);
705
+ scr_jb_puts(&b, "Cannot read properties of ");
706
+ scr_jb_puts(&b, recv->kind == SCR_DYN_UNDEF ? "undefined" : "null");
707
+ scr_jb_puts(&b, " (reading '");
708
+ scr_jb_puts(&b, method);
709
+ scr_jb_puts(&b, "')");
710
+ scr_throw_error(SCR_ERR_TYPE, scr_jb_finish(&b));
711
+ return NULL;
712
+ }
713
+
714
+ /* Native handles dispatch through the tag's ops onto the same entry
715
+ * points the static lowerings use (scr_http/scr_net register them at
716
+ * main()); the ladder inside covers real-but-unimplemented members
717
+ * loudly. */
718
+ if (recv->kind == SCR_DYN_HANDLE) {
719
+ return scr_dynh_dispatch(recv, method, args, argc, what);
720
+ }
721
+
722
+ /* Island-held receivers: the ENGINE runs its own prototypes (JS-exact
723
+ * flatMap/map/forEach/filter — Array.prototype is the engine's) through
724
+ * scr_jsval_call_method; arguments cross per the uniform conversion
725
+ * (wrapped cells by reference, dyn data deep-copied, FUNC boxes through
726
+ * the host shim), a missing member throws the engine's own TypeError,
727
+ * and the result wraps back scalar-normalized. `what` is unused — the
728
+ * engine's message names the failure. */
729
+ if (recv->kind == SCR_DYN_JSVAL) {
730
+ return scr_dyn_jsval_ops()->invoke(recv->v.jsval.cell, method, args, argc, what);
731
+ }
732
+ if (recv->kind == SCR_DYN_PROXY) {
733
+ ScrStr *key = scr_str_new(method, strlen(method));
734
+ ScrDyn *callable = scr_dyn_proxy_get(recv, key);
735
+ scr_str_release(key);
736
+ if (!callable) return NULL;
737
+ scr_dyn_this_push_dyn(recv);
738
+ ScrDyn *result = scr_dyn_call(callable, args, argc, what);
739
+ scr_dyn_this_pop();
740
+ scr_dyn_release(callable);
741
+ return result;
742
+ }
743
+
744
+ /* Live Web-boundary capsules expose the prototype of their materialized
745
+ * value. Run the ordinary dispatch against the stable snapshot, then
746
+ * commit successful mutations back into the original static value.
747
+ * Mutators such as reverse/sort return their receiver, so translate that
748
+ * snapshot identity back to the externally visible capsule. */
749
+ if (recv->kind == SCR_DYN_TYPED_REF) {
750
+ ScrDyn *materialized = scr_dyn_typed_ref_materialize(recv);
751
+ if (scr_exc_pending()) {
752
+ scr_dyn_release(materialized);
753
+ return NULL;
754
+ }
755
+ bool mutates = materialized->kind == SCR_DYN_ARR &&
756
+ dyn_arr_proto_mutates(method);
757
+ ScrDyn *result = scr_dyn_invoke_impl(
758
+ materialized, method, args, argc, what, recv);
759
+ if (mutates && !scr_exc_pending()) scr_dyn_typed_ref_commit(recv);
760
+ if (result == materialized) {
761
+ scr_dyn_release(result);
762
+ result = scr_dyn_retain(recv);
763
+ }
764
+ scr_dyn_release(materialized);
765
+ return result;
766
+ }
767
+
768
+ /* OBJ method calls follow the native prototype chain while binding the
769
+ * original receiver as `this`. */
770
+ if (recv->kind == SCR_DYN_OBJ) {
771
+ ScrDyn *m = scr_dyn_obj_read(recv, method, strlen(method));
772
+ if (m && (m->kind == SCR_DYN_FUNC ||
773
+ /* a WRAPPED engine function stored as a dyn member: the
774
+ * routed call (scr_dyn_call's JSVAL arm) runs it. */
775
+ (m->kind == SCR_DYN_JSVAL && scr_dyn_isl_typeof_is(m, "function")))) {
776
+ /* JS binds the receiver for the call (`obj.method()` — this === obj):
777
+ * the ambient-receiver window (scr_runtime.h). */
778
+ scr_dyn_this_push_dyn(recv);
779
+ ScrDyn *r = scr_dyn_call(m, args, argc, what);
780
+ scr_dyn_this_pop();
781
+ scr_dyn_release(m);
782
+ return r;
783
+ }
784
+ scr_dyn_release(m);
785
+ dyn_throw_not_fn(what);
786
+ return NULL;
787
+ }
788
+
789
+ if (recv->kind == SCR_DYN_FUNC) {
790
+ if (dyn_name_is(method, "apply")) {
791
+ /* fn.apply(thisArg, argsArray) — thisArg binds the ambient receiver
792
+ * for the call window (the mustCall wrapper's `fn.apply(this,
793
+ * arguments)` forwards whatever receiver the wrapper ran under). */
794
+ const ScrDyn *thisv = argc >= 1 ? args[0] : scr_dyn_undefined();
795
+ ScrDyn *list = argc >= 2 ? args[1] : NULL;
796
+ if (list == NULL || list->kind == SCR_DYN_UNDEF || list->kind == SCR_DYN_NULL) {
797
+ scr_dyn_this_push_dyn(thisv);
798
+ ScrDyn *r = scr_dyn_call(recv, NULL, 0, what);
799
+ scr_dyn_this_pop();
800
+ return r;
801
+ }
802
+ ScrDyn *view = list->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(list)
803
+ ? scr_dyn_typed_ref_materialize(list) : NULL;
804
+ if (scr_exc_pending()) { scr_dyn_release(view); return NULL; }
805
+ if (view) list = view;
806
+ if (list->kind != SCR_DYN_ARR) {
807
+ scr_throw_error_msg(SCR_ERR_TYPE, "CreateListFromArrayLike called on non-object",
808
+ strlen("CreateListFromArrayLike called on non-object"));
809
+ scr_dyn_release(view);
810
+ return NULL;
811
+ }
812
+ scr_dyn_this_push_dyn(thisv);
813
+ ScrDyn *r = scr_dyn_call(recv, list->v.arr.items, list->v.arr.len, what);
814
+ scr_dyn_this_pop();
815
+ scr_dyn_release(view);
816
+ return r;
817
+ }
818
+ if (dyn_name_is(method, "call")) {
819
+ scr_dyn_this_push_dyn(argc >= 1 ? args[0] : scr_dyn_undefined());
820
+ ScrDyn *r = scr_dyn_call(recv, argc > 1 ? args + 1 : NULL, argc > 1 ? argc - 1 : 0, what);
821
+ scr_dyn_this_pop();
822
+ return r;
823
+ }
824
+ if (dyn_name_is(method, "bind")) return scr_dyn_bind(recv, args, argc);
825
+ if (dyn_name_is(method, "toString")) {
826
+ dyn_throw_unsupported("Function", method);
827
+ return NULL;
828
+ }
829
+ /* An OWN property on the FUNC box (defineProperties writes — the
830
+ * mustCall-wrapper expando family): a callable member runs with the
831
+ * box bound (JS's o.m() receiver), everything else keeps Node's
832
+ * is-not-a-function. */
833
+ {
834
+ ScrDyn *own = scr_dyn_fn_get(recv, method, strlen(method));
835
+ if (own) {
836
+ if (own->kind == SCR_DYN_FUNC || own->kind == SCR_DYN_JSVAL) {
837
+ scr_dyn_this_push_dyn(recv);
838
+ ScrDyn *r = scr_dyn_call(own, args, argc, what);
839
+ scr_dyn_this_pop();
840
+ scr_dyn_release(own);
841
+ return r;
842
+ }
843
+ scr_dyn_release(own);
844
+ }
845
+ }
846
+ dyn_throw_not_fn(what);
847
+ return NULL;
848
+ }
849
+
850
+ if ((recv->kind == SCR_DYN_SYMBOL || recv->kind == SCR_DYN_BIGINT || recv->kind == SCR_DYN_NUM || recv->kind == SCR_DYN_BOOL || recv->kind == SCR_DYN_STR) &&
851
+ dyn_name_is(method, "valueOf")) return scr_dyn_retain(recv);
852
+
853
+ if (recv->kind == SCR_DYN_STR) {
854
+ ScrStr *s = recv->v.str;
855
+ if (dyn_name_is(method, "slice")) {
856
+ double start = dyn_index_arg(args, argc, 0, 0, what);
857
+ if (scr_exc_pending()) return NULL;
858
+ double end = dyn_index_arg(args, argc, 1, scr_str_utf16_len(s), what);
859
+ if (scr_exc_pending()) return NULL;
860
+ ScrStr *piece = scr_str_slice(s, start, end);
861
+ ScrDyn *r = scr_dyn_new_str(piece); /* retains */
862
+ scr_str_release(piece);
863
+ return r;
864
+ }
865
+ if (dyn_name_is(method, "at") || dyn_name_is(method, "concat") ||
866
+ dyn_name_is(method, "indexOf") || dyn_name_is(method, "lastIndexOf") ||
867
+ dyn_name_is(method, "includes")) {
868
+ if ((dyn_name_is(method, "indexOf") || dyn_name_is(method, "lastIndexOf") ||
869
+ dyn_name_is(method, "includes")) &&
870
+ argc >= 1 && args[0]->kind == SCR_DYN_STR) {
871
+ if (dyn_name_is(method, "includes")) return scr_dyn_new_bool(scr_str_includes(s, args[0]->v.str));
872
+ if (dyn_name_is(method, "indexOf")) return scr_dyn_new_num(scr_str_index_of(s, args[0]->v.str, 0));
873
+ return scr_dyn_new_num(scr_str_last_index_of(s, args[0]->v.str));
874
+ }
875
+ dyn_throw_unsupported("String", method);
876
+ return NULL;
877
+ }
878
+ dyn_throw_not_fn(what);
879
+ return NULL;
880
+ }
881
+
882
+ if (recv->kind == SCR_DYN_ARR) {
883
+ size_t len = recv->v.arr.len;
884
+ size_t splice_start = 0;
885
+ size_t splice_removed = 0;
886
+ if (dyn_arr_proto_mutates(method)) {
887
+ bool grows = dyn_name_is(method, "push") && argc > 0;
888
+ grows = grows || (dyn_name_is(method, "unshift") && argc > 0);
889
+ bool shrinks = (dyn_name_is(method, "pop") || dyn_name_is(method, "shift")) && len > 0;
890
+ if (dyn_name_is(method, "splice")) {
891
+ double startD = dyn_index_arg(args, argc, 0, 0, what);
892
+ if (scr_exc_pending()) return NULL;
893
+ splice_start = dyn_rel_index(startD, len);
894
+ splice_removed = len - splice_start;
895
+ if (argc > 1) {
896
+ double countD = dyn_index_arg(args, argc, 1, 0, what);
897
+ if (scr_exc_pending()) return NULL;
898
+ splice_removed = countD <= 0 ? 0 : countD >= (double)splice_removed ? splice_removed : (size_t)countD;
899
+ }
900
+ if (recv->v.arr.len != len) {
901
+ static const char message[] = "Array.prototype.splice after an argument changes the receiver length is not supported yet";
902
+ scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020");
903
+ return NULL;
904
+ }
905
+ size_t inserted = argc > 2 ? argc - 2 : 0;
906
+ if (inserted > splice_removed && inserted - splice_removed > 1000000) {
907
+ static const char message[] = "Array.prototype.splice exceeds the native array growth limit";
908
+ scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020");
909
+ return NULL;
910
+ }
911
+ grows = grows || inserted > splice_removed;
912
+ shrinks = shrinks || splice_removed > inserted;
913
+ if (splice_removed > inserted && recv->v.arr.sealed && !recv->v.arr.frozen) {
914
+ for (size_t i = splice_start; i < len - splice_removed + inserted; i++) {
915
+ size_t source = i < splice_start + inserted ? i : i + splice_removed - inserted;
916
+ ScrDyn *replacement = i < splice_start + inserted ? args[i - splice_start + 2] : recv->v.arr.items[source];
917
+ ScrDyn *old = recv->v.arr.items[i];
918
+ recv->v.arr.items[i] = scr_dyn_retain(replacement);
919
+ scr_dyn_release(old);
920
+ }
921
+ static const char message[] = "Cannot delete non-configurable property";
922
+ scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
923
+ return NULL;
924
+ }
925
+ }
926
+ if (recv->v.arr.frozen && (dyn_name_is(method, "push") ||
927
+ dyn_name_is(method, "pop") || dyn_name_is(method, "shift") ||
928
+ dyn_name_is(method, "unshift") || dyn_name_is(method, "splice"))) {
929
+ static const char message[] = "Cannot assign to read only property 'length'";
930
+ scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
931
+ return NULL;
932
+ }
933
+ if ((grows && recv->non_extensible) || (shrinks && recv->v.arr.sealed && !dyn_name_is(method, "shift")) ||
934
+ (recv->v.arr.frozen && ((dyn_name_is(method, "sort") && len > 1) ||
935
+ (dyn_name_is(method, "reverse") && len > 1)))) {
936
+ static const char message[] = "Cannot modify a sealed or frozen array";
937
+ scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
938
+ return NULL;
939
+ }
940
+ }
941
+ if (dyn_name_is(method, "push")) {
942
+ for (size_t i = 0; i < argc; i++) scr_dyn_arr_push(recv, scr_dyn_retain(args[i]));
943
+ return scr_dyn_new_num((double)recv->v.arr.len);
944
+ }
945
+ if (dyn_name_is(method, "pop")) {
946
+ if (len == 0) return scr_dyn_retain(scr_dyn_undefined());
947
+ return recv->v.arr.items[--recv->v.arr.len]; /* ownership moves out */
948
+ }
949
+ if (dyn_name_is(method, "shift")) {
950
+ if (len == 0) return scr_dyn_retain(scr_dyn_undefined());
951
+ if (recv->v.arr.sealed) {
952
+ if (recv->v.arr.frozen) {
953
+ static const char message[] = "Cannot assign to read only property";
954
+ scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
955
+ return NULL;
956
+ }
957
+ for (size_t i = 1; i < len; i++) {
958
+ scr_dyn_release(recv->v.arr.items[i - 1]);
959
+ recv->v.arr.items[i - 1] = scr_dyn_retain(recv->v.arr.items[i]);
960
+ }
961
+ static const char message[] = "Cannot delete non-configurable property";
962
+ scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
963
+ return NULL;
964
+ }
965
+ ScrDyn *first = recv->v.arr.items[0];
966
+ memmove(recv->v.arr.items, recv->v.arr.items + 1, (len - 1) * sizeof(ScrDyn *));
967
+ recv->v.arr.len = len - 1;
968
+ return first; /* ownership moves out */
969
+ }
970
+ if (dyn_name_is(method, "unshift")) {
971
+ /* Grow the backing store before shifting the old elements. The
972
+ * appended placeholders are immortal, so overwriting them does not
973
+ * abandon retained argument references. */
974
+ for (size_t i = 0; i < argc; i++) scr_dyn_arr_push(recv, scr_dyn_retain(scr_dyn_undefined()));
975
+ memmove(recv->v.arr.items + argc, recv->v.arr.items, len * sizeof(ScrDyn *));
976
+ for (size_t i = 0; i < argc; i++) recv->v.arr.items[i] = scr_dyn_retain(args[i]);
977
+ return scr_dyn_new_num((double)recv->v.arr.len);
978
+ }
979
+ if (dyn_name_is(method, "splice")) {
980
+ size_t start = splice_start;
981
+ size_t removed = splice_removed;
982
+ size_t inserted = argc > 2 ? argc - 2 : 0;
983
+ ScrDyn *out = scr_dyn_new_arr();
984
+ for (size_t i = start; i < start + removed; i++)
985
+ scr_dyn_arr_push(out, scr_dyn_retain(recv->v.arr.items[i]));
986
+ size_t next_len = len - removed + inserted;
987
+ if (next_len > recv->v.arr.cap) {
988
+ size_t capacity = recv->v.arr.cap ? recv->v.arr.cap : 4;
989
+ while (capacity < next_len) {
990
+ if (capacity > SIZE_MAX / 2) scr_trap("scriptc: array capacity overflow\n");
991
+ capacity *= 2;
992
+ }
993
+ ScrDyn **items = realloc(recv->v.arr.items, capacity * sizeof *items);
994
+ if (!items) scr_trap("scriptc: out of memory\n");
995
+ recv->v.arr.items = items;
996
+ recv->v.arr.cap = capacity;
997
+ }
998
+ for (size_t i = start; i < start + removed; i++) scr_dyn_release(recv->v.arr.items[i]);
999
+ memmove(recv->v.arr.items + start + inserted,
1000
+ recv->v.arr.items + start + removed,
1001
+ (len - start - removed) * sizeof(ScrDyn *));
1002
+ for (size_t i = 0; i < inserted; i++)
1003
+ recv->v.arr.items[start + i] = scr_dyn_retain(args[i + 2]);
1004
+ recv->v.arr.len = next_len;
1005
+ return out;
1006
+ }
1007
+ if (dyn_name_is(method, "slice")) {
1008
+ double startD = dyn_index_arg(args, argc, 0, 0, what);
1009
+ if (scr_exc_pending()) return NULL;
1010
+ double endD = dyn_index_arg(args, argc, 1, (double)len, what);
1011
+ if (scr_exc_pending()) return NULL;
1012
+ if (!dyn_arr_length_unchanged(recv, len)) return NULL;
1013
+ size_t start = dyn_rel_index(startD, len);
1014
+ size_t end = dyn_rel_index(endD, len);
1015
+ ScrDyn *out = scr_dyn_new_arr();
1016
+ for (size_t i = start; i < end; i++) scr_dyn_arr_push(out, scr_dyn_retain(recv->v.arr.items[i]));
1017
+ return out;
1018
+ }
1019
+ if (dyn_name_is(method, "at")) {
1020
+ double iD = dyn_index_arg(args, argc, 0, 0, what);
1021
+ if (scr_exc_pending()) return NULL;
1022
+ if (!dyn_arr_length_unchanged(recv, len)) return NULL;
1023
+ double idx = iD < 0 ? (double)len + iD : iD;
1024
+ if (idx < 0 || idx >= (double)len) return scr_dyn_retain(scr_dyn_undefined());
1025
+ return scr_dyn_retain(recv->v.arr.items[(size_t)idx]);
1026
+ }
1027
+ if (dyn_name_is(method, "indexOf") || dyn_name_is(method, "lastIndexOf") ||
1028
+ dyn_name_is(method, "includes")) {
1029
+ if (len == 0) return dyn_name_is(method, "includes") ? scr_dyn_new_bool(false) : scr_dyn_new_num(-1);
1030
+ ScrDyn *needle = argc > 0 ? args[0] : scr_dyn_undefined();
1031
+ double from = dyn_name_is(method, "lastIndexOf") ? (double)len - 1 : 0;
1032
+ if (argc > 1) {
1033
+ from = dyn_index_arg(args, argc, 1, from, what);
1034
+ if (scr_exc_pending()) return NULL;
1035
+ }
1036
+ if (!dyn_arr_length_unchanged(recv, len)) return NULL;
1037
+ if (dyn_name_is(method, "lastIndexOf")) {
1038
+ double first = from < 0 ? (double)len + from : from;
1039
+ if (first >= (double)len) first = (double)len - 1;
1040
+ for (size_t i = first < 0 ? 0 : (size_t)first + 1; i > 0; i--) {
1041
+ if (scr_dyn_strict_eq(recv->v.arr.items[i - 1], needle)) return scr_dyn_new_num((double)(i - 1));
1042
+ }
1043
+ return scr_dyn_new_num(-1);
1044
+ }
1045
+ double first = from < 0 ? (double)len + from : from;
1046
+ if (first < 0) first = 0;
1047
+ for (size_t i = first >= (double)len ? len : (size_t)first; i < len; i++) {
1048
+ const ScrDyn *item = recv->v.arr.items[i];
1049
+ bool nan_match = dyn_name_is(method, "includes") &&
1050
+ item->kind == SCR_DYN_NUM && needle->kind == SCR_DYN_NUM &&
1051
+ item->v.num != item->v.num && needle->v.num != needle->v.num;
1052
+ if (nan_match || scr_dyn_strict_eq(item, needle)) {
1053
+ return dyn_name_is(method, "includes") ? scr_dyn_new_bool(true) : scr_dyn_new_num((double)i);
1054
+ }
1055
+ }
1056
+ return dyn_name_is(method, "includes") ? scr_dyn_new_bool(false) : scr_dyn_new_num(-1);
1057
+ }
1058
+ if (dyn_name_is(method, "findLast") || dyn_name_is(method, "findLastIndex")) {
1059
+ if (!dyn_cb_check(args, argc)) return NULL;
1060
+ ScrDyn *visible_recv = callback_recv ? callback_recv : recv;
1061
+ for (size_t i = len; i > 0; i--) {
1062
+ size_t index = i - 1;
1063
+ ScrDyn *item = index < recv->v.arr.len
1064
+ ? scr_dyn_retain(recv->v.arr.items[index])
1065
+ : scr_dyn_retain(scr_dyn_undefined());
1066
+ ScrDyn *result = dyn_call_cb(args[0], item, index, visible_recv);
1067
+ if (!result) { scr_dyn_release(item); return NULL; }
1068
+ bool matched = scr_dyn_truthy(result);
1069
+ scr_dyn_release(result);
1070
+ if (matched) {
1071
+ if (dyn_name_is(method, "findLast")) return item;
1072
+ scr_dyn_release(item);
1073
+ return scr_dyn_new_num((double)index);
1074
+ }
1075
+ scr_dyn_release(item);
1076
+ }
1077
+ return dyn_name_is(method, "findLast")
1078
+ ? scr_dyn_retain(scr_dyn_undefined()) : scr_dyn_new_num(-1);
1079
+ }
1080
+ if (dyn_name_is(method, "join")) {
1081
+ ScrJsonBuf b;
1082
+ scr_jb_init(&b);
1083
+ for (size_t i = 0; i < len; i++) {
1084
+ if (i > 0) {
1085
+ if (argc > 0 && args[0]->kind != SCR_DYN_UNDEF) scr_dyn_display_buf(&b, args[0]);
1086
+ else scr_jb_putc(&b, ',');
1087
+ }
1088
+ const ScrDyn *e = recv->v.arr.items[i];
1089
+ if (e->kind == SCR_DYN_UNDEF || e->kind == SCR_DYN_NULL) continue;
1090
+ scr_dyn_display_buf(&b, e);
1091
+ }
1092
+ ScrStr *joined = scr_jb_finish(&b);
1093
+ ScrDyn *r = scr_dyn_new_str(joined); /* retains */
1094
+ scr_str_release(joined);
1095
+ return r;
1096
+ }
1097
+ if (dyn_name_is(method, "concat")) {
1098
+ ScrDyn *out = scr_dyn_new_arr();
1099
+ for (size_t i = 0; i < len; i++) scr_dyn_arr_push(out, scr_dyn_retain(recv->v.arr.items[i]));
1100
+ for (size_t a = 0; a < argc; a++) {
1101
+ ScrDyn *view = args[a]->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(args[a])
1102
+ ? scr_dyn_typed_ref_materialize(args[a]) : NULL;
1103
+ if (scr_exc_pending()) { scr_dyn_release(view); scr_dyn_release(out); return NULL; }
1104
+ const ScrDyn *source = view ? view : args[a];
1105
+ if (source->kind == SCR_DYN_ARR) {
1106
+ for (size_t i = 0; i < source->v.arr.len; i++) {
1107
+ scr_dyn_arr_push(out, scr_dyn_retain(source->v.arr.items[i]));
1108
+ }
1109
+ } else {
1110
+ scr_dyn_arr_push(out, scr_dyn_retain(args[a]));
1111
+ }
1112
+ scr_dyn_release(view);
1113
+ }
1114
+ return out;
1115
+ }
1116
+ if (dyn_name_is(method, "flat")) {
1117
+ double depth = dyn_index_arg(args, argc, 0, 1, what);
1118
+ if (scr_exc_pending()) return NULL;
1119
+ if (!dyn_arr_length_unchanged(recv, len)) return NULL;
1120
+ ScrDyn *out = scr_dyn_new_arr();
1121
+ size_t visits = 0;
1122
+ if (!dyn_arr_flatten(out, recv, depth < 0 ? 0 : depth, &visits)) {
1123
+ scr_dyn_release(out);
1124
+ return NULL;
1125
+ }
1126
+ return out;
1127
+ }
1128
+ if (dyn_name_is(method, "reverse")) {
1129
+ for (size_t i = 0; i < len / 2; i++) {
1130
+ ScrDyn *tmp = recv->v.arr.items[i];
1131
+ recv->v.arr.items[i] = recv->v.arr.items[len - 1 - i];
1132
+ recv->v.arr.items[len - 1 - i] = tmp;
1133
+ }
1134
+ return scr_dyn_retain(recv);
1135
+ }
1136
+ if (dyn_name_is(method, "toReversed")) {
1137
+ ScrDyn *out = scr_dyn_new_arr();
1138
+ dyn_arr_reversed_copy(out, recv);
1139
+ return out;
1140
+ }
1141
+ if (dyn_name_is(method, "with")) {
1142
+ double indexD = dyn_index_arg(args, argc, 0, 0, what);
1143
+ if (scr_exc_pending()) return NULL;
1144
+ if (!dyn_arr_length_unchanged(recv, len)) return NULL;
1145
+ double index = indexD < 0 ? (double)len + indexD : indexD;
1146
+ if (index < 0 || index >= (double)len) {
1147
+ static const char message[] = "Invalid index";
1148
+ scr_throw_error_msg(SCR_ERR_RANGE, message, sizeof message - 1);
1149
+ return NULL;
1150
+ }
1151
+ ScrDyn *replacement = argc > 1 ? args[1] : scr_dyn_undefined();
1152
+ ScrDyn *out = scr_dyn_new_arr();
1153
+ for (size_t i = 0; i < len; i++)
1154
+ scr_dyn_arr_push(out, scr_dyn_retain((size_t)index == i ? replacement : recv->v.arr.items[i]));
1155
+ return out;
1156
+ }
1157
+ if (dyn_name_is(method, "toSpliced")) {
1158
+ double startD = dyn_index_arg(args, argc, 0, 0, what);
1159
+ if (scr_exc_pending()) return NULL;
1160
+ size_t start = dyn_rel_index(startD, len);
1161
+ size_t delete_count = len - start;
1162
+ if (argc > 1) {
1163
+ double countD = dyn_index_arg(args, argc, 1, 0, what);
1164
+ if (scr_exc_pending()) return NULL;
1165
+ delete_count = countD <= 0 ? 0 : countD >= (double)delete_count ? delete_count : (size_t)countD;
1166
+ }
1167
+ if (!dyn_arr_length_unchanged(recv, len)) return NULL;
1168
+ ScrDyn *out = scr_dyn_new_arr();
1169
+ for (size_t i = 0; i < start; i++) scr_dyn_arr_push(out, scr_dyn_retain(recv->v.arr.items[i]));
1170
+ for (size_t i = 2; i < argc; i++) scr_dyn_arr_push(out, scr_dyn_retain(args[i]));
1171
+ for (size_t i = start + delete_count; i < len; i++) scr_dyn_arr_push(out, scr_dyn_retain(recv->v.arr.items[i]));
1172
+ return out;
1173
+ }
1174
+ if (dyn_name_is(method, "fill")) {
1175
+ double startD = dyn_index_arg(args, argc, 1, 0, what);
1176
+ if (scr_exc_pending()) return NULL;
1177
+ double endD = dyn_index_arg(args, argc, 2, (double)len, what);
1178
+ if (scr_exc_pending()) return NULL;
1179
+ if (!dyn_arr_length_unchanged(recv, len)) return NULL;
1180
+ size_t start = dyn_rel_index(startD, len);
1181
+ size_t end = dyn_rel_index(endD, len);
1182
+ if (recv->v.arr.frozen && start < end) {
1183
+ static const char message[] = "Cannot assign to read only array index";
1184
+ scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
1185
+ return NULL;
1186
+ }
1187
+ ScrDyn *fill = argc ? args[0] : scr_dyn_undefined();
1188
+ for (size_t i = start; i < end; i++) {
1189
+ ScrDyn *old = recv->v.arr.items[i];
1190
+ recv->v.arr.items[i] = scr_dyn_retain(fill);
1191
+ scr_dyn_release(old);
1192
+ }
1193
+ return scr_dyn_retain(recv);
1194
+ }
1195
+ if (dyn_name_is(method, "copyWithin")) {
1196
+ double targetD = dyn_index_arg(args, argc, 0, 0, what);
1197
+ if (scr_exc_pending()) return NULL;
1198
+ double startD = dyn_index_arg(args, argc, 1, 0, what);
1199
+ if (scr_exc_pending()) return NULL;
1200
+ double endD = dyn_index_arg(args, argc, 2, (double)len, what);
1201
+ if (scr_exc_pending()) return NULL;
1202
+ if (!dyn_arr_length_unchanged(recv, len)) return NULL;
1203
+ size_t target = dyn_rel_index(targetD, len);
1204
+ size_t start = dyn_rel_index(startD, len);
1205
+ size_t end = dyn_rel_index(endD, len);
1206
+ size_t count = end > start ? end - start : 0;
1207
+ if (count > len - target) count = len - target;
1208
+ if (recv->v.arr.frozen && count > 0) {
1209
+ static const char message[] = "Cannot assign to read only array index";
1210
+ scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
1211
+ return NULL;
1212
+ }
1213
+ if (start < target && target < start + count) {
1214
+ for (size_t i = count; i > 0; i--) {
1215
+ ScrDyn *old = recv->v.arr.items[target + i - 1];
1216
+ recv->v.arr.items[target + i - 1] = scr_dyn_retain(recv->v.arr.items[start + i - 1]);
1217
+ scr_dyn_release(old);
1218
+ }
1219
+ } else {
1220
+ for (size_t i = 0; i < count; i++) {
1221
+ ScrDyn *old = recv->v.arr.items[target + i];
1222
+ recv->v.arr.items[target + i] = scr_dyn_retain(recv->v.arr.items[start + i]);
1223
+ scr_dyn_release(old);
1224
+ }
1225
+ }
1226
+ return scr_dyn_retain(recv);
1227
+ }
1228
+ if (dyn_name_is(method, "forEach") || dyn_name_is(method, "map") ||
1229
+ dyn_name_is(method, "filter") || dyn_name_is(method, "some") ||
1230
+ dyn_name_is(method, "every") || dyn_name_is(method, "find") ||
1231
+ dyn_name_is(method, "findIndex")) {
1232
+ if (!dyn_cb_check(args, argc)) return NULL;
1233
+ ScrDyn *cb = args[0];
1234
+ ScrDyn *out = (dyn_name_is(method, "map") || dyn_name_is(method, "filter")) ? scr_dyn_new_arr() : NULL;
1235
+ /* Array iteration methods snapshot length before the first callback.
1236
+ * A shrinking callback can remove a later dense entry; an expanding
1237
+ * callback must not make the new tail observable to this pass. Live
1238
+ * Web-boundary capsules are the externally visible receiver, so pass
1239
+ * that capsule as callback arg 3: mutations through the callback's
1240
+ * array argument then commit directly to the original static array. */
1241
+ size_t n = len;
1242
+ ScrDyn *visible_recv = callback_recv ? callback_recv : recv;
1243
+ for (size_t step = 0; step < n; step++) {
1244
+ size_t i = step;
1245
+ if (i >= recv->v.arr.len) continue;
1246
+ ScrDyn *item = scr_dyn_retain(recv->v.arr.items[i]);
1247
+ ScrDyn *r = dyn_call_cb(cb, item, i, visible_recv);
1248
+ if (!r) { scr_dyn_release(item); scr_dyn_release(out); return NULL; }
1249
+ if (dyn_name_is(method, "map")) {
1250
+ scr_dyn_arr_push(out, r); /* ownership moves in */
1251
+ r = NULL;
1252
+ } else {
1253
+ bool truthy = scr_dyn_truthy(r);
1254
+ scr_dyn_release(r);
1255
+ if (dyn_name_is(method, "filter") && truthy) scr_dyn_arr_push(out, scr_dyn_retain(item));
1256
+ if (dyn_name_is(method, "some") && truthy) { scr_dyn_release(item); return scr_dyn_new_bool(true); }
1257
+ if (dyn_name_is(method, "every") && !truthy) { scr_dyn_release(item); return scr_dyn_new_bool(false); }
1258
+ if (dyn_name_is(method, "find") && truthy) return item; /* +1 moves out */
1259
+ if (dyn_name_is(method, "findIndex") && truthy) { scr_dyn_release(item); return scr_dyn_new_num((double)i); }
1260
+ }
1261
+ scr_dyn_release(item);
1262
+ }
1263
+ if (out) return out;
1264
+ if (dyn_name_is(method, "some")) return scr_dyn_new_bool(false);
1265
+ if (dyn_name_is(method, "every")) return scr_dyn_new_bool(true);
1266
+ if (dyn_name_is(method, "find")) return scr_dyn_retain(scr_dyn_undefined());
1267
+ if (dyn_name_is(method, "findIndex")) return scr_dyn_new_num(-1);
1268
+ return scr_dyn_retain(scr_dyn_undefined()); /* forEach */
1269
+ }
1270
+ if (dyn_name_is(method, "reduce") || dyn_name_is(method, "reduceRight")) {
1271
+ if (!dyn_cb_check(args, argc)) return NULL;
1272
+ bool backward = dyn_name_is(method, "reduceRight");
1273
+ ScrDyn *acc = argc > 1 ? scr_dyn_retain(args[1]) : NULL;
1274
+ ScrDyn *visible_recv = callback_recv ? callback_recv : recv;
1275
+ for (size_t step = 0; step < len; step++) {
1276
+ size_t i = backward ? len - 1 - step : step;
1277
+ if (i >= recv->v.arr.len) continue;
1278
+ ScrDyn *item = scr_dyn_retain(recv->v.arr.items[i]);
1279
+ if (!acc) { acc = item; continue; }
1280
+ ScrDyn *index = scr_dyn_new_num((double)i);
1281
+ ScrDyn *call_args[] = { acc, item, index, visible_recv };
1282
+ ScrDyn *next = scr_dyn_call(args[0], call_args, 4, "callback");
1283
+ scr_dyn_release(index);
1284
+ scr_dyn_release(item);
1285
+ scr_dyn_release(acc);
1286
+ if (!next) return NULL;
1287
+ acc = next;
1288
+ }
1289
+ if (acc) return acc;
1290
+ static const char message[] = "Reduce of empty array with no initial value";
1291
+ scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
1292
+ return NULL;
1293
+ }
1294
+ if (dyn_name_is(method, "flatMap")) {
1295
+ /* JS Array.prototype.flatMap over a dyn array: map + a depth-1
1296
+ * flatten. Native dyn-array results flatten element-by-element; a
1297
+ * WRAPPED engine array flattens through the routed keyed reads
1298
+ * (elements wrap back scalar-normalized); everything else pushes
1299
+ * as a single element (JS keeps non-array callback results whole).
1300
+ * JS's spec snapshots the length up front (elements appended by
1301
+ * the callback are not visited). */
1302
+ if (!dyn_cb_check(args, argc)) return NULL;
1303
+ ScrDyn *cb = args[0];
1304
+ ScrDyn *out = scr_dyn_new_arr();
1305
+ size_t n = recv->v.arr.len;
1306
+ for (size_t i = 0; i < n && i < recv->v.arr.len; i++) {
1307
+ ScrDyn *item = scr_dyn_retain(recv->v.arr.items[i]);
1308
+ ScrDyn *r = dyn_call_cb(
1309
+ cb, item, i, callback_recv ? callback_recv : recv);
1310
+ scr_dyn_release(item);
1311
+ if (!r) { scr_dyn_release(out); return NULL; }
1312
+ if (r->kind == SCR_DYN_ARR) {
1313
+ for (size_t j = 0; j < r->v.arr.len; j++) {
1314
+ scr_dyn_arr_push(out, scr_dyn_retain(r->v.arr.items[j]));
1315
+ }
1316
+ scr_dyn_release(r);
1317
+ } else if (scr_dyn_isl_is_array(r)) {
1318
+ /* An engine-array result: length + element reads through the
1319
+ * routed engine ops (a bridged surprise unwinds). */
1320
+ ScrStr *lk = scr_str_new("length", 6);
1321
+ ScrDyn *lenv = scr_dyn_isl_key_get(r, lk);
1322
+ scr_str_release(lk);
1323
+ if (!lenv) { scr_dyn_release(r); scr_dyn_release(out); return NULL; }
1324
+ size_t rn = lenv->kind == SCR_DYN_NUM ? (size_t)lenv->v.num : 0;
1325
+ scr_dyn_release(lenv);
1326
+ for (size_t j = 0; j < rn; j++) {
1327
+ char idx[24];
1328
+ int ilen = snprintf(idx, sizeof idx, "%zu", j);
1329
+ ScrStr *jk = scr_str_new(idx, (size_t)ilen);
1330
+ ScrDyn *el = scr_dyn_isl_key_get(r, jk);
1331
+ scr_str_release(jk);
1332
+ if (!el) { scr_dyn_release(r); scr_dyn_release(out); return NULL; }
1333
+ scr_dyn_arr_push(out, el); /* ownership moves in */
1334
+ }
1335
+ scr_dyn_release(r);
1336
+ } else {
1337
+ scr_dyn_arr_push(out, r); /* ownership moves in */
1338
+ }
1339
+ }
1340
+ return out;
1341
+ }
1342
+ if (dyn_name_is(method, "sort")) {
1343
+ ScrDyn *cmp = argc > 0 ? args[0] : scr_dyn_undefined();
1344
+ if (cmp->kind != SCR_DYN_UNDEF && cmp->kind != SCR_DYN_FUNC) {
1345
+ /* V8 appends the received value's string image. */
1346
+ ScrJsonBuf b;
1347
+ scr_jb_init(&b);
1348
+ scr_jb_puts(&b, "The comparison function must be either a function or undefined: ");
1349
+ scr_dyn_display_buf(&b, cmp);
1350
+ scr_throw_error(SCR_ERR_TYPE, scr_jb_finish(&b));
1351
+ return NULL;
1352
+ }
1353
+ if (len > 1 && !dyn_arr_sort(recv, cmp->kind == SCR_DYN_FUNC ? cmp : NULL)) return NULL;
1354
+ return scr_dyn_retain(recv);
1355
+ }
1356
+ if (dyn_name_is(method, "toSorted")) {
1357
+ ScrDyn *cmp = argc > 0 ? args[0] : scr_dyn_undefined();
1358
+ if (cmp->kind != SCR_DYN_UNDEF && cmp->kind != SCR_DYN_FUNC) {
1359
+ static const char message[] = "The comparison function must be either a function or undefined";
1360
+ scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
1361
+ return NULL;
1362
+ }
1363
+ ScrDyn *out = scr_dyn_new_arr();
1364
+ for (size_t i = 0; i < len; i++) scr_dyn_arr_push(out, scr_dyn_retain(recv->v.arr.items[i]));
1365
+ if (len > 1 && !dyn_arr_sort(out, cmp->kind == SCR_DYN_FUNC ? cmp : NULL)) {
1366
+ scr_dyn_release(out);
1367
+ return NULL;
1368
+ }
1369
+ return out;
1370
+ }
1371
+ if (dyn_arr_proto_unimpl(method)) {
1372
+ dyn_throw_unsupported("Array", method);
1373
+ return NULL;
1374
+ }
1375
+ dyn_throw_not_fn(what);
1376
+ return NULL;
1377
+ }
1378
+
1379
+ /* PROMISE receivers: the then/catch/finally reactions ride the fiber
1380
+ * machinery (scr_dyn_promise_then — microtask-exact ordering); every
1381
+ * other Promise.prototype name is `then`-adjacent sugar JS doesn't
1382
+ * have, so the not-a-function answer IS the JS answer. */
1383
+ if (recv->kind == SCR_DYN_PROMISE) {
1384
+ #ifdef SCR_LIB
1385
+ scr_trap("scriptc: promise dispatch is unavailable in library mode\n");
1386
+ #else
1387
+ if (dyn_name_is(method, "then")) {
1388
+ return scr_dyn_promise_then(recv->v.promise, argc >= 1 ? args[0] : NULL,
1389
+ argc >= 2 ? args[1] : NULL, NULL);
1390
+ }
1391
+ if (dyn_name_is(method, "catch")) {
1392
+ return scr_dyn_promise_then(recv->v.promise, NULL, argc >= 1 ? args[0] : NULL, NULL);
1393
+ }
1394
+ if (dyn_name_is(method, "finally")) {
1395
+ return scr_dyn_promise_then(recv->v.promise, NULL, NULL, argc >= 1 ? args[0] : NULL);
1396
+ }
1397
+ dyn_throw_not_fn(what);
1398
+ return NULL;
1399
+ #endif
1400
+ }
1401
+
1402
+ if (recv->kind == SCR_DYN_BYTES) {
1403
+ ScrBytes *bytes = recv->v.bytes;
1404
+ size_t blen = bytes->len;
1405
+ if (dyn_name_is(method, "at")) {
1406
+ double iD = dyn_bytes_index_arg(args, argc, 0, 0);
1407
+ if (scr_exc_pending()) return NULL;
1408
+ double idx = iD < 0 ? (double)blen + iD : iD;
1409
+ if (idx < 0 || idx >= (double)blen) return scr_dyn_retain(scr_dyn_undefined());
1410
+ return scr_dyn_new_num(scr_bytes_get(bytes, idx));
1411
+ }
1412
+ if (dyn_name_is(method, "slice") || dyn_name_is(method, "subarray")) {
1413
+ /* subarray and Buffer.slice alias their source. TypedArray.slice
1414
+ * owns an independent copy; all keep the receiver's Buffer flavor. */
1415
+ double startD = dyn_bytes_index_arg(args, argc, 0, 0);
1416
+ if (scr_exc_pending()) return NULL;
1417
+ double endD = dyn_bytes_index_arg(args, argc, 1, (double)blen);
1418
+ if (scr_exc_pending()) return NULL;
1419
+ ScrBytes *out = recv->buffer || dyn_name_is(method, "subarray")
1420
+ ? scr_bytes_subarray(bytes, startD, endD) : scr_bytes_slice(bytes, startD, endD);
1421
+ ScrDyn *d = recv->buffer ? scr_dyn_new_buffer(out) : scr_dyn_new_bytes(out);
1422
+ scr_bytes_release(out);
1423
+ return d;
1424
+ }
1425
+ if (dyn_name_is(method, "set")) {
1426
+ double offset = dyn_bytes_index_arg(args, argc, 1, 0);
1427
+ if (scr_exc_pending()) return NULL;
1428
+ scr_bytes_set_from_dyn(bytes, argc ? args[0] : scr_dyn_undefined(), offset);
1429
+ return scr_exc_pending() ? NULL : scr_dyn_retain(scr_dyn_undefined());
1430
+ }
1431
+ if (dyn_name_is(method, "copyWithin")) {
1432
+ double target = dyn_bytes_index_arg(args, argc, 0, 0);
1433
+ if (scr_exc_pending()) return NULL;
1434
+ double start = dyn_bytes_index_arg(args, argc, 1, 0);
1435
+ if (scr_exc_pending()) return NULL;
1436
+ double end = dyn_bytes_index_arg(args, argc, 2, (double)blen);
1437
+ if (scr_exc_pending()) return NULL;
1438
+ scr_bytes_release(scr_bytes_copy_within(bytes, target, start, end));
1439
+ return scr_dyn_retain(recv);
1440
+ }
1441
+ if (dyn_name_is(method, "fill") && !recv->buffer) {
1442
+ double value;
1443
+ if (!scr_dyn_number_coerce_js(argc ? args[0] : scr_dyn_undefined(), &value)) return NULL;
1444
+ double start = dyn_bytes_index_arg(args, argc, 1, 0);
1445
+ if (scr_exc_pending()) return NULL;
1446
+ double end = dyn_bytes_index_arg(args, argc, 2, (double)blen);
1447
+ if (scr_exc_pending()) return NULL;
1448
+ scr_bytes_release(scr_bytes_fill_elem(bytes, value, start, end));
1449
+ return scr_dyn_retain(recv);
1450
+ }
1451
+ if (dyn_name_is(method, "join") || (dyn_name_is(method, "toString") && !recv->buffer)) {
1452
+ ScrStr *separator = dyn_name_is(method, "join") && argc && args[0]->kind != SCR_DYN_UNDEF
1453
+ ? scr_dyn_string_coerce_js(args[0]) : scr_str_new(",", 1);
1454
+ if (scr_exc_pending()) { scr_str_release(separator); return NULL; }
1455
+ ScrStr *joined = scr_bytes_join(bytes, separator);
1456
+ scr_str_release(separator);
1457
+ ScrDyn *out = scr_dyn_new_str(joined);
1458
+ scr_str_release(joined);
1459
+ return out;
1460
+ }
1461
+ if (dyn_bytes_proto_real(method)) {
1462
+ dyn_throw_unsupported(scr_bytes_elem_name(bytes->elem), method);
1463
+ return NULL;
1464
+ }
1465
+ }
1466
+
1467
+ /* NUM/BOOL/BYTES-remainder: the name is no method of this kind — JS's
1468
+ * own answer. */
1469
+ dyn_throw_not_fn(what);
1470
+ return NULL;
1471
+ }
1472
+
1473
+ static ScrDyn *dyn_array_method_value_call(ScrClosure *closure, ScrDyn *const *args, size_t argc) {
1474
+ ScrStr *method = scr_box_get_ref(closure->caps[0]);
1475
+ ScrDyn *receiver = scr_dyn_this_get();
1476
+ ScrDyn *result;
1477
+ if (receiver->kind == SCR_DYN_ARR) {
1478
+ result = scr_dyn_invoke(receiver, method->data, args, argc, method->data);
1479
+ } else {
1480
+ ScrDyn *pack = scr_dyn_new_arr();
1481
+ for (size_t i = 0; i < argc; i++) scr_dyn_arr_push(pack, scr_dyn_retain(args[i]));
1482
+ result = scr_dyn_array_proto_call(receiver, method, pack);
1483
+ scr_dyn_release(pack);
1484
+ }
1485
+ scr_dyn_release(receiver);
1486
+ scr_str_release(method);
1487
+ return result;
1488
+ }
1489
+
1490
+ ScrDyn *scr_dyn_array_prototype(void) {
1491
+ static SCR_TL bool initialized;
1492
+ ScrDyn *prototype = scr_dyn_array_prototype_base();
1493
+ if (initialized) return prototype;
1494
+ initialized = true;
1495
+ static const struct { const char *name; size_t arity; } methods[] = {
1496
+ {"at", 1}, {"concat", 1}, {"copyWithin", 2}, {"fill", 1}, {"find", 1}, {"findIndex", 1},
1497
+ {"findLast", 1}, {"findLastIndex", 1}, {"lastIndexOf", 1}, {"pop", 0}, {"push", 1},
1498
+ {"reverse", 0}, {"shift", 0}, {"unshift", 1}, {"slice", 2}, {"sort", 1}, {"splice", 2},
1499
+ {"includes", 1}, {"indexOf", 1}, {"join", 1}, {"keys", 0}, {"entries", 0}, {"values", 0},
1500
+ {"forEach", 1}, {"filter", 1}, {"flat", 0}, {"flatMap", 1}, {"map", 1}, {"every", 1},
1501
+ {"some", 1}, {"reduce", 1}, {"reduceRight", 1}, {"toReversed", 0}, {"toSorted", 1},
1502
+ {"toSpliced", 2}, {"with", 2}, {"toLocaleString", 0}, {"toString", 0},
1503
+ };
1504
+ for (size_t i = 0; i < sizeof methods / sizeof methods[0]; i++) {
1505
+ ScrStr *name = scr_str_new(methods[i].name, strlen(methods[i].name));
1506
+ ScrDyn *method;
1507
+ if (!strcmp(methods[i].name, "values")) method = scr_dyn_array_values_function();
1508
+ else {
1509
+ ScrClosure *closure = scr_closure_new(NULL, 1);
1510
+ closure->caps[0] = scr_box_new(SCR_BOX_STR);
1511
+ scr_box_set_ref(closure->caps[0], scr_str_retain(name));
1512
+ method = scr_dyn_new_func(closure, dyn_array_method_value_call, methods[i].arity,
1513
+ "native:Array.prototype", methods[i].name);
1514
+ }
1515
+ ScrDyn *descriptor = scr_dyn_new_obj();
1516
+ scr_dyn_obj_set(descriptor, "value", 5, method);
1517
+ scr_dyn_obj_set(descriptor, "writable", 8, scr_dyn_new_bool(true));
1518
+ scr_dyn_obj_set(descriptor, "configurable", 12, scr_dyn_new_bool(true));
1519
+ ScrDyn *key = scr_dyn_new_str(name);
1520
+ ScrDyn *defined = scr_dyn_define_property(prototype, key, descriptor);
1521
+ scr_dyn_release(defined);
1522
+ scr_dyn_release(key);
1523
+ scr_dyn_release(descriptor);
1524
+ scr_str_release(name);
1525
+ }
1526
+ return prototype;
1527
+ }
1528
+
1529
+ /* Object.defineProperties over dyn values (see scr_runtime.h). */
1530
+ ScrDyn *scr_dyn_define_props(ScrDyn *target, ScrDyn *descs) {
1531
+ /* Island-held operands ARE objects to Node — the non-object TypeError
1532
+ * below would be a wrong claim. Loud fence (lane dyn-routing-ops). */
1533
+ scr_dyn_isl_fence(target, "Object.defineProperties");
1534
+ if (!scr_exc_pending()) scr_dyn_isl_fence(descs, "Object.defineProperties");
1535
+ if (scr_exc_pending()) return NULL;
1536
+ if (target->kind != SCR_DYN_OBJ && target->kind != SCR_DYN_FUNC && target->kind != SCR_DYN_ARR) {
1537
+ scr_throw_error_msg(SCR_ERR_TYPE, "Object.defineProperties called on non-object",
1538
+ strlen("Object.defineProperties called on non-object"));
1539
+ return NULL;
1540
+ }
1541
+ if (descs->kind != SCR_DYN_OBJ) {
1542
+ scr_throw_error_msg(SCR_ERR_TYPE, "Object.defineProperties called on non-object",
1543
+ strlen("Object.defineProperties called on non-object"));
1544
+ return NULL;
1545
+ }
1546
+ ScrDyn *keys = scr_dyn_obj_own_keys(descs);
1547
+ ScrDyn *pending = scr_dyn_new_arr();
1548
+ static const char *const names[] = {"enumerable", "configurable", "value", "writable", "get", "set"};
1549
+ static const size_t lengths[] = {10, 12, 5, 8, 3, 3};
1550
+ for (size_t i = 0; i < keys->v.arr.len; i++) {
1551
+ ScrDyn *key = keys->v.arr.items[i];
1552
+ ScrStr *name = key->v.str;
1553
+ if (!scr_dyn_obj_enumerable(descs, name->data, name->len)) continue;
1554
+ ScrDyn *descriptor = scr_dyn_obj_read(descs, name->data, name->len);
1555
+ if (!descriptor) goto fail;
1556
+ if (descriptor->kind != SCR_DYN_OBJ) {
1557
+ ScrJsonBuf b;
1558
+ scr_jb_init(&b);
1559
+ scr_jb_puts(&b, "Property description must be an object: ");
1560
+ scr_dyn_display_buf(&b, descriptor);
1561
+ scr_throw_error(SCR_ERR_TYPE, scr_jb_finish(&b));
1562
+ scr_dyn_release(descriptor);
1563
+ goto fail;
1564
+ }
1565
+ ScrDyn *snapshot = scr_dyn_new_obj();
1566
+ for (size_t field = 0; field < 6; field++) {
1567
+ if (!scr_dyn_obj_get(descriptor, names[field], lengths[field])) continue;
1568
+ ScrDyn *value = scr_dyn_obj_read(descriptor, names[field], lengths[field]);
1569
+ if (!value) {
1570
+ scr_dyn_release(snapshot);
1571
+ scr_dyn_release(descriptor);
1572
+ goto fail;
1573
+ }
1574
+ scr_dyn_obj_set(snapshot, names[field], lengths[field], value);
1575
+ }
1576
+ scr_dyn_release(descriptor);
1577
+ ScrDyn *get = scr_dyn_obj_get(snapshot, "get", 3);
1578
+ ScrDyn *set = scr_dyn_obj_get(snapshot, "set", 3);
1579
+ if ((get || set) && (scr_dyn_obj_get(snapshot, "value", 5) ||
1580
+ scr_dyn_obj_get(snapshot, "writable", 8))) {
1581
+ static const char msg[] = "Invalid property descriptor. Cannot both specify accessors and a value or writable attribute";
1582
+ scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1);
1583
+ scr_dyn_release(snapshot);
1584
+ goto fail;
1585
+ }
1586
+ if ((get && get->kind != SCR_DYN_UNDEF && get->kind != SCR_DYN_FUNC) ||
1587
+ (set && set->kind != SCR_DYN_UNDEF && set->kind != SCR_DYN_FUNC)) {
1588
+ static const char msg[] = "Getter and setter must be functions";
1589
+ scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1);
1590
+ scr_dyn_release(snapshot);
1591
+ goto fail;
1592
+ }
1593
+ ScrDyn *pair = scr_dyn_new_arr();
1594
+ scr_dyn_arr_push(pair, scr_dyn_retain(key));
1595
+ scr_dyn_arr_push(pair, snapshot);
1596
+ scr_dyn_arr_push(pending, pair);
1597
+ }
1598
+ scr_dyn_release(keys);
1599
+ for (size_t i = 0; i < pending->v.arr.len; i++) {
1600
+ ScrDyn *pair = pending->v.arr.items[i];
1601
+ ScrDyn *key = pair->v.arr.items[0];
1602
+ ScrDyn *descriptor = pair->v.arr.items[1];
1603
+ ScrDyn *defined = scr_dyn_define_property(target, key, descriptor);
1604
+ if (!defined) {
1605
+ scr_dyn_release(pending);
1606
+ return NULL;
1607
+ }
1608
+ scr_dyn_release(defined);
1609
+ }
1610
+ scr_dyn_release(pending);
1611
+ return scr_dyn_retain(target);
1612
+ fail:
1613
+ scr_dyn_release(keys);
1614
+ scr_dyn_release(pending);
1615
+ return NULL;
1616
+ }
1617
+
1618
+ ScrDyn *scr_dyn_obj_create_with_properties(ScrDyn *prototype, ScrDyn *descriptors) {
1619
+ ScrDyn *object = scr_dyn_obj_create(prototype);
1620
+ if (!object) return NULL;
1621
+ if (descriptors->kind == SCR_DYN_UNDEF) return object;
1622
+ ScrDyn *defined = scr_dyn_define_props(object, descriptors);
1623
+ if (!defined) { scr_dyn_release(object); return NULL; }
1624
+ scr_dyn_release(defined);
1625
+ return object;
1626
+ }