@scriptc/cli-darwin-arm64 0.2.5 → 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 (417) 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 +57 -30
  5. package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
  6. package/dist/lib/llvm/package.json +1 -1
  7. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_array.o +0 -0
  8. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_assert.o +0 -0
  9. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_async.o +0 -0
  10. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
  11. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
  12. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_child.o +0 -0
  13. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_closure.o +0 -0
  14. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_console.o +0 -0
  15. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_context.o +0 -0
  16. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
  17. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
  18. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_error.o +0 -0
  19. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events.o +0 -0
  20. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
  21. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_exception.o +0 -0
  22. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
  23. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
  24. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_json.o +0 -0
  25. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_lib.o +0 -0
  26. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_map.o +0 -0
  27. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_number.o +0 -0
  28. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_object.o +0 -0
  29. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_readline.o +0 -0
  30. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_regex.o +0 -0
  31. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_shared.o +0 -0
  32. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_stream.o +0 -0
  33. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_string.o +0 -0
  34. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_tls.o +0 -0
  35. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_union.o +0 -0
  36. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_array.o +0 -0
  37. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_assert.o +0 -0
  38. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async.o +0 -0
  39. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async_dyn.o +0 -0
  40. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint.o +0 -0
  41. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint_assert.o +0 -0
  42. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes.o +0 -0
  43. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes_io.o +0 -0
  44. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_child.o +0 -0
  45. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_closure.o +0 -0
  46. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console.o +0 -0
  47. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console_native.o +0 -0
  48. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_context.o +0 -0
  49. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_copying.o +0 -0
  50. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_crypto_async.o +0 -0
  51. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_cycle.o +0 -0
  52. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dc.o +0 -0
  53. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dgram.o +0 -0
  54. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_handle.o +0 -0
  55. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_invoke.o +0 -0
  56. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_error.o +0 -0
  57. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events.o +0 -0
  58. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events_emitter.o +0 -0
  59. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_exception.o +0 -0
  60. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_fetch.o +0 -0
  61. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi.o +0 -0
  62. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi_queue.o +0 -0
  63. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_file_handle.o +0 -0
  64. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_grapheme.o +0 -0
  65. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http.o +0 -0
  66. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http2.o +0 -0
  67. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_inspect.o +0 -0
  68. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_json.o +0 -0
  69. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_lib.o +0 -0
  70. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_epoll.o +0 -0
  71. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_kqueue.o +0 -0
  72. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  73. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_map.o +0 -0
  74. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_net.o +0 -0
  75. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_node_builtin.o +0 -0
  76. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_number.o +0 -0
  77. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_object.o +0 -0
  78. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_path.o +0 -0
  79. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_qs.o +0 -0
  80. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_readline.o +0 -0
  81. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_regex.o +0 -0
  82. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_shared.o +0 -0
  83. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_stream.o +0 -0
  84. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_string.o +0 -0
  85. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_symbol.o +0 -0
  86. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_test.o +0 -0
  87. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls.o +0 -0
  88. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls_ca.o +0 -0
  89. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_union.o +0 -0
  90. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url.o +0 -0
  91. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url_params.o +0 -0
  92. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util.o +0 -0
  93. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_compare.o +0 -0
  94. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_style.o +0 -0
  95. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_watch.o +0 -0
  96. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_zlib.o +0 -0
  97. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
  98. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
  99. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
  100. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
  101. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
  102. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
  103. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
  104. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
  105. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_context.o +0 -0
  106. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
  107. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
  108. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
  109. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
  110. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
  111. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
  112. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
  113. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
  114. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
  115. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
  116. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
  117. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
  118. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
  119. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
  120. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
  121. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_shared.o +0 -0
  122. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
  123. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
  124. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
  125. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
  126. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  127. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  128. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  129. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_mailbox.o +0 -0
  130. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_message.o +0 -0
  131. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker.o +0 -0
  132. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker_events.o +0 -0
  133. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
  134. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
  135. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
  136. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
  137. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
  138. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_context.o +0 -0
  139. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
  140. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_error.o +0 -0
  141. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_events_emitter.o +0 -0
  142. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
  143. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
  144. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
  145. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
  146. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
  147. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
  148. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
  149. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_shared.o +0 -0
  150. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
  151. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
  152. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  153. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_array.o +0 -0
  154. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
  155. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
  156. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
  157. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
  158. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_context.o +0 -0
  159. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
  160. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_error.o +0 -0
  161. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
  162. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
  163. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_json.o +0 -0
  164. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
  165. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_map.o +0 -0
  166. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_number.o +0 -0
  167. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_object.o +0 -0
  168. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
  169. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_shared.o +0 -0
  170. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_string.o +0 -0
  171. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_union.o +0 -0
  172. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  173. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
  174. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
  175. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
  176. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
  177. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
  178. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
  179. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_context.o +0 -0
  180. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
  181. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
  182. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
  183. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
  184. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
  185. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
  186. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
  187. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
  188. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
  189. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
  190. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
  191. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
  192. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_shared.o +0 -0
  193. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
  194. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
  195. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
  196. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  197. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
  198. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
  199. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
  200. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
  201. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
  202. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
  203. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_context.o +0 -0
  204. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
  205. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
  206. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
  207. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
  208. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
  209. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
  210. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
  211. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
  212. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
  213. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
  214. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
  215. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
  216. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_shared.o +0 -0
  217. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
  218. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
  219. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
  220. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  221. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_array.o +0 -0
  222. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_assert.o +0 -0
  223. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_async.o +0 -0
  224. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes.o +0 -0
  225. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
  226. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_child.o +0 -0
  227. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_closure.o +0 -0
  228. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_console.o +0 -0
  229. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_context.o +0 -0
  230. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_cycle.o +0 -0
  231. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_dgram.o +0 -0
  232. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_error.o +0 -0
  233. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events.o +0 -0
  234. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
  235. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_exception.o +0 -0
  236. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_fetch.o +0 -0
  237. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
  238. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_json.o +0 -0
  239. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_lib.o +0 -0
  240. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_map.o +0 -0
  241. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_number.o +0 -0
  242. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_object.o +0 -0
  243. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_readline.o +0 -0
  244. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_regex.o +0 -0
  245. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_shared.o +0 -0
  246. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_stream.o +0 -0
  247. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_string.o +0 -0
  248. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_tls.o +0 -0
  249. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_union.o +0 -0
  250. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_array.o +0 -0
  251. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_assert.o +0 -0
  252. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async.o +0 -0
  253. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async_dyn.o +0 -0
  254. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint.o +0 -0
  255. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint_assert.o +0 -0
  256. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes.o +0 -0
  257. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes_io.o +0 -0
  258. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_child.o +0 -0
  259. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_closure.o +0 -0
  260. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console.o +0 -0
  261. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console_native.o +0 -0
  262. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_context.o +0 -0
  263. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_copying.o +0 -0
  264. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_crypto_async.o +0 -0
  265. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_cycle.o +0 -0
  266. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dc.o +0 -0
  267. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dgram.o +0 -0
  268. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_handle.o +0 -0
  269. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_invoke.o +0 -0
  270. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_error.o +0 -0
  271. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events.o +0 -0
  272. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events_emitter.o +0 -0
  273. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_exception.o +0 -0
  274. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_fetch.o +0 -0
  275. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi.o +0 -0
  276. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi_queue.o +0 -0
  277. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_file_handle.o +0 -0
  278. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_grapheme.o +0 -0
  279. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http.o +0 -0
  280. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http2.o +0 -0
  281. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_inspect.o +0 -0
  282. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_json.o +0 -0
  283. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_lib.o +0 -0
  284. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_epoll.o +0 -0
  285. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_kqueue.o +0 -0
  286. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  287. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_map.o +0 -0
  288. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_net.o +0 -0
  289. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_node_builtin.o +0 -0
  290. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_number.o +0 -0
  291. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_object.o +0 -0
  292. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_path.o +0 -0
  293. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_qs.o +0 -0
  294. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_readline.o +0 -0
  295. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_regex.o +0 -0
  296. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_shared.o +0 -0
  297. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_stream.o +0 -0
  298. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_string.o +0 -0
  299. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_symbol.o +0 -0
  300. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_test.o +0 -0
  301. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls.o +0 -0
  302. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls_ca.o +0 -0
  303. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_union.o +0 -0
  304. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url.o +0 -0
  305. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url_params.o +0 -0
  306. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util.o +0 -0
  307. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_compare.o +0 -0
  308. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_style.o +0 -0
  309. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_watch.o +0 -0
  310. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_zlib.o +0 -0
  311. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
  312. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
  313. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
  314. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
  315. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
  316. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
  317. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
  318. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
  319. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_context.o +0 -0
  320. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
  321. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
  322. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
  323. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
  324. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
  325. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
  326. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
  327. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
  328. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
  329. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
  330. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
  331. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
  332. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
  333. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
  334. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
  335. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_shared.o +0 -0
  336. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
  337. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
  338. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
  339. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
  340. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  341. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  342. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  343. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_mailbox.o +0 -0
  344. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_message.o +0 -0
  345. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker.o +0 -0
  346. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker_events.o +0 -0
  347. package/dist/lib/runtime-darwin-arm64/package.json +1 -1
  348. package/dist/lib/runtime-darwin-arm64/runtime-pack.json +3300 -772
  349. package/dist/lib/runtime-sources/package.json +1 -1
  350. package/dist/lib/runtime-sources/src/scr_array.c +212 -40
  351. package/dist/lib/runtime-sources/src/scr_assert.c +3 -3
  352. package/dist/lib/runtime-sources/src/scr_async.c +401 -71
  353. package/dist/lib/runtime-sources/src/scr_async_dyn.c +30 -30
  354. package/dist/lib/runtime-sources/src/scr_bytes.c +50 -5
  355. package/dist/lib/runtime-sources/src/scr_bytes_io.c +47 -32
  356. package/dist/lib/runtime-sources/src/scr_child.c +48 -30
  357. package/dist/lib/runtime-sources/src/scr_closure.c +21 -11
  358. package/dist/lib/runtime-sources/src/scr_console.c +27 -5
  359. package/dist/lib/runtime-sources/src/scr_context.c +167 -0
  360. package/dist/lib/runtime-sources/src/scr_context.test.c +118 -0
  361. package/dist/lib/runtime-sources/src/scr_context.test.ts +47 -0
  362. package/dist/lib/runtime-sources/src/scr_copying.c +1 -0
  363. package/dist/lib/runtime-sources/src/scr_cycle.c +112 -12
  364. package/dist/lib/runtime-sources/src/scr_dc.c +8 -8
  365. package/dist/lib/runtime-sources/src/scr_dgram.c +10 -7
  366. package/dist/lib/runtime-sources/src/scr_error.c +26 -14
  367. package/dist/lib/runtime-sources/src/scr_events.c +45 -31
  368. package/dist/lib/runtime-sources/src/scr_events_emitter.c +34 -1
  369. package/dist/lib/runtime-sources/src/scr_exception.c +26 -7
  370. package/dist/lib/runtime-sources/src/scr_fetch.c +23 -20
  371. package/dist/lib/runtime-sources/src/scr_fetch_curl.c +1 -1
  372. package/dist/lib/runtime-sources/src/scr_ffi.c +3 -3
  373. package/dist/lib/runtime-sources/src/scr_file_handle.c +1 -0
  374. package/dist/lib/runtime-sources/src/scr_http.c +20 -16
  375. package/dist/lib/runtime-sources/src/scr_http2.c +10 -8
  376. package/dist/lib/runtime-sources/src/scr_inspect.c +1 -0
  377. package/dist/lib/runtime-sources/src/scr_island.c +1 -1
  378. package/dist/lib/runtime-sources/src/scr_json.c +179 -45
  379. package/dist/lib/runtime-sources/src/scr_json.test.c +16 -0
  380. package/dist/lib/runtime-sources/src/scr_json.test.ts +1 -0
  381. package/dist/lib/runtime-sources/src/scr_key.h +28 -4
  382. package/dist/lib/runtime-sources/src/scr_lib.c +124 -63
  383. package/dist/lib/runtime-sources/src/scr_mailbox.c +233 -0
  384. package/dist/lib/runtime-sources/src/scr_mailbox.h +28 -0
  385. package/dist/lib/runtime-sources/src/scr_mailbox.test.c +86 -0
  386. package/dist/lib/runtime-sources/src/scr_mailbox.test.ts +46 -0
  387. package/dist/lib/runtime-sources/src/scr_map.c +195 -46
  388. package/dist/lib/runtime-sources/src/scr_message.c +443 -0
  389. package/dist/lib/runtime-sources/src/scr_message.h +14 -0
  390. package/dist/lib/runtime-sources/src/scr_message.test.c +152 -0
  391. package/dist/lib/runtime-sources/src/scr_message.test.ts +44 -0
  392. package/dist/lib/runtime-sources/src/scr_net.c +14 -12
  393. package/dist/lib/runtime-sources/src/scr_number.c +34 -0
  394. package/dist/lib/runtime-sources/src/scr_object.c +9 -4
  395. package/dist/lib/runtime-sources/src/scr_path.c +1 -1
  396. package/dist/lib/runtime-sources/src/scr_readline.c +8 -8
  397. package/dist/lib/runtime-sources/src/scr_regex.c +113 -0
  398. package/dist/lib/runtime-sources/src/scr_runtime.h +170 -28
  399. package/dist/lib/runtime-sources/src/scr_shared.c +280 -0
  400. package/dist/lib/runtime-sources/src/scr_shared.test.c +113 -0
  401. package/dist/lib/runtime-sources/src/scr_shared.test.ts +45 -0
  402. package/dist/lib/runtime-sources/src/scr_stream.c +9 -9
  403. package/dist/lib/runtime-sources/src/scr_string.c +224 -113
  404. package/dist/lib/runtime-sources/src/scr_test.c +8 -8
  405. package/dist/lib/runtime-sources/src/scr_tls.c +12 -12
  406. package/dist/lib/runtime-sources/src/scr_tls_ca.c +34 -12
  407. package/dist/lib/runtime-sources/src/scr_union.c +10 -5
  408. package/dist/lib/runtime-sources/src/scr_util_compare.c +1 -0
  409. package/dist/lib/runtime-sources/src/scr_util_style.c +11 -11
  410. package/dist/lib/runtime-sources/src/scr_watch.c +16 -6
  411. package/dist/lib/runtime-sources/src/scr_worker.c +232 -0
  412. package/dist/lib/runtime-sources/src/scr_worker.h +42 -0
  413. package/dist/lib/runtime-sources/src/scr_worker.test.c +115 -0
  414. package/dist/lib/runtime-sources/src/scr_worker.test.ts +49 -0
  415. package/dist/lib/runtime-sources/src/scr_worker_events.c +443 -0
  416. package/dist/lib/runtime-sources/src/scr_zlib.c +6 -0
  417. package/package.json +1 -1
