@scriptc/cli-darwin-x64 0.2.4 → 0.2.6

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 (434) hide show
  1. package/dist/THIRD_PARTY_NOTICES +1 -1
  2. package/dist/bin/scriptc +0 -0
  3. package/dist/bin/scriptc.json +1 -1
  4. package/dist/lib/declarations/scriptc-node-fallback.d.ts +972 -245
  5. package/dist/lib/declarations/scriptc-overrides.d.ts +5 -1
  6. package/dist/lib/declarations/scriptc.d.ts +22 -2
  7. package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
  8. package/dist/lib/llvm/package.json +1 -1
  9. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_array.o +0 -0
  10. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_assert.o +0 -0
  11. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_async.o +0 -0
  12. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
  13. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
  14. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_child.o +0 -0
  15. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_closure.o +0 -0
  16. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_console.o +0 -0
  17. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_context.o +0 -0
  18. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_copying.o +0 -0
  19. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
  20. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
  21. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_error.o +0 -0
  22. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_events.o +0 -0
  23. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
  24. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_exception.o +0 -0
  25. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
  26. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
  27. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_json.o +0 -0
  28. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_lib.o +0 -0
  29. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_map.o +0 -0
  30. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_number.o +0 -0
  31. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_object.o +0 -0
  32. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_readline.o +0 -0
  33. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_regex.o +0 -0
  34. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_shared.o +0 -0
  35. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_stream.o +0 -0
  36. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_string.o +0 -0
  37. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_tls.o +0 -0
  38. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_union.o +0 -0
  39. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_util_compare.o +0 -0
  40. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_array.o +0 -0
  41. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_assert.o +0 -0
  42. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_async.o +0 -0
  43. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_async_dyn.o +0 -0
  44. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_bigint.o +0 -0
  45. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_bigint_assert.o +0 -0
  46. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_bytes.o +0 -0
  47. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_bytes_io.o +0 -0
  48. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_child.o +0 -0
  49. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_closure.o +0 -0
  50. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_console.o +0 -0
  51. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_console_native.o +0 -0
  52. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_context.o +0 -0
  53. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_copying.o +0 -0
  54. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_crypto_async.o +0 -0
  55. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_cycle.o +0 -0
  56. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_dc.o +0 -0
  57. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_dgram.o +0 -0
  58. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_dyn_handle.o +0 -0
  59. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_dyn_invoke.o +0 -0
  60. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_error.o +0 -0
  61. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_events.o +0 -0
  62. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_events_emitter.o +0 -0
  63. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_exception.o +0 -0
  64. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_fetch.o +0 -0
  65. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_ffi.o +0 -0
  66. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_ffi_queue.o +0 -0
  67. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_file_handle.o +0 -0
  68. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_grapheme.o +0 -0
  69. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_http.o +0 -0
  70. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_http2.o +0 -0
  71. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_inspect.o +0 -0
  72. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_json.o +0 -0
  73. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_lib.o +0 -0
  74. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_loop_epoll.o +0 -0
  75. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_loop_kqueue.o +0 -0
  76. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  77. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_map.o +0 -0
  78. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_net.o +0 -0
  79. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_node_builtin.o +0 -0
  80. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_number.o +0 -0
  81. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_object.o +0 -0
  82. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_path.o +0 -0
  83. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_qs.o +0 -0
  84. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_readline.o +0 -0
  85. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_regex.o +0 -0
  86. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_shared.o +0 -0
  87. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_stream.o +0 -0
  88. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_string.o +0 -0
  89. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_symbol.o +0 -0
  90. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_test.o +0 -0
  91. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_tls.o +0 -0
  92. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_tls_ca.o +0 -0
  93. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_union.o +0 -0
  94. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_url.o +0 -0
  95. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_url_params.o +0 -0
  96. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_util.o +0 -0
  97. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_util_compare.o +0 -0
  98. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_util_style.o +0 -0
  99. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_watch.o +0 -0
  100. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_zlib.o +0 -0
  101. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
  102. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
  103. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
  104. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
  105. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
  106. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
  107. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
  108. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
  109. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_context.o +0 -0
  110. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_copying.o +0 -0
  111. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
  112. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
  113. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
  114. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
  115. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
  116. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
  117. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
  118. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
  119. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
  120. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
  121. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
  122. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
  123. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
  124. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
  125. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
  126. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_shared.o +0 -0
  127. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
  128. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
  129. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
  130. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
  131. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_util_compare.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/dev/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  135. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/workers/scr_mailbox.o +0 -0
  136. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/workers/scr_message.o +0 -0
  137. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/workers/scr_worker.o +0 -0
  138. package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/workers/scr_worker_events.o +0 -0
  139. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
  140. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
  141. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
  142. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
  143. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
  144. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_context.o +0 -0
  145. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_copying.o +0 -0
  146. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_cycle.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_json.o +0 -0
  151. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
  152. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
  153. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
  154. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
  155. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
  156. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_shared.o +0 -0
  157. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
  158. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
  159. package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  160. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_array.o +0 -0
  161. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
  162. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
  163. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
  164. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
  165. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_context.o +0 -0
  166. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_copying.o +0 -0
  167. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
  168. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_error.o +0 -0
  169. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
  170. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
  171. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_json.o +0 -0
  172. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
  173. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_map.o +0 -0
  174. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_number.o +0 -0
  175. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_object.o +0 -0
  176. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
  177. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_shared.o +0 -0
  178. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_string.o +0 -0
  179. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_union.o +0 -0
  180. package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  181. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
  182. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
  183. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
  184. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
  185. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
  186. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
  187. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_context.o +0 -0
  188. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
  189. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
  190. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
  191. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
  192. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
  193. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
  194. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
  195. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
  196. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
  197. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
  198. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
  199. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
  200. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_shared.o +0 -0
  201. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
  202. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
  203. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
  204. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  205. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
  206. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
  207. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
  208. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
  209. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
  210. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
  211. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_context.o +0 -0
  212. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
  213. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
  214. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
  215. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
  216. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
  217. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
  218. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
  219. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
  220. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
  221. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
  222. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
  223. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
  224. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_shared.o +0 -0
  225. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
  226. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
  227. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
  228. package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  229. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_array.o +0 -0
  230. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_assert.o +0 -0
  231. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_async.o +0 -0
  232. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bytes.o +0 -0
  233. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
  234. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_child.o +0 -0
  235. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_closure.o +0 -0
  236. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_console.o +0 -0
  237. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_context.o +0 -0
  238. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_copying.o +0 -0
  239. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_cycle.o +0 -0
  240. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dgram.o +0 -0
  241. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_error.o +0 -0
  242. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_events.o +0 -0
  243. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
  244. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_exception.o +0 -0
  245. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_fetch.o +0 -0
  246. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
  247. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_json.o +0 -0
  248. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_lib.o +0 -0
  249. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_map.o +0 -0
  250. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_number.o +0 -0
  251. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_object.o +0 -0
  252. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_readline.o +0 -0
  253. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_regex.o +0 -0
  254. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_shared.o +0 -0
  255. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_stream.o +0 -0
  256. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_string.o +0 -0
  257. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_tls.o +0 -0
  258. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_union.o +0 -0
  259. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_util_compare.o +0 -0
  260. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_array.o +0 -0
  261. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_assert.o +0 -0
  262. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_async.o +0 -0
  263. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_async_dyn.o +0 -0
  264. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_bigint.o +0 -0
  265. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_bigint_assert.o +0 -0
  266. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_bytes.o +0 -0
  267. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_bytes_io.o +0 -0
  268. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_child.o +0 -0
  269. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_closure.o +0 -0
  270. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_console.o +0 -0
  271. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_console_native.o +0 -0
  272. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_context.o +0 -0
  273. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_copying.o +0 -0
  274. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_crypto_async.o +0 -0
  275. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_cycle.o +0 -0
  276. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_dc.o +0 -0
  277. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_dgram.o +0 -0
  278. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_dyn_handle.o +0 -0
  279. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_dyn_invoke.o +0 -0
  280. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_error.o +0 -0
  281. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_events.o +0 -0
  282. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_events_emitter.o +0 -0
  283. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_exception.o +0 -0
  284. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_fetch.o +0 -0
  285. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_ffi.o +0 -0
  286. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_ffi_queue.o +0 -0
  287. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_file_handle.o +0 -0
  288. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_grapheme.o +0 -0
  289. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_http.o +0 -0
  290. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_http2.o +0 -0
  291. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_inspect.o +0 -0
  292. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_json.o +0 -0
  293. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_lib.o +0 -0
  294. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_loop_epoll.o +0 -0
  295. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_loop_kqueue.o +0 -0
  296. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  297. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_map.o +0 -0
  298. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_net.o +0 -0
  299. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_node_builtin.o +0 -0
  300. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_number.o +0 -0
  301. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_object.o +0 -0
  302. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_path.o +0 -0
  303. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_qs.o +0 -0
  304. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_readline.o +0 -0
  305. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_regex.o +0 -0
  306. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_shared.o +0 -0
  307. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_stream.o +0 -0
  308. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_string.o +0 -0
  309. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_symbol.o +0 -0
  310. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_test.o +0 -0
  311. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_tls.o +0 -0
  312. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_tls_ca.o +0 -0
  313. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_union.o +0 -0
  314. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_url.o +0 -0
  315. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_url_params.o +0 -0
  316. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_util.o +0 -0
  317. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_util_compare.o +0 -0
  318. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_util_style.o +0 -0
  319. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_watch.o +0 -0
  320. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_zlib.o +0 -0
  321. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
  322. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
  323. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
  324. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
  325. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
  326. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
  327. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
  328. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
  329. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_context.o +0 -0
  330. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_copying.o +0 -0
  331. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
  332. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
  333. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
  334. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
  335. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
  336. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
  337. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
  338. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
  339. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
  340. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
  341. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
  342. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
  343. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
  344. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
  345. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
  346. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_shared.o +0 -0
  347. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
  348. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
  349. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
  350. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
  351. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_util_compare.o +0 -0
  352. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  353. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  354. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  355. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/workers/scr_mailbox.o +0 -0
  356. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/workers/scr_message.o +0 -0
  357. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/workers/scr_worker.o +0 -0
  358. package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/workers/scr_worker_events.o +0 -0
  359. package/dist/lib/runtime-darwin-x64/package.json +1 -1
  360. package/dist/lib/runtime-darwin-x64/runtime-pack.json +3318 -790
  361. package/dist/lib/runtime-sources/package.json +1 -1
  362. package/dist/lib/runtime-sources/src/scr_array.c +479 -46
  363. package/dist/lib/runtime-sources/src/scr_assert.c +3 -3
  364. package/dist/lib/runtime-sources/src/scr_async.c +401 -71
  365. package/dist/lib/runtime-sources/src/scr_async.test.ts +16 -6
  366. package/dist/lib/runtime-sources/src/scr_async_dyn.c +30 -30
  367. package/dist/lib/runtime-sources/src/scr_bytes.c +487 -221
  368. package/dist/lib/runtime-sources/src/scr_bytes.test.c +85 -0
  369. package/dist/lib/runtime-sources/src/scr_bytes_io.c +45 -64
  370. package/dist/lib/runtime-sources/src/scr_child.c +48 -30
  371. package/dist/lib/runtime-sources/src/scr_closure.c +21 -11
  372. package/dist/lib/runtime-sources/src/scr_console.c +27 -5
  373. package/dist/lib/runtime-sources/src/scr_context.c +167 -0
  374. package/dist/lib/runtime-sources/src/scr_context.test.c +118 -0
  375. package/dist/lib/runtime-sources/src/scr_context.test.ts +47 -0
  376. package/dist/lib/runtime-sources/src/scr_copying.c +13 -2
  377. package/dist/lib/runtime-sources/src/scr_cycle.c +112 -12
  378. package/dist/lib/runtime-sources/src/scr_dc.c +8 -8
  379. package/dist/lib/runtime-sources/src/scr_dgram.c +10 -7
  380. package/dist/lib/runtime-sources/src/scr_error.c +26 -14
  381. package/dist/lib/runtime-sources/src/scr_events.c +45 -31
  382. package/dist/lib/runtime-sources/src/scr_events_emitter.c +34 -1
  383. package/dist/lib/runtime-sources/src/scr_exception.c +26 -7
  384. package/dist/lib/runtime-sources/src/scr_fetch.c +23 -20
  385. package/dist/lib/runtime-sources/src/scr_fetch_curl.c +1 -1
  386. package/dist/lib/runtime-sources/src/scr_ffi.c +3 -3
  387. package/dist/lib/runtime-sources/src/scr_file_handle.c +1 -0
  388. package/dist/lib/runtime-sources/src/scr_http.c +20 -16
  389. package/dist/lib/runtime-sources/src/scr_http2.c +10 -8
  390. package/dist/lib/runtime-sources/src/scr_inspect.c +1 -0
  391. package/dist/lib/runtime-sources/src/scr_island.c +1 -1
  392. package/dist/lib/runtime-sources/src/scr_json.c +652 -189
  393. package/dist/lib/runtime-sources/src/scr_json.test.c +339 -1
  394. package/dist/lib/runtime-sources/src/scr_json.test.ts +59 -25
  395. package/dist/lib/runtime-sources/src/scr_key.h +92 -0
  396. package/dist/lib/runtime-sources/src/scr_lib.c +256 -136
  397. package/dist/lib/runtime-sources/src/scr_mailbox.c +233 -0
  398. package/dist/lib/runtime-sources/src/scr_mailbox.h +28 -0
  399. package/dist/lib/runtime-sources/src/scr_mailbox.test.c +86 -0
  400. package/dist/lib/runtime-sources/src/scr_mailbox.test.ts +46 -0
  401. package/dist/lib/runtime-sources/src/scr_map.c +240 -107
  402. package/dist/lib/runtime-sources/src/scr_message.c +443 -0
  403. package/dist/lib/runtime-sources/src/scr_message.h +14 -0
  404. package/dist/lib/runtime-sources/src/scr_message.test.c +152 -0
  405. package/dist/lib/runtime-sources/src/scr_message.test.ts +44 -0
  406. package/dist/lib/runtime-sources/src/scr_net.c +14 -12
  407. package/dist/lib/runtime-sources/src/scr_number.c +36 -4
  408. package/dist/lib/runtime-sources/src/scr_numeric.h +25 -0
  409. package/dist/lib/runtime-sources/src/scr_numeric.test.c +37 -0
  410. package/dist/lib/runtime-sources/src/scr_numeric.test.ts +33 -0
  411. package/dist/lib/runtime-sources/src/scr_object.c +9 -4
  412. package/dist/lib/runtime-sources/src/scr_path.c +1 -1
  413. package/dist/lib/runtime-sources/src/scr_readline.c +8 -8
  414. package/dist/lib/runtime-sources/src/scr_regex.c +351 -167
  415. package/dist/lib/runtime-sources/src/scr_runtime.h +207 -34
  416. package/dist/lib/runtime-sources/src/scr_shared.c +280 -0
  417. package/dist/lib/runtime-sources/src/scr_shared.test.c +113 -0
  418. package/dist/lib/runtime-sources/src/scr_shared.test.ts +45 -0
  419. package/dist/lib/runtime-sources/src/scr_stream.c +9 -9
  420. package/dist/lib/runtime-sources/src/scr_string.c +365 -141
  421. package/dist/lib/runtime-sources/src/scr_test.c +8 -8
  422. package/dist/lib/runtime-sources/src/scr_tls.c +12 -12
  423. package/dist/lib/runtime-sources/src/scr_tls_ca.c +34 -12
  424. package/dist/lib/runtime-sources/src/scr_union.c +10 -5
  425. package/dist/lib/runtime-sources/src/scr_util_compare.c +1 -0
  426. package/dist/lib/runtime-sources/src/scr_util_style.c +11 -11
  427. package/dist/lib/runtime-sources/src/scr_watch.c +16 -6
  428. package/dist/lib/runtime-sources/src/scr_worker.c +232 -0
  429. package/dist/lib/runtime-sources/src/scr_worker.h +42 -0
  430. package/dist/lib/runtime-sources/src/scr_worker.test.c +115 -0
  431. package/dist/lib/runtime-sources/src/scr_worker.test.ts +49 -0
  432. package/dist/lib/runtime-sources/src/scr_worker_events.c +443 -0
  433. package/dist/lib/runtime-sources/src/scr_zlib.c +6 -0
  434. package/package.json +1 -1