@@ -215,7 +215,7 @@ typedef struct ScrH2HuffNode {
215
215
  int sym; /* -1 = interior */
216
216
  } ScrH2HuffNode;
217
217
 
218
- static ScrH2HuffNode *scr_h2_huff_root = NULL;
218
+ static SCR_TL ScrH2HuffNode *scr_h2_huff_root = NULL;
219
219
 
220
220
  static ScrH2HuffNode *scr_h2_huff_node(void) {
221
221
  ScrH2HuffNode *n = calloc(1, sizeof *n);
@@ -762,8 +762,8 @@ struct ScrH2Session {
762
762
  /* ── refcounts + the RC audit ────────────────────────────────────────── */
763
763
 
764
764
  #ifdef SCR_RC_AUDIT
765
- static long scr_h2_sessions_live = 0;
766
- static long scr_h2_streams_live = 0;
765
+ static SCR_TL long scr_h2_sessions_live = 0;
766
+ static SCR_TL long scr_h2_streams_live = 0;
767
767
  long scr_http2_live_count(void) { return scr_h2_sessions_live + scr_h2_streams_live; }
768
768
  #endif
769
769
 
@@ -885,9 +885,9 @@ typedef struct {
885
885
  void *h; /* +1, typed by kind */
886
886
  } ScrH2Emit;
887
887
 
888
- static ScrH2Emit *scr_h2_emits = NULL;
889
- static size_t scr_h2_emits_head = 0, scr_h2_emits_len = 0, scr_h2_emits_cap = 0;
890
- static bool scr_h2_exiting = false;
888
+ static SCR_TL ScrH2Emit *scr_h2_emits = NULL;
889
+ static SCR_TL size_t scr_h2_emits_head = 0, scr_h2_emits_len = 0, scr_h2_emits_cap = 0;
890
+ static SCR_TL bool scr_h2_exiting = false;
891
891
 
892
892
  static void scr_h2_emit_release(ScrH2Emit *e) {
893
893
  switch (e->kind) {
@@ -1249,10 +1249,10 @@ static void scr_h2_connect_hook(void *ctx, ScrClosure *cb, void *h1_fn, void *h2
1249
1249
  static void scr_h2_upgrade_hook(void *ctx, ScrClosure *cb, void *fn, bool once);
1250
1250
 
1251
1251
  static void scr_http2_install(void) {
1252
- static bool installed = false;
1252
+ static SCR_TL bool installed = false;
1253
1253
  if (installed) return;
1254
1254
  installed = true;
1255
- atexit(scr_h2_cleanup_atexit);
1255
+ scr_atexit(scr_h2_cleanup_atexit);
1256
1256
  scr_net_set_proto_sweep(&scr_h2_proto_pending, &scr_h2_proto_sweep);
1257
1257
  /* the compat seam: scr_http.c routes h2-backed responses through the
1258
1258
  * ops vtable and h2-tagged 'request' registrations through the hook */
@@ -1887,6 +1887,7 @@ void scr_http2_stream_write_str(ScrH2Stream *st, ScrStr *data /*borrowed*/) {
1887
1887
  }
1888
1888
 
1889
1889
  void scr_http2_stream_write_bytes(ScrH2Stream *st, ScrBytes *data /*borrowed*/) {
1890
+ SCR_BYTES_SNAPSHOT(data);
1890
1891
  scr_h2_stream_send(st, (const char *)data->data, (size_t)(data->len * scr_bytes_elem_size(data->elem)));
1891
1892
  }
1892
1893
 
@@ -1904,6 +1905,7 @@ void scr_http2_stream_end_str(ScrH2Stream *st, ScrStr *data /*borrowed*/) {
1904
1905
  }
1905
1906
 
1906
1907
  void scr_http2_stream_end_bytes(ScrH2Stream *st, ScrBytes *data /*borrowed*/) {
1908
+ SCR_BYTES_SNAPSHOT(data);
1907
1909
  if (st->destroyed || st->want_end || scr_h2_stream_local_closed(st)) return;
1908
1910
  scr_h2_buf_put(&st->wbuf, (const char *)data->data, (size_t)(data->len * scr_bytes_elem_size(data->elem)));
1909
1911
  st->want_end = true;
@@ -629,6 +629,7 @@ ScrStr *scr_insp_regex(ScrRegex *re) {
629
629
  * runs before the depth check in Node). u8 element kind only (the
630
630
  * frontend fences the rest). */
631
631
  ScrStr *scr_insp_buffer(ScrBytes *b) {
632
+ SCR_SHARED_GUARD(b, NULL);
632
633
  InspBuf out = {0};
633
634
  ib_cstr(&out, "<Buffer ");
634
635
  size_t max = b->len < 50 ? b->len : 50;
@@ -587,7 +587,7 @@ static void isl_init(void) {
587
587
  isl_register_hostfn_class();
588
588
  /* LIFO: registered after scr_init's handlers, so teardown runs before
589
589
  * the cycle collection + RC audit — the audit sees the engine gone. */
590
- atexit(isl_teardown_at_exit);
590
+ scr_atexit(isl_teardown_at_exit);
591
591
  }
592
592
 
593
593
  /* Nesting depth of host-function callbacks (scriptc closures invoked BY
@@ -208,6 +208,12 @@ void scr_jb_put_str(ScrJsonBuf *b, const ScrStr *s) {
208
208
 
209
209
  void scr_jb_puts(ScrJsonBuf *b, const char *s) { scr_jb_write(b, s, strlen(s)); }
210
210
 
211
+ void scr_jb_put_number(ScrJsonBuf *b, double v) {
212
+ char buf[32];
213
+ size_t n = scr_f64_to_str(v, buf);
214
+ scr_jb_write(b, buf, n);
215
+ }
216
+
211
217
  void scr_jb_put_f64(ScrJsonBuf *b, double v) {
212
218
  /* JSON.stringify number rules: non-finite → null, -0 → "0" (String(-0)
213
219
  * is "0" too, so scr_f64_to_str would agree — the zero test just makes
@@ -220,9 +226,7 @@ void scr_jb_put_f64(ScrJsonBuf *b, double v) {
220
226
  scr_jb_putc(b, '0');
221
227
  return;
222
228
  }
223
- char buf[32];
224
- size_t n = scr_f64_to_str(v, buf);
225
- scr_jb_write(b, buf, n);
229
+ scr_jb_put_number(b, v);
226
230
  }
227
231
 
228
232
  /* Find the next quote, backslash or control byte. memcpy keeps the word
@@ -254,32 +258,46 @@ static size_t scr_json_plain_bytes(const char *data, size_t len) {
254
258
  }
255
259
 
256
260
  static void scr_jb_put_json_span(ScrJsonBuf *b, const char *data, size_t len) {
257
- scr_jb_putc(b, '"');
258
- /* Bulk-copy runs of unescaped bytes (UTF-8 passes through verbatim,
259
- * like JS); escapes interrupt the run. */
260
- size_t i = 0;
261
+ if (len > SIZE_MAX - 2) scr_json_oom();
262
+ size_t run = scr_json_plain_bytes(data, len);
263
+ /* The overwhelmingly common unescaped string needs one capacity check,
264
+ * including both quotes, and no per-byte builder calls. */
265
+ scr_jb_grow(b, run + 2);
266
+ b->data[b->len++] = '"';
267
+ if (run) memcpy(b->data + b->len, data, run);
268
+ b->len += run;
269
+ size_t i = run;
261
270
  while (i < len) {
262
- size_t run = scr_json_plain_bytes(data + i, len - i);
263
- scr_jb_write(b, data + i, run);
264
- i += run;
265
- if (i == len) break;
266
271
  unsigned char c = (unsigned char)data[i++];
272
+ char escaped[6] = {'\\', 0, '0', '0', 0, 0};
273
+ size_t count = 2;
267
274
  switch (c) {
268
- case '"': scr_jb_puts(b, "\\\""); break;
269
- case '\\': scr_jb_puts(b, "\\\\"); break;
270
- case '\n': scr_jb_puts(b, "\\n"); break;
271
- case '\r': scr_jb_puts(b, "\\r"); break;
272
- case '\t': scr_jb_puts(b, "\\t"); break;
273
- case '\b': scr_jb_puts(b, "\\b"); break;
274
- case '\f': scr_jb_puts(b, "\\f"); break;
275
+ case '"': escaped[1] = '"'; break;
276
+ case '\\': escaped[1] = '\\'; break;
277
+ case '\n': escaped[1] = 'n'; break;
278
+ case '\r': escaped[1] = 'r'; break;
279
+ case '\t': escaped[1] = 't'; break;
280
+ case '\b': escaped[1] = 'b'; break;
281
+ case '\f': escaped[1] = 'f'; break;
275
282
  default: {
276
- char esc[8];
277
- snprintf(esc, sizeof esc, "\\u%04x", c);
278
- scr_jb_puts(b, esc);
279
- }
280
- }
283
+ static const char hex[] = "0123456789abcdef";
284
+ escaped[1] = 'u';
285
+ escaped[4] = hex[c >> 4];
286
+ escaped[5] = hex[c & 15];
287
+ count = 6;
288
+ }
289
+ }
290
+ run = scr_json_plain_bytes(data + i, len - i);
291
+ if (run > SIZE_MAX - count) scr_json_oom();
292
+ scr_jb_grow(b, count + run);
293
+ memcpy(b->data + b->len, escaped, count);
294
+ b->len += count;
295
+ if (run) memcpy(b->data + b->len, data + i, run);
296
+ b->len += run;
297
+ i += run;
281
298
  }
282
- scr_jb_putc(b, '"');
299
+ scr_jb_grow(b, 1);
300
+ b->data[b->len++] = '"';
283
301
  }
284
302
 
285
303
  void scr_jb_put_json_str(ScrJsonBuf *b, const ScrStr *s) {
@@ -302,6 +320,81 @@ ScrStr *scr_jb_finish(ScrJsonBuf *b) {
302
320
  return s;
303
321
  }
304
322
 
323
+ /* Write newline and a repeated gap with one reservation. Copies never
324
+ * overlap: each doubling reads only the already initialized prefix. */
325
+ static void scr_jb_indent(ScrJsonBuf *b, const char *gap, size_t gap_len, size_t depth) {
326
+ if (gap_len && depth > (SIZE_MAX - 1) / gap_len) scr_json_oom();
327
+ size_t count = gap_len * depth;
328
+ scr_jb_grow(b, count + 1);
329
+ b->data[b->len++] = '\n';
330
+ if (!count) return;
331
+ memcpy(b->data + b->len, gap, gap_len);
332
+ size_t filled = gap_len;
333
+ while (filled < count) {
334
+ size_t take = filled < count - filled ? filled : count - filled;
335
+ memcpy(b->data + b->len + filled, b->data + b->len, take);
336
+ filled += take;
337
+ }
338
+ b->len += count;
339
+ }
340
+
341
+ ScrStr *scr_json_indent(const ScrStr *compact, const char *gap, size_t gap_len) {
342
+ if (!gap_len) return scr_str_retain((ScrStr *)compact);
343
+ /* Node stops copying the gap at its first NUL but still inserts breaks
344
+ * and colon spaces when the original gap is nonempty. */
345
+ const char *end = memchr(gap, 0, gap_len);
346
+ if (end) gap_len = (size_t)(end - gap);
347
+ ScrJsonBuf b;
348
+ scr_jb_init(&b);
349
+ size_t depth = 0, start = 0, i = 0;
350
+ while (i < compact->len) {
351
+ char c = compact->data[i];
352
+ if (c == '"') {
353
+ /* Quoted punctuation is data. Scan ordinary runs and skip the byte
354
+ * after each backslash so an escaped quote cannot end this string. */
355
+ i++;
356
+ while (i < compact->len) {
357
+ i += scr_json_plain_bytes(compact->data + i, compact->len - i);
358
+ if (i == compact->len) break;
359
+ if (compact->data[i] == '\\') {
360
+ i += compact->len - i >= 2 ? 2 : 1;
361
+ } else {
362
+ i++;
363
+ break;
364
+ }
365
+ }
366
+ continue;
367
+ }
368
+ if (c == '{' || c == '[') {
369
+ char closer = c == '{' ? '}' : ']';
370
+ if (i + 1 < compact->len && compact->data[i + 1] == closer) {
371
+ i += 2;
372
+ continue;
373
+ }
374
+ scr_jb_write(&b, compact->data + start, i + 1 - start);
375
+ scr_jb_indent(&b, gap, gap_len, ++depth);
376
+ start = ++i;
377
+ continue;
378
+ }
379
+ if (c == '}' || c == ']') {
380
+ scr_jb_write(&b, compact->data + start, i - start);
381
+ scr_jb_indent(&b, gap, gap_len, --depth);
382
+ start = i++;
383
+ continue;
384
+ }
385
+ if (c == ',' || c == ':') {
386
+ scr_jb_write(&b, compact->data + start, i + 1 - start);
387
+ if (c == ',') scr_jb_indent(&b, gap, gap_len, depth);
388
+ else scr_jb_putc(&b, ' ');
389
+ start = ++i;
390
+ continue;
391
+ }
392
+ i++;
393
+ }
394
+ scr_jb_write(&b, compact->data + start, compact->len - start);
395
+ return scr_jb_finish(&b);
396
+ }
397
+
305
398
  /* ── circular-structure detection ──────────────────────────────────────
306
399
  * RECURSIVE record types permit runtime reference cycles; JSON.stringify
307
400
  * of a cyclic value throws V8's exact TypeError. The compiler-emitted
@@ -821,6 +914,8 @@ static void scr_dyn_dispose(ScrDyn *d, bool collected) {
821
914
 
822
915
  static void scr_dyn_gcfree(void *ptr) { scr_dyn_dispose(ptr, true); }
823
916
 
917
+ static void scr_dyn_destroy(void *ptr) { scr_dyn_dispose(ptr, false); }
918
+
824
919
  void scr_dyn_release(ScrDyn *d) {
825
920
  if (!d || d->rc == SIZE_MAX) return;
826
921
  if (--d->rc != 0) {
@@ -831,7 +926,7 @@ void scr_dyn_release(ScrDyn *d) {
831
926
  return;
832
927
  }
833
928
  scr_cyc_on_dead(d);
834
- scr_dyn_dispose(d, false);
929
+ scr_rc_destroy(d, scr_dyn_destroy);
835
930
  }
836
931
 
837
932
  /* Small objects retain their compact linear representation. A wide object
@@ -880,7 +975,7 @@ static SCR_TL size_t scr_dyn_property_hints[SCR_DYN_PROPERTY_HINTS];
880
975
  static ScrDynEntry *scr_dyn_find_linear_entry(const ScrDyn *object, const char *key, size_t length) {
881
976
  for (size_t i = 0; i < object->v.obj.len; i++) {
882
977
  ScrDynEntry *entry = &object->v.obj.entries[i];
883
- if (entry->key_len == length && !memcmp(entry->key, key, length)) return entry;
978
+ if (entry->key_len == length && scr_key_equal(entry->key, key, length)) return entry;
884
979
  }
885
980
  return NULL;
886
981
  }
@@ -891,7 +986,7 @@ static __attribute__((noinline)) ScrDynEntry *scr_dyn_find_indexed_entry(
891
986
  size_t slot = scr_key_hash(key, length) & (index->buckets - 1);
892
987
  while (index->slots[slot]) {
893
988
  ScrDynEntry *entry = &object->v.obj.entries[index->slots[slot] - 1];
894
- if (entry->key_len == length && !memcmp(entry->key, key, length)) return entry;
989
+ if (entry->key_len == length && scr_key_equal(entry->key, key, length)) return entry;
895
990
  slot = (slot + 1) & (index->buckets - 1);
896
991
  }
897
992
  return NULL;
@@ -904,7 +999,7 @@ static ScrDynEntry *scr_dyn_find_entry(const ScrDyn *object, const char *key, si
904
999
  size_t hint = scr_dyn_property_hints[slot];
905
1000
  if (hint < object->v.obj.len) {
906
1001
  ScrDynEntry *entry = &object->v.obj.entries[hint];
907
- if (entry->key_len == length && !memcmp(entry->key, key, length)) return entry;
1002
+ if (entry->key_len == length && scr_key_equal(entry->key, key, length)) return entry;
908
1003
  }
909
1004
  ScrDynEntry *entry = scr_dyn_find_linear_entry(object, key, length);
910
1005
  if (entry) scr_dyn_property_hints[slot] = (size_t)(entry - object->v.obj.entries);
@@ -2173,7 +2268,9 @@ bool scr_dyn_util_type_is(const ScrDyn *value, const ScrStr *probe) {
2173
2268
  if (!value) return false;
2174
2269
  if (value->kind == SCR_DYN_JSVAL) return scr_dyn_jsval_ops()->type_probe(value->v.jsval.cell, probe);
2175
2270
  #define PROBE(name) (probe->len == sizeof(name) - 1 && memcmp(probe->data, name, sizeof(name) - 1) == 0)
2176
- if (PROBE("isAnyArrayBuffer") || PROBE("isArrayBuffer")) return scr_array_buffer_is(value);
2271
+ if (PROBE("isAnyArrayBuffer")) return scr_buffer_storage_is(value);
2272
+ if (PROBE("isArrayBuffer")) return scr_array_buffer_is(value);
2273
+ if (PROBE("isSharedArrayBuffer")) return scr_shared_array_buffer_is(value);
2177
2274
  if (PROBE("isArrayBufferView")) return value->kind == SCR_DYN_BYTES;
2178
2275
  if (PROBE("isDataView")) return value->kind == SCR_DYN_BYTES && value->v.bytes->is_data_view;
2179
2276
  if (PROBE("isTypedArray")) return value->kind == SCR_DYN_BYTES && !value->v.bytes->is_data_view;
@@ -2411,7 +2508,7 @@ void scr_dyn_chunk_enc(bool utf8) { scr_dyn_chunk_utf8 = utf8; }
2411
2508
  * a Buffer-flavored bytes box, or a string inside a setEncoding window. */
2412
2509
  ScrDyn *scr_dyn_new_chunk(const ScrBytes *b) {
2413
2510
  if (scr_dyn_chunk_utf8) {
2414
- ScrStr *s = scr_str_new((const char *)b->data, b->len);
2511
+ ScrStr *s = scr_bytes_string(b, 0, b->len);
2415
2512
  ScrDyn *d = scr_dyn_new_str(s);
2416
2513
  scr_str_release(s);
2417
2514
  return d;
@@ -2589,7 +2686,7 @@ ScrDyn *scr_dyn_bind(ScrDyn *target, ScrDyn *const *args, size_t argc) {
2589
2686
  * always-linked core never references gated units. A missing tag at use
2590
2687
  * is an internal error: emitted programs install a unit's ops whenever
2591
2688
  * they can box its handles. */
2592
- static const ScrDynHandleOps *scr_dynh_ops[SCR_DYNH_COUNT];
2689
+ static SCR_TL const ScrDynHandleOps *scr_dynh_ops[SCR_DYNH_COUNT];
2593
2690
 
2594
2691
  void scr_dyn_handle_install(ScrDynHandleTag tag, const ScrDynHandleOps *ops) {
2595
2692
  scr_dynh_ops[tag] = ops;
@@ -2836,6 +2933,7 @@ ScrDyn *scr_dyn_new_handle(void *h, ScrDynHandleTag tag) {
2836
2933
  d->v.handle.ptr = scr_dyn_handle_ops(tag)->retain(h);
2837
2934
  d->v.handle.tag = tag;
2838
2935
  d->v.handle.traced = tag == SCR_DYNH_WEAK_MAP || tag == SCR_DYNH_WEAK_SET ||
2936
+ tag == SCR_DYNH_WORKER || tag == SCR_DYNH_MESSAGE_PORT ||
2839
2937
  ((tag == SCR_DYNH_SET || tag == SCR_DYNH_MAP) &&
2840
2938
  (((ScrMap *)h)->key_trace != NULL || ((ScrMap *)h)->val_trace != NULL));
2841
2939
  return d;
@@ -2845,8 +2943,8 @@ ScrDyn *scr_dyn_new_handle(void *h, ScrDynHandleTag tag) {
2845
2943
  * allocator view; the freelist stays private, and the release arm's
2846
2944
  * scr_promise_release edge installs HERE — a promise-free link never
2847
2945
  * references the fiber machinery (the unit-test subset links). */
2848
- void (*scr_dyn_promise_release_fn)(ScrPromise *p) = NULL;
2849
- bool (*scr_dyn_promise_identity_fn)(ScrPromise *a, ScrPromise *b) = NULL;
2946
+ SCR_TL void (*scr_dyn_promise_release_fn)(ScrPromise *p) = NULL;
2947
+ SCR_TL bool (*scr_dyn_promise_identity_fn)(ScrPromise *a, ScrPromise *b) = NULL;
2850
2948
 
2851
2949
  ScrDyn *scr_dyn_alloc_promise(void (*release_fn)(ScrPromise *p)) {
2852
2950
  scr_dyn_promise_release_fn = release_fn;
@@ -3011,7 +3109,15 @@ typedef struct {
3011
3109
  static SCR_TL ScrDynThisEnt *scr_dyn_this_stack;
3012
3110
  static SCR_TL size_t scr_dyn_this_n, scr_dyn_this_cap;
3013
3111
 
3112
+ static void scr_dyn_this_cleanup(void) {
3113
+ while (scr_dyn_this_n) scr_dyn_this_pop();
3114
+ free(scr_dyn_this_stack);
3115
+ scr_dyn_this_stack = NULL;
3116
+ scr_dyn_this_cap = 0;
3117
+ }
3118
+
3014
3119
  static ScrDynThisEnt *scr_dyn_this_grow(void) {
3120
+ if (!scr_dyn_this_stack) scr_atexit(scr_dyn_this_cleanup);
3015
3121
  if (scr_dyn_this_n == scr_dyn_this_cap) {
3016
3122
  size_t cap = scr_dyn_this_cap ? scr_dyn_this_cap * 2 : 8;
3017
3123
  ScrDynThisEnt *s = realloc(scr_dyn_this_stack, cap * sizeof *s);
@@ -4220,7 +4326,7 @@ ScrStr *scr_dyn_object_tag(const ScrDyn *d) {
4220
4326
  case SCR_DYN_OBJ: tag = "[object Object]"; break;
4221
4327
  case SCR_DYN_HANDLE:
4222
4328
  if ((d->v.handle.tag >= SCR_DYNH_ABORT_SIGNAL &&
4223
- d->v.handle.tag <= SCR_DYNH_ABORT_CONTROLLER) || d->v.handle.tag == SCR_DYNH_ARRAY_BUFFER ||
4329
+ d->v.handle.tag <= SCR_DYNH_ABORT_CONTROLLER) || d->v.handle.tag == SCR_DYNH_ARRAY_BUFFER || d->v.handle.tag == SCR_DYNH_SHARED_ARRAY_BUFFER ||
4224
4330
  d->v.handle.tag == SCR_DYNH_WEAK_MAP || d->v.handle.tag == SCR_DYNH_WEAK_SET ||
4225
4331
  d->v.handle.tag == SCR_DYNH_SET || d->v.handle.tag == SCR_DYNH_MAP || d->v.handle.tag == SCR_DYNH_REGEXP ||
4226
4332
  d->v.handle.tag == SCR_DYNH_DATE) {
@@ -4713,7 +4819,7 @@ ScrStr *scr_dyn_to_string(const ScrDyn *d, const ScrStr *enc) {
4713
4819
  return out;
4714
4820
  }
4715
4821
  if ((d->v.handle.tag >= SCR_DYNH_ABORT_SIGNAL &&
4716
- d->v.handle.tag <= SCR_DYNH_ABORT_CONTROLLER) || d->v.handle.tag == SCR_DYNH_ARRAY_BUFFER || d->v.handle.tag == SCR_DYNH_SET || d->v.handle.tag == SCR_DYNH_MAP) {
4822
+ d->v.handle.tag <= SCR_DYNH_ABORT_CONTROLLER) || d->v.handle.tag == SCR_DYNH_ARRAY_BUFFER || d->v.handle.tag == SCR_DYNH_SHARED_ARRAY_BUFFER || d->v.handle.tag == SCR_DYNH_SET || d->v.handle.tag == SCR_DYNH_MAP) {
4717
4823
  ScrJsonBuf b;
4718
4824
  scr_jb_init(&b);
4719
4825
  scr_jb_puts(&b, "[object ");
@@ -6599,8 +6705,9 @@ static bool scr_json_omitted(const ScrDyn *value) {
6599
6705
 
6600
6706
  static void scr_json_gap(ScrJsonBuf *buffer, const ScrStr *gap, size_t depth) {
6601
6707
  if (!gap->len) return;
6602
- scr_jb_putc(buffer, '\n');
6603
- for (size_t i = 0; i < depth; i++) scr_jb_write(buffer, gap->data, gap->len);
6708
+ const char *end = memchr(gap->data, 0, gap->len);
6709
+ size_t length = end ? (size_t)(end - gap->data) : gap->len;
6710
+ scr_jb_indent(buffer, gap->data, length, depth);
6604
6711
  }
6605
6712
 
6606
6713
  /* These primitive values cannot invoke toJSON or mutate a containing frame.
@@ -8639,6 +8746,14 @@ bool scr_array_buffer_is(const ScrDyn *value) {
8639
8746
  return value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_ARRAY_BUFFER;
8640
8747
  }
8641
8748
 
8749
+ bool scr_shared_array_buffer_is(const ScrDyn *value) {
8750
+ return value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_SHARED_ARRAY_BUFFER;
8751
+ }
8752
+
8753
+ bool scr_buffer_storage_is(const ScrDyn *value) {
8754
+ return scr_array_buffer_is(value) || scr_shared_array_buffer_is(value);
8755
+ }
8756
+
8642
8757
  bool scr_array_buffer_is_view(const ScrDyn *value) {
8643
8758
  return value->kind == SCR_DYN_BYTES;
8644
8759
  }
@@ -8647,8 +8762,9 @@ static ScrDyn *scr_array_buffer_get(void *h, const char *key, size_t len) {
8647
8762
  if ((len == 10 && memcmp(key, "byteLength", len) == 0) ||
8648
8763
  (len == 13 && memcmp(key, "maxByteLength", len) == 0))
8649
8764
  return scr_dyn_new_num(scr_bytes_byte_len(h));
8650
- if ((len == 9 && memcmp(key, "resizable", len) == 0) ||
8651
- (len == 8 && memcmp(key, "detached", len) == 0)) return scr_dyn_new_bool(false);
8765
+ if (len == 8 && !memcmp(key, "growable", len) && ((ScrBytes *)h)->shared) return scr_dyn_new_bool(false);
8766
+ if (!((ScrBytes *)h)->shared && ((len == 9 && memcmp(key, "resizable", len) == 0) ||
8767
+ (len == 8 && memcmp(key, "detached", len) == 0))) return scr_dyn_new_bool(false);
8652
8768
  return NULL;
8653
8769
  }
8654
8770
 
@@ -8667,6 +8783,7 @@ static ScrDyn *scr_array_buffer_invoke(void *h, ScrDyn *self, const char *method
8667
8783
  ScrBytes *view = scr_bytes_buffer_view(h, SCR_BYTES_U8, 0, false, 0);
8668
8784
  if (!view) return NULL;
8669
8785
  ScrBytes *copy = scr_bytes_slice(view, start, end);
8786
+ if (((ScrBytes *)h)->shared) scr_bytes_make_shared(copy);
8670
8787
  scr_bytes_release(view);
8671
8788
  ScrDyn *result = scr_array_buffer_from_bytes(copy);
8672
8789
  scr_bytes_release(copy);
@@ -8682,8 +8799,13 @@ ScrDyn *scr_array_buffer_from_bytes(ScrBytes *view) {
8682
8799
  "ArrayBuffer", &scr_bytes_retain_v, &scr_bytes_release_v,
8683
8800
  &scr_array_buffer_invoke, &scr_array_buffer_get, &scr_array_buffer_set, NULL,
8684
8801
  };
8685
- scr_dyn_handle_install(SCR_DYNH_ARRAY_BUFFER, &ops);
8686
- return scr_dyn_new_handle(view->backing ? view->backing : view, SCR_DYNH_ARRAY_BUFFER);
8802
+ static const ScrDynHandleOps shared_ops = {
8803
+ "SharedArrayBuffer", &scr_bytes_retain_v, &scr_bytes_release_v,
8804
+ &scr_array_buffer_invoke, &scr_array_buffer_get, &scr_array_buffer_set, NULL,
8805
+ };
8806
+ ScrDynHandleTag tag = view->shared ? SCR_DYNH_SHARED_ARRAY_BUFFER : SCR_DYNH_ARRAY_BUFFER;
8807
+ scr_dyn_handle_install(tag, view->shared ? &shared_ops : &ops);
8808
+ return scr_dyn_new_handle(view->backing ? view->backing : view, tag);
8687
8809
  }
8688
8810
 
8689
8811
  static ScrDyn *scr_ffi_fail(const char *message) {
@@ -8714,7 +8836,8 @@ ScrDyn *scr_ffi_argument(ScrDyn *value, ScrStr *type) {
8714
8836
  void *address = NULL;
8715
8837
  bool converted = value->kind == SCR_DYN_NULL || value->kind == SCR_DYN_UNDEF;
8716
8838
  ScrBytes *bytes = value->kind == SCR_DYN_BYTES ? value->v.bytes :
8717
- scr_array_buffer_is(value) ? value->v.handle.ptr : NULL;
8839
+ scr_buffer_storage_is(value) ? value->v.handle.ptr : NULL;
8840
+ if (bytes && bytes->shared) return scr_ffi_fail("Shared byte storage cannot expose an unmanaged native pointer");
8718
8841
  if (bytes) { address = bytes->data; converted = true; }
8719
8842
  if (value->kind == SCR_DYN_STR) {
8720
8843
  if (memchr(value->v.str->data, 0, value->v.str->len)) {
@@ -8964,6 +9087,7 @@ static ScrDyn *scr_ffi_memory_call(ScrClosure *closure, ScrDyn *const *args, siz
8964
9087
  scr_dyn_arg_type_fail("source", "an ArrayBuffer or ArrayBufferView", value);
8965
9088
  return NULL;
8966
9089
  }
9090
+ if (bytes->shared) return scr_ffi_fail("Shared byte storage cannot expose an unmanaged native pointer");
8967
9091
  ScrBigInt *pointer = scr_bigint_from_pointer(bytes->data);
8968
9092
  ScrDyn *result = scr_dyn_new_bigint(pointer);
8969
9093
  scr_bigint_release(pointer);
@@ -9151,7 +9275,7 @@ static int scr_weak_key(const ScrDyn *key, void **ptr, unsigned *kind) {
9151
9275
  *ptr = key->v.fn.class_obj ? (void *)key->v.fn.class_obj : (void *)key->v.fn.clo;
9152
9276
  *kind = key->v.fn.class_obj ? 3 : 2; return 1;
9153
9277
  case SCR_DYN_HANDLE:
9154
- if (key->v.handle.tag != SCR_DYNH_ARRAY_BUFFER && key->v.handle.tag != SCR_DYNH_WEAK_MAP &&
9278
+ if (key->v.handle.tag != SCR_DYNH_ARRAY_BUFFER && key->v.handle.tag != SCR_DYNH_SHARED_ARRAY_BUFFER && key->v.handle.tag != SCR_DYNH_WEAK_MAP &&
9155
9279
  key->v.handle.tag != SCR_DYNH_WEAK_SET && key->v.handle.tag != SCR_DYNH_STDIO &&
9156
9280
  key->v.handle.tag != SCR_DYNH_FETCH_REQUEST && key->v.handle.tag != SCR_DYNH_FETCH_RESPONSE &&
9157
9281
  key->v.handle.tag != SCR_DYNH_MAP && key->v.handle.tag != SCR_DYNH_SET) return -1;
@@ -9382,6 +9506,16 @@ ScrDyn *scr_array_buffer_new(ScrDyn *length) {
9382
9506
  return result;
9383
9507
  }
9384
9508
 
9509
+ ScrDyn *scr_shared_array_buffer_new(ScrDyn *length) {
9510
+ ScrDyn *buffer = scr_array_buffer_new(length);
9511
+ if (!buffer) return NULL;
9512
+ ScrBytes *storage = buffer->v.handle.ptr;
9513
+ scr_bytes_make_shared(storage);
9514
+ ScrDyn *result = scr_array_buffer_from_bytes(storage);
9515
+ scr_dyn_release(buffer);
9516
+ return result;
9517
+ }
9518
+
9385
9519
  double scr_array_buffer_byte_length_getter(void) {
9386
9520
  ScrDyn *receiver = scr_dyn_this_get();
9387
9521
  if (!scr_array_buffer_is(receiver)) {
@@ -9408,7 +9542,7 @@ ScrDyn *scr_array_buffer_byte_length_descriptor(ScrDyn *getter) {
9408
9542
 
9409
9543
  ScrBytes *scr_array_buffer_view(ScrBytesElem elem, const ScrDyn *buffer,
9410
9544
  const ScrDyn *offset, const ScrDyn *length) {
9411
- if (!scr_array_buffer_is(buffer)) {
9545
+ if (!scr_buffer_storage_is(buffer)) {
9412
9546
  // Non-buffer inputs use the length/iterable/array-like constructor.
9413
9547
  // Their extra arguments are evaluated by the caller, but not coerced.
9414
9548
  return scr_bytes_from_dyn(elem, buffer, false);
@@ -9443,7 +9577,7 @@ SCR_ARRAY_BUFFER_VIEW(f64, SCR_BYTES_F64)
9443
9577
  #undef SCR_ARRAY_BUFFER_VIEW
9444
9578
 
9445
9579
  ScrBytes *scr_array_buffer_view_dv(ScrDyn *buffer, ScrDyn *offset, ScrDyn *length) {
9446
- if (!scr_array_buffer_is(buffer)) {
9580
+ if (!scr_buffer_storage_is(buffer)) {
9447
9581
  static const char msg[] = "First argument to DataView constructor must be an ArrayBuffer";
9448
9582
  scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1);
9449
9583
  return NULL;
@@ -78,6 +78,21 @@ static void json_string_boundaries(void) {
78
78
  }
79
79
  }
80
80
 
81
+ static void json_indent_ownership(void) {
82
+ const char compact[] = "{\"a\":[],\"b\":[1,{}]}";
83
+ const char expected[] = "{\n \"a\": [],\n \"b\": [\n 1,\n {}\n ]\n}";
84
+ ScrStr *input = scr_str_new(compact, sizeof compact - 1);
85
+ ScrStr *same = scr_json_indent(input, "", 0);
86
+ assert(same == input && input->rc == 2);
87
+ scr_str_release(same);
88
+ ScrStr *pretty = scr_json_indent(input, " ", 2);
89
+ assert(pretty->len == sizeof expected - 1);
90
+ assert(!memcmp(pretty->data, expected, sizeof expected - 1));
91
+ scr_str_release(input);
92
+ assert(!memcmp(pretty->data, expected, sizeof expected - 1));
93
+ scr_str_release(pretty);
94
+ }
95
+
81
96
  static void checked_storage(void) {
82
97
  /* Reuse after deletion, changing field order, embedded NUL and escaped
83
98
  * duplicate names must leave independently owned keys and values. */
@@ -339,6 +354,7 @@ static void checked_number_storage(void) {
339
354
 
340
355
  int main(void) {
341
356
  json_string_boundaries();
357
+ json_indent_ownership();
342
358
  scr_init();
343
359
  checked_storage();
344
360
  shared_property_keys();
@@ -41,6 +41,7 @@ test.each([false, true])(
41
41
  "scr_cycle.c",
42
42
  "scr_lib.c",
43
43
  "scr_bytes.c",
44
+ "scr_shared.c",
44
45
  "scr_bigint.c",
45
46
  "scr_url.c",
46
47
  "scr_url_params.c",
@@ -16,10 +16,36 @@ static inline uint64_t scr_key_mix(uint64_t value) {
16
16
  return value ^ (value >> 31);
17
17
  }
18
18
 
19
+ /* Pack at most eight bytes with fixed-size, unaligned loads. The overlapping
20
+ * ends cover every byte at lengths four through eight; the three selected
21
+ * bytes cover lengths one through three. No terminator or padding is read. */
22
+ static inline uint64_t scr_key_short_word(const char *bytes, size_t length) {
23
+ if (length >= 4) {
24
+ uint32_t first, last;
25
+ memcpy(&first, bytes, sizeof first);
26
+ memcpy(&last, bytes + length - sizeof last, sizeof last);
27
+ return ((uint64_t)first << 32) | last;
28
+ }
29
+ if (length == 0) return 0;
30
+ return ((uint64_t)(unsigned char)bytes[0] << 16) |
31
+ ((uint64_t)(unsigned char)bytes[length / 2] << 8) |
32
+ (unsigned char)bytes[length - 1];
33
+ }
34
+
35
+ /* Callers check equal lengths first. Short keys need no out-of-line memcmp;
36
+ * longer keys keep the platform's bulk comparison. */
37
+ static inline bool scr_key_equal(const char *a, const char *b, size_t length) {
38
+ if (a == b) return true;
39
+ if (length <= 8) return scr_key_short_word(a, length) == scr_key_short_word(b, length);
40
+ return memcmp(a, b, length) == 0;
41
+ }
42
+
19
43
  /* Unaligned loads stay inside the input. Hashing is process-local, so host
20
- * byte order is immaterial; equal byte strings always follow the same path. */
44
+ * byte order is immaterial; equal byte strings always follow the same path.
45
+ * Short keys need one avalanche and no variable-size tail copy. */
21
46
  static inline uint64_t scr_key_hash(const char *bytes, size_t length) {
22
47
  uint64_t hash = UINT64_C(0x9e3779b97f4a7c15) ^ length;
48
+ if (length <= 8) return scr_key_mix(hash ^ scr_key_short_word(bytes, length));
23
49
  size_t i = 0;
24
50
  while (length - i >= sizeof(uint64_t)) {
25
51
  uint64_t word;
@@ -27,9 +53,7 @@ static inline uint64_t scr_key_hash(const char *bytes, size_t length) {
27
53
  hash = scr_key_mix(hash ^ word);
28
54
  i += sizeof word;
29
55
  }
30
- uint64_t tail = 0;
31
- if (i < length) memcpy(&tail, bytes + i, length - i);
32
- return scr_key_mix(hash ^ tail);
56
+ return scr_key_mix(hash ^ scr_key_short_word(bytes + i, length - i));
33
57
  }
34
58
 
35
59
  static inline bool scr_key_array_index(const char *key, size_t length, uint32_t *out) {