@@ -15,6 +15,7 @@
15
15
  * keep the lean 1-word header and never touch the collector.
16
16
  */
17
17
  #include "scr_runtime.h"
18
+ #include "scr_key.h"
18
19
 
19
20
  #include <stdio.h>
20
21
  #include <stdlib.h>
@@ -46,27 +47,14 @@ static uint64_t scr_map_f64_bits(double k) {
46
47
  return bits;
47
48
  }
48
49
 
49
- static uint64_t scr_map_fnv1a(const unsigned char *bytes, size_t n) {
50
- uint64_t h = UINT64_C(0xcbf29ce484222325);
51
- for (size_t i = 0; i < n; i++) {
52
- h ^= bytes[i];
53
- h *= UINT64_C(0x100000001b3);
54
- }
55
- return h;
56
- }
57
-
58
50
  static uint64_t scr_map_hash_str(const ScrStr *k) {
59
- return scr_map_fnv1a((const unsigned char *)k->data, k->len);
51
+ return scr_key_hash(k->data, k->len);
60
52
  }
61
53
 
62
54
  /* Mix the complete normalized number or identity word. Float exponents
63
55
  * and aligned pointers need high bits to reach the low bucket-index bits. */
64
56
  static uint64_t scr_map_hash_word(uint64_t value) {
65
- value ^= value >> 30;
66
- value *= UINT64_C(0xbf58476d1ce4e5b9);
67
- value ^= value >> 27;
68
- value *= UINT64_C(0x94d049bb133111eb);
69
- return value ^ (value >> 31);
57
+ return scr_key_mix(value);
70
58
  }
71
59
 
72
60
  /* ── slot packing (8-byte slots, like ScrArr) ──────────────────────────── */
@@ -199,27 +187,186 @@ static bool scr_map_key_eq(const ScrMap *m, uint64_t stored, uint64_t probe) {
199
187
  * A zero entry hash marks a tombstone; cached hashes reject unrelated keys
200
188
  * before equality and survive table growth without hashing the keys again.
201
189
  * Remap zero to one so every live entry has a nonzero hash. */
202
- static size_t scr_map_probe(const ScrMap *m, uint64_t hash, uint64_t key) {
190
+ typedef enum { SCR_MAP_LOOKUP_STR, SCR_MAP_LOOKUP_SPAN, SCR_MAP_LOOKUP_WORD, SCR_MAP_LOOKUP_GENERIC } ScrMapLookup;
191
+
192
+ typedef struct { const char *bytes; size_t length; } ScrMapSpan;
193
+
194
+ /* Choose equality once per operation. Inlining the traversal with a constant
195
+ * lookup kind keeps the ordinary string/word probe free of key-kind dispatch,
196
+ * while boxed keys retain their complete value/identity semantics. */
197
+ static inline bool scr_map_lookup_eq(const ScrMap *m, uint64_t stored, uint64_t key,
198
+ ScrMapLookup lookup) {
199
+ if (lookup == SCR_MAP_LOOKUP_WORD) return stored == key;
200
+ if (lookup == SCR_MAP_LOOKUP_SPAN) {
201
+ const ScrStr *a = scr_map_slot_to_ptr(stored);
202
+ const ScrMapSpan *b = scr_map_slot_to_ptr(key);
203
+ return a->len == b->length && scr_key_equal(a->data, b->bytes, a->len);
204
+ }
205
+ if (lookup == SCR_MAP_LOOKUP_STR) {
206
+ const ScrStr *a = scr_map_slot_to_ptr(stored);
207
+ const ScrStr *b = scr_map_slot_to_ptr(key);
208
+ return a == b || (a->len == b->len && scr_key_equal(a->data, b->data, a->len));
209
+ }
210
+ return scr_map_key_eq(m, stored, key);
211
+ }
212
+
213
+ /* Compact tables keep a hash fingerprint beside each 24-bit entry index.
214
+ * Rejecting a collision here avoids loading an unrelated ordered entry.
215
+ * Larger tables keep full-width indices; collection size remains limited
216
+ * only by the allocator. Zero is empty in compact tables, so store index+1. */
217
+ #ifndef SCR_MAP_COMPACT_BUCKETS
218
+ #define SCR_MAP_COMPACT_BUCKETS ((size_t)1 << 24)
219
+ #endif
220
+ _Static_assert(SCR_MAP_COMPACT_BUCKETS >= 16 &&
221
+ SCR_MAP_COMPACT_BUCKETS <= ((size_t)1 << 24) &&
222
+ (SCR_MAP_COMPACT_BUCKETS & (SCR_MAP_COMPACT_BUCKETS - 1)) == 0,
223
+ "compact bucket capacity must leave room for every tagged index");
224
+ #define SCR_MAP_INDEX_MASK UINT32_C(0x00ffffff)
225
+
226
+ static bool scr_map_compact_buckets(size_t count) {
227
+ return count <= SCR_MAP_COMPACT_BUCKETS;
228
+ }
229
+
230
+ static size_t scr_map_bucket(const ScrMap *m, size_t slot) {
231
+ if (scr_map_compact_buckets(m->nbuckets)) {
232
+ uint32_t index = ((const uint32_t *)m->buckets)[slot] & SCR_MAP_INDEX_MASK;
233
+ return index ? (size_t)index - 1 : SCR_MAP_EMPTY;
234
+ }
235
+ return ((const size_t *)m->buckets)[slot];
236
+ }
237
+
238
+ static void scr_map_bucket_set(ScrMap *m, size_t slot, size_t entry, uint64_t hash) {
239
+ if (scr_map_compact_buckets(m->nbuckets)) {
240
+ ((uint32_t *)m->buckets)[slot] = (uint32_t)(entry + 1) | (uint32_t)(hash >> 32 & UINT32_C(0xff000000));
241
+ } else {
242
+ ((size_t *)m->buckets)[slot] = entry;
243
+ }
244
+ }
245
+
246
+ static inline __attribute__((always_inline)) size_t scr_map_probe_with(
247
+ const ScrMap *m, uint64_t hash, uint64_t key, ScrMapLookup lookup) {
203
248
  if (m->nbuckets == 0) return SCR_MAP_EMPTY;
204
249
  size_t mask = m->nbuckets - 1;
250
+ if (scr_map_compact_buckets(m->nbuckets)) {
251
+ const uint32_t *buckets = m->buckets;
252
+ uint32_t tag = (uint32_t)(hash >> 32 & UINT32_C(0xff000000));
253
+ for (size_t i = hash & mask;; i = (i + 1) & mask) {
254
+ uint32_t bucket = buckets[i];
255
+ if (!bucket) return i;
256
+ if ((bucket & ~SCR_MAP_INDEX_MASK) != tag) continue;
257
+ size_t b = (bucket & SCR_MAP_INDEX_MASK) - 1;
258
+ if (m->entries[b].hash == hash && scr_map_lookup_eq(m, m->entries[b].key, key, lookup)) return i;
259
+ }
260
+ }
261
+ const size_t *buckets = m->buckets;
205
262
  for (size_t i = hash & mask;; i = (i + 1) & mask) {
206
- size_t b = m->buckets[i];
263
+ size_t b = buckets[i];
207
264
  if (b == SCR_MAP_EMPTY) return i;
208
- if (m->entries[b].hash == hash && scr_map_key_eq(m, m->entries[b].key, key)) return i;
265
+ if (m->entries[b].hash == hash && scr_map_lookup_eq(m, m->entries[b].key, key, lookup)) return i;
266
+ }
267
+ }
268
+
269
+ #define SCR_MAP_LINEAR_LIMIT 4
270
+
271
+ /* Small collections keep only their ordered entries. Cached hashes make
272
+ * the bounded scan cheap without allocating a separate bucket table. */
273
+ static inline __attribute__((always_inline)) size_t scr_map_find_with(
274
+ const ScrMap *m, uint64_t hash, uint64_t key, ScrMapLookup lookup) {
275
+ if (m->nlive == 0) return SCR_MAP_EMPTY;
276
+ hash = hash ? hash : 1;
277
+ if (m->nbuckets == 0) {
278
+ for (size_t e = 0; e < m->nentries; e++) {
279
+ if (m->entries[e].hash == hash && scr_map_lookup_eq(m, m->entries[e].key, key, lookup)) return e;
280
+ }
281
+ return SCR_MAP_EMPTY;
282
+ }
283
+ size_t slot = scr_map_probe_with(m, hash, key, lookup);
284
+ return slot == SCR_MAP_EMPTY ? SCR_MAP_EMPTY : scr_map_bucket(m, slot);
285
+ }
286
+
287
+ static ScrMapLookup scr_map_lookup_kind(const ScrMap *m) {
288
+ switch (m->key_kind) {
289
+ case SCR_MAP_KEY_STR: return SCR_MAP_LOOKUP_STR;
290
+ case SCR_MAP_KEY_F64:
291
+ case SCR_MAP_KEY_BOOL:
292
+ case SCR_MAP_KEY_REF:
293
+ case SCR_MAP_KEY_NULL:
294
+ case SCR_MAP_KEY_UNDEFINED: return SCR_MAP_LOOKUP_WORD;
295
+ default: return SCR_MAP_LOOKUP_GENERIC;
296
+ }
297
+ }
298
+
299
+ static size_t scr_map_probe(const ScrMap *m, uint64_t hash, uint64_t key) {
300
+ switch (scr_map_lookup_kind(m)) {
301
+ case SCR_MAP_LOOKUP_STR: return scr_map_probe_with(m, hash, key, SCR_MAP_LOOKUP_STR);
302
+ case SCR_MAP_LOOKUP_WORD: return scr_map_probe_with(m, hash, key, SCR_MAP_LOOKUP_WORD);
303
+ default: return scr_map_probe_with(m, hash, key, SCR_MAP_LOOKUP_GENERIC);
209
304
  }
210
305
  }
211
306
 
212
307
  static size_t scr_map_find(const ScrMap *m, uint64_t hash, uint64_t key) {
213
- size_t slot = scr_map_probe(m, hash ? hash : 1, key);
214
- return slot == SCR_MAP_EMPTY ? SCR_MAP_EMPTY : m->buckets[slot];
308
+ switch (scr_map_lookup_kind(m)) {
309
+ case SCR_MAP_LOOKUP_STR: return scr_map_find_with(m, hash, key, SCR_MAP_LOOKUP_STR);
310
+ case SCR_MAP_LOOKUP_WORD: return scr_map_find_with(m, hash, key, SCR_MAP_LOOKUP_WORD);
311
+ default: return scr_map_find_with(m, hash, key, SCR_MAP_LOOKUP_GENERIC);
312
+ }
313
+ }
314
+
315
+ static size_t scr_map_find_f64(const ScrMap *m, double key) {
316
+ if (m->nlive == 0) return SCR_MAP_EMPTY;
317
+ uint64_t k = scr_map_f64_bits(key);
318
+ return scr_map_find_with(m, scr_map_hash_word(k), k, SCR_MAP_LOOKUP_WORD);
319
+ }
320
+
321
+ static size_t scr_map_find_str(const ScrMap *m, const ScrStr *key) {
322
+ if (m->nlive == 0) return SCR_MAP_EMPTY;
323
+ if (m->nbuckets == 0) {
324
+ uint64_t k = scr_map_slot_from_ptr((void *)key);
325
+ for (size_t e = 0; e < m->nentries; e++) {
326
+ if (m->entries[e].hash && scr_map_lookup_eq(m, m->entries[e].key, k, SCR_MAP_LOOKUP_STR)) return e;
327
+ }
328
+ return SCR_MAP_EMPTY;
329
+ }
330
+ return scr_map_find_with(m, scr_map_hash_str(key), scr_map_slot_from_ptr((void *)key),
331
+ SCR_MAP_LOOKUP_STR);
332
+ }
333
+
334
+ /* A transient input span follows the same hash, equality and ownership
335
+ * rules as a string key without allocating or copying the probe. */
336
+ static size_t scr_map_find_span(const ScrMap *m, const char *bytes, size_t length) {
337
+ if (m->nlive == 0) return SCR_MAP_EMPTY;
338
+ ScrMapSpan key = { bytes, length };
339
+ return scr_map_find_with(m, scr_key_hash(bytes, length), scr_map_slot_from_ptr(&key),
340
+ SCR_MAP_LOOKUP_SPAN);
341
+ }
342
+
343
+ bool scr_map_get_span_f64(const ScrMap *m, const char *bytes, size_t length, double *out) {
344
+ size_t e = scr_map_find_span(m, bytes, length);
345
+ if (e == SCR_MAP_EMPTY) return false;
346
+ *out = scr_map_slot_to_f64(m->entries[e].val);
347
+ return true;
348
+ }
349
+
350
+ bool scr_map_get_span_bool(const ScrMap *m, const char *bytes, size_t length, bool *out) {
351
+ size_t e = scr_map_find_span(m, bytes, length);
352
+ if (e == SCR_MAP_EMPTY) return false;
353
+ *out = m->entries[e].val != 0;
354
+ return true;
355
+ }
356
+
357
+ void *scr_map_get_span_ref(const ScrMap *m, const char *bytes, size_t length) {
358
+ size_t e = scr_map_find_span(m, bytes, length);
359
+ return e == SCR_MAP_EMPTY ? NULL : m->val_retain(scr_map_slot_to_ptr(m->entries[e].val));
215
360
  }
216
361
 
217
362
  /* Rebuild the bucket table (size must be a power of two >= 2 * nentries):
218
363
  * only live entries are inserted, in dense order — dead markers vanish. */
219
364
  static void scr_map_rebuild_buckets(ScrMap *m, size_t nbuckets) {
220
- size_t *buckets = malloc(nbuckets * sizeof *buckets);
365
+ bool compact = scr_map_compact_buckets(nbuckets);
366
+ size_t bytes = nbuckets * (compact ? sizeof(uint32_t) : sizeof(size_t));
367
+ void *buckets = malloc(bytes);
221
368
  if (!buckets) scr_map_oom();
222
- for (size_t i = 0; i < nbuckets; i++) buckets[i] = SCR_MAP_EMPTY;
369
+ memset(buckets, compact ? 0 : 0xff, bytes);
223
370
  free(m->buckets);
224
371
  m->buckets = buckets;
225
372
  m->nbuckets = nbuckets;
@@ -228,8 +375,8 @@ static void scr_map_rebuild_buckets(ScrMap *m, size_t nbuckets) {
228
375
  uint64_t hash = m->entries[e].hash;
229
376
  if (!hash) continue;
230
377
  size_t i = hash & mask;
231
- while (buckets[i] != SCR_MAP_EMPTY) i = (i + 1) & mask;
232
- buckets[i] = e;
378
+ while (scr_map_bucket(m, i) != SCR_MAP_EMPTY) i = (i + 1) & mask;
379
+ scr_map_bucket_set(m, i, e, hash);
233
380
  }
234
381
  }
235
382
 
@@ -248,12 +395,15 @@ static void scr_map_compact(ScrMap *m) {
248
395
  * reuse their storage) and grows otherwise; while an iteration is active it
249
396
  * ONLY grows — indices must stay stable under callback mutation. */
250
397
  static void scr_map_reserve_append(ScrMap *m) {
251
- if (m->nentries < m->ecap && m->nbuckets >= 2 * (m->nentries + 1)) return;
252
- if (m->iter_depth == 0 && m->nlive <= m->nentries / 2 && m->nentries > 0) {
398
+ if (m->nentries < m->ecap &&
399
+ ((m->nbuckets == 0 && m->nentries < SCR_MAP_LINEAR_LIMIT) ||
400
+ m->nbuckets >= 2 * (m->nentries + 1))) return;
401
+ if (m->iter_depth == 0 && m->nentries > 0 &&
402
+ (m->nbuckets == 0 ? m->nlive < m->nentries : m->nlive <= m->nentries / 2)) {
253
403
  scr_map_compact(m);
254
404
  }
255
405
  if (m->nentries == m->ecap) {
256
- size_t cap = m->ecap ? m->ecap : 8;
406
+ size_t cap = m->ecap ? m->ecap : 4;
257
407
  while (cap < m->nentries + 1) {
258
408
  if (cap > SIZE_MAX / 2 / sizeof(ScrMapEntry)) scr_map_oom();
259
409
  cap *= 2;
@@ -263,6 +413,7 @@ static void scr_map_reserve_append(ScrMap *m) {
263
413
  m->entries = entries;
264
414
  m->ecap = cap;
265
415
  }
416
+ if (m->nbuckets == 0 && m->nentries < SCR_MAP_LINEAR_LIMIT) return;
266
417
  if (m->nbuckets < 2 * (m->nentries + 1)) {
267
418
  size_t nbuckets = m->nbuckets ? m->nbuckets : 16;
268
419
  while (nbuckets < 2 * (m->nentries + 1)) {
@@ -367,23 +518,28 @@ ScrMap *scr_map_retain(ScrMap *m) {
367
518
  return m;
368
519
  }
369
520
 
521
+ static void scr_map_destroy(void *object) {
522
+ ScrMap *m = object;
523
+ scr_weak_dispose(m);
524
+ for (size_t e = 0; e < m->nentries; e++) {
525
+ if (!m->entries[e].hash) continue;
526
+ scr_map_release_key(m, m->entries[e].key);
527
+ scr_map_release_val(m, m->entries[e].val);
528
+ }
529
+ free(m->entries);
530
+ free(m->buckets);
531
+ #ifdef SCR_RC_AUDIT
532
+ scr_live_maps--;
533
+ #endif
534
+ if (m->key_trace || m->val_trace) scr_cyc_free(m);
535
+ else free(m);
536
+ }
537
+
370
538
  void scr_map_release(ScrMap *m) {
371
539
  if (!m || m->rc == SIZE_MAX) return; /* NULL: an uninitialized `let` local */
372
540
  if (--m->rc == 0) {
373
- scr_weak_dispose(m);
374
541
  if (m->key_trace || m->val_trace) scr_cyc_on_dead(m);
375
- for (size_t e = 0; e < m->nentries; e++) {
376
- if (!m->entries[e].hash) continue;
377
- scr_map_release_key(m, m->entries[e].key);
378
- scr_map_release_val(m, m->entries[e].val);
379
- }
380
- free(m->entries);
381
- free(m->buckets);
382
- #ifdef SCR_RC_AUDIT
383
- scr_live_maps--;
384
- #endif
385
- if (m->key_trace || m->val_trace) scr_cyc_free(m);
386
- else free(m);
542
+ scr_rc_destroy(m, scr_map_destroy);
387
543
  } else if (m->key_trace || m->val_trace) {
388
544
  scr_cyc_on_release(m); /* possible cycle root; may collect — m is done */
389
545
  }
@@ -411,19 +567,21 @@ void scr_map_clear(ScrMap *m) {
411
567
  * after the clear append past them and ARE visited (Node-exact). */
412
568
  m->nentries = 0;
413
569
  }
414
- for (size_t i = 0; i < m->nbuckets; i++) m->buckets[i] = SCR_MAP_EMPTY;
570
+ if (m->nbuckets) {
571
+ bool compact = scr_map_compact_buckets(m->nbuckets);
572
+ memset(m->buckets, compact ? 0 : 0xff,
573
+ m->nbuckets * (compact ? sizeof(uint32_t) : sizeof(size_t)));
574
+ }
415
575
  }
416
576
 
417
577
  /* ── has / delete ──────────────────────────────────────────────────────── */
418
578
 
419
579
  bool scr_map_has_f64(const ScrMap *m, double key) {
420
- uint64_t k = scr_map_f64_bits(key);
421
- return scr_map_find(m, scr_map_hash_word(k), k) != SCR_MAP_EMPTY;
580
+ return scr_map_find_f64(m, key) != SCR_MAP_EMPTY;
422
581
  }
423
582
 
424
583
  bool scr_map_has_str(const ScrMap *m, const ScrStr *key) {
425
- uint64_t k = scr_map_slot_from_ptr((void *)key);
426
- return scr_map_find(m, scr_map_hash_str(key), k) != SCR_MAP_EMPTY;
584
+ return scr_map_find_str(m, key) != SCR_MAP_EMPTY;
427
585
  }
428
586
 
429
587
  static bool scr_map_delete_found(ScrMap *m, size_t e) {
@@ -436,19 +594,21 @@ static bool scr_map_delete_found(ScrMap *m, size_t e) {
436
594
  }
437
595
 
438
596
  bool scr_map_delete_f64(ScrMap *m, double key) {
439
- uint64_t k = scr_map_f64_bits(key);
440
- return scr_map_delete_found(m, scr_map_find(m, scr_map_hash_word(k), k));
597
+ return scr_map_delete_found(m, scr_map_find_f64(m, key));
441
598
  }
442
599
 
443
600
  bool scr_map_delete_str(ScrMap *m, const ScrStr *key) {
444
- uint64_t k = scr_map_slot_from_ptr((void *)key);
445
- return scr_map_delete_found(m, scr_map_find(m, scr_map_hash_str(key), k));
601
+ return scr_map_delete_found(m, scr_map_find_str(m, key));
446
602
  }
447
603
 
448
604
  /* REF keys: identity hashing over the pointer bits (see the header's
449
605
  * SCR_MAP_KEY_REF note). Probes never retain; storage does. */
450
606
  static size_t scr_map_find_ref(const ScrMap *m, const void *key) {
607
+ if (m->nlive == 0) return SCR_MAP_EMPTY;
451
608
  uint64_t k = scr_map_slot_from_ptr((void *)key);
609
+ if (m->key_kind == SCR_MAP_KEY_REF) {
610
+ return scr_map_find_with(m, scr_map_hash_word(k), k, SCR_MAP_LOOKUP_WORD);
611
+ }
452
612
  return scr_map_find(m, scr_map_hash_key(m, k), k);
453
613
  }
454
614
 
@@ -469,7 +629,7 @@ bool scr_map_delete_ref(ScrMap *m, const void *key) {
469
629
  static void scr_map_set(ScrMap *m, uint64_t hash, uint64_t key, uint64_t val) {
470
630
  hash = hash ? hash : 1;
471
631
  size_t slot = scr_map_probe(m, hash, key);
472
- size_t e = slot == SCR_MAP_EMPTY ? SCR_MAP_EMPTY : m->buckets[slot];
632
+ size_t e = m->nbuckets == 0 ? scr_map_find(m, hash, key) : scr_map_bucket(m, slot);
473
633
  if (e != SCR_MAP_EMPTY) {
474
634
  uint64_t old = m->entries[e].val;
475
635
  m->entries[e].val = val; /* unlink before releasing (cycle collector) */
@@ -480,10 +640,10 @@ static void scr_map_set(ScrMap *m, uint64_t hash, uint64_t key, uint64_t val) {
480
640
  scr_map_reserve_append(m);
481
641
  /* Growth or compaction can move the insertion bucket. Otherwise keep the
482
642
  * empty slot from the first probe instead of walking the chain twice. */
483
- if (m->nentries != old_entries || m->nbuckets != old_buckets) {
643
+ if (m->nbuckets && (m->nentries != old_entries || m->nbuckets != old_buckets)) {
484
644
  size_t mask = m->nbuckets - 1;
485
645
  slot = hash & mask;
486
- while (m->buckets[slot] != SCR_MAP_EMPTY) slot = (slot + 1) & mask;
646
+ while (scr_map_bucket(m, slot) != SCR_MAP_EMPTY) slot = (slot + 1) & mask;
487
647
  }
488
648
  size_t idx = m->nentries++;
489
649
  m->entries[idx].key = key;
@@ -510,7 +670,7 @@ static void scr_map_set(ScrMap *m, uint64_t hash, uint64_t key, uint64_t val) {
510
670
  } else if (scr_map_ref_key(m->key_kind)) {
511
671
  m->key_retain(scr_map_slot_to_ptr(key)); /* key is borrowed */
512
672
  }
513
- m->buckets[slot] = idx;
673
+ if (m->nbuckets) scr_map_bucket_set(m, slot, idx, hash);
514
674
  }
515
675
 
516
676
  static void scr_map_set_f64_key(ScrMap *m, double key, uint64_t val) {
@@ -567,15 +727,6 @@ ScrMap *scr_set_new_ref(void *(*elem_retain)(void *), void (*elem_release)(void
567
727
 
568
728
  /* ── get ───────────────────────────────────────────────────────────────── */
569
729
 
570
- static size_t scr_map_find_f64(const ScrMap *m, double key) {
571
- uint64_t k = scr_map_f64_bits(key);
572
- return scr_map_find(m, scr_map_hash_word(k), k);
573
- }
574
-
575
- static size_t scr_map_find_str(const ScrMap *m, const ScrStr *key) {
576
- return scr_map_find(m, scr_map_hash_str(key), scr_map_slot_from_ptr((void *)key));
577
- }
578
-
579
730
  bool scr_map_get_f64_f64(const ScrMap *m, double key, double *out) {
580
731
  size_t e = scr_map_find_f64(m, key);
581
732
  if (e == SCR_MAP_EMPTY) return false;
@@ -638,8 +789,9 @@ void *scr_map_get_ref_ref(const ScrMap *m, const void *key) {
638
789
 
639
790
  /* Boolean keys use unboxed 0/1 slots and the same probe path. */
640
791
  static size_t scr_map_find_bool(const ScrMap *m, bool key) {
792
+ if (m->nlive == 0) return SCR_MAP_EMPTY;
641
793
  uint64_t slot = key ? 1 : 0;
642
- return scr_map_find(m, scr_map_hash_word(slot), slot);
794
+ return scr_map_find_with(m, scr_map_hash_word(slot), slot, SCR_MAP_LOOKUP_WORD);
643
795
  }
644
796
 
645
797
  bool scr_map_has_bool(const ScrMap *m, bool key) {
@@ -792,6 +944,7 @@ ScrMap *scr_map_clone(const ScrMap *source, bool keys_only) {
792
944
  else if (out->val_kind == SCR_MAP_VAL_REF) out->val_retain(scr_map_slot_to_ptr(copy->val));
793
945
  }
794
946
  out->nlive = count;
947
+ if (count <= SCR_MAP_LINEAR_LIMIT) return out;
795
948
  size_t buckets = 16;
796
949
  while (buckets < 2 * count) {
797
950
  if (buckets > SIZE_MAX / 2 / sizeof(size_t)) scr_map_oom();
@@ -890,59 +1043,39 @@ void scr_set_add_all(ScrMap *set, ScrArr *values) {
890
1043
  /* Canonical array index test: "0".."4294967294" — digits only, no leading
891
1044
  * zero (except "0" itself), value <= 2^32 - 2. JS orders these OWN keys
892
1045
  * first, ascending numerically, before every other string key. */
893
- static bool scr_map_key_array_index(const ScrStr *k, uint32_t *out) {
894
- size_t n = k->len;
895
- if (n == 0 || n > 10) return false;
896
- const char *s = k->data;
897
- if (s[0] == '0' && n > 1) return false;
898
- uint64_t v = 0;
899
- for (size_t i = 0; i < n; i++) {
900
- if (s[i] < '0' || s[i] > '9') return false;
901
- v = v * 10 + (uint64_t)(s[i] - '0');
902
- }
903
- if (v > UINT64_C(4294967294)) return false;
904
- *out = (uint32_t)v;
905
- return true;
1046
+ static bool scr_map_key_array_index(const ScrStr *key, uint32_t *out) {
1047
+ return scr_key_array_index(key->data, key->len, out);
906
1048
  }
907
1049
 
908
- /* The live STRING keys of `m` in JS OWN-KEY ORDER (Object.keys over the
909
- * index-signature overflow): integer-like keys (canonical array indices)
910
- * first in ascending numeric order, then the rest in insertion order.
911
- * Returns a fresh ScrStr* array (+1); the map is borrowed. Insertion sort
912
- * over the integer-like subset — overflow maps are small, and ties are
913
- * impossible (keys are unique). */
1050
+ /* Enumerate numeric keys in ascending order, then other keys in insertion
1051
+ * order. Scratch entries refer to stable map indices, not copied strings. */
914
1052
  ScrArr *scr_map_keys_js_order(const ScrMap *m) {
915
- size_t n = m->nentries;
916
1053
  ScrArr *out = scr_arr_new(SCR_ELEM_STR, m->nlive);
917
- size_t nidx = 0;
918
- struct { uint32_t v; ScrStr *k; } *idx = NULL;
919
- for (size_t i = 0; i < n; i++) {
1054
+ if (m->nlive > SIZE_MAX / sizeof(ScrKeyIndex)) scr_map_oom();
1055
+ ScrKeyIndex *indices = NULL;
1056
+ size_t count = 0;
1057
+ for (size_t i = 0; i < m->nentries; i++) {
920
1058
  if (!m->entries[i].hash) continue;
921
- ScrStr *k = (ScrStr *)scr_map_slot_to_ptr(m->entries[i].key);
922
- uint32_t v;
923
- if (!scr_map_key_array_index(k, &v)) continue;
924
- if (nidx % 16 == 0) {
925
- idx = realloc(idx, (nidx + 16) * sizeof *idx);
926
- if (!idx) scr_map_oom();
927
- }
928
- size_t j = nidx++;
929
- while (j > 0 && idx[j - 1].v > v) {
930
- idx[j] = idx[j - 1];
931
- j--;
1059
+ ScrStr *key = scr_map_slot_to_ptr(m->entries[i].key);
1060
+ uint32_t index;
1061
+ if (!scr_map_key_array_index(key, &index)) continue;
1062
+ if (!indices) {
1063
+ indices = malloc(m->nlive * sizeof *indices);
1064
+ if (!indices) scr_map_oom();
932
1065
  }
933
- idx[j].v = v;
934
- idx[j].k = k;
1066
+ indices[count++] = (ScrKeyIndex){index, i};
935
1067
  }
936
- for (size_t i = 0; i < nidx; i++) {
937
- scr_arr_push_ref(out, scr_str_retain(idx[i].k));
1068
+ scr_key_index_sort(indices, count);
1069
+ for (size_t i = 0; i < count; i++) {
1070
+ ScrStr *key = scr_map_slot_to_ptr(m->entries[indices[i].entry].key);
1071
+ scr_arr_push_ref(out, scr_str_retain(key));
938
1072
  }
939
- free(idx);
940
- for (size_t i = 0; i < n; i++) {
1073
+ free(indices);
1074
+ for (size_t i = 0; i < m->nentries; i++) {
941
1075
  if (!m->entries[i].hash) continue;
942
- ScrStr *k = (ScrStr *)scr_map_slot_to_ptr(m->entries[i].key);
943
- uint32_t v;
944
- if (scr_map_key_array_index(k, &v)) continue;
945
- scr_arr_push_ref(out, scr_str_retain(k));
1076
+ ScrStr *key = scr_map_slot_to_ptr(m->entries[i].key);
1077
+ uint32_t index;
1078
+ if (!scr_map_key_array_index(key, &index)) scr_arr_push_ref(out, scr_str_retain(key));
946
1079
  }
947
1080
  return out;
948
1081
  